我逐渐习惯了 Ubuntu 的 CLI。我习惯在编辑文件时在窗口之间切换,转到命令行运行 cmd,然后再返回等等。
我感觉 CLI 限制了我很多,因为我似乎一次只能做一件事。当然,一定有办法让我在多个命令行控制台之间“切换”吧?
另外,我正在使用 vim,有时需要访问命令行。目前,我必须退出 vim 才能进入 CLI,然后重新启动 vim。这效率不高。
有人能告诉我如何在 CLI 屏幕/控制台之间切换,以及如何从 vim 内部切换到 CLI,然后再切换回 vim,而不必关闭 vim?
顺便说一句,我的发行版是 Ubuntu Lucid Lynx (10.04 LTS)
答案1
- 按下ctrlz即可暂停 vim,并将其放入当前 shell 的后台。
- 做其他事
- 获得
jobs
后台作业列表 - 使用
%N
(N 是第 n 个后台作业)或者仅仅fg
(如果它是唯一的后台作业)将 vim 带回前台。
整个主题都包含在“作业控制”一词中。您可以阅读更多内容:
- 重击:http://web.mit.edu/gnu/doc/html/features_5.html#SEC32
- zsh:http://www.manpagez.com/man/1/zshall/(工作)
- tcsh:http://www.tcsh.org/tcsh.html/Jobs.html
关于您的“切换虚拟终端”问题:我还建议您使用screen
或tmux
作为终端多路复用器,而不是切换虚拟终端。
答案2
听起来您正在使用完整的 GUI 桌面并使用终端程序在本地机器上执行偶尔的命令。
假设情况确实如此,那么您可以执行以下任一操作:
- 打开终端程序的多个实例
- 使用 Ctrl-Shift-T(或菜单或右键单击)在终端程序中打开多个选项卡
- 安装终结者程序(
sudo apt-get install terminator
)——它允许您使用 Ctrl-Shift-O 水平分割屏幕或使用 Ctrl-Shift-E(或使用右键单击)垂直分割屏幕——这样您最终会得到类似这样的屏幕截图:
答案3
L_AltF1通过L_AltF12VT1 至 VT12 之间的开关,以及L_AltL_ShiftF1通过L_AltL_ShiftF12VT13 至 VT24 之间的开关。L_CtrlL_AltLeft可L_CtrlL_AltRight用于在活动虚拟终端之间循环。openvt
可用于激活另一个虚拟终端。
您还可以screen
在同一个 VT 上拥有多个控制台区域。
答案4
您可以在 Vim 中使用垂直分割 (
:vs
) 和水平分割 (:sp
) 在不同的“窗口”中编辑多个文件。上述技巧还可以与 Vim 插件 Conque 结合使用,它允许您在 Vim 内部运行任何终端命令,例如 shell。
我经常拆分 Vim 窗口来编辑多个文件,但如果我需要在单个终端中将 Vim 与 shell 结合使用,我会使用 tmux。我个人对 Conque 插件的体验并不好,但我认为我可以提一下它来帮助完成讨论。