我知道我可以这样做!commands
,但我想以某种方式在 vim 中集成一个 shell。或者我可以使用屏幕并分割屏幕,这样 vim 就可以占据屏幕的一半?
答案1
CtrlZ将暂停 vim 并将控制权返回给 bash。使用fg
返回 vim。
答案2
集成子进程是 Vim 的主要弱点。没有内置对 shell 窗口的支持,但你可以尝试vimsh 插件。
在 Screen 中,按C-a c
可创建一个新的(全屏)窗口。按C-a p
或C-a n
可移动到上一个/下一个窗口(C-a space
也可移动到下一个窗口)。此外,split
命令 ( C-a S
) 会将屏幕分成两个区域;您可以将一个区域用作 shell,另一个区域用作 Vim。按C-a tab
可在区域之间切换。
您始终可以按Ctrl+Z暂停 Vim 并在父 shell 中运行命令;键入fg
返回 Vim。或者您可以使用:shell
创建(全屏)子 shell;键入exit
返回 Vim。
答案3
正如您所建议的,我只会使用屏幕。
screen
- ^Ac 创建新窗口
- ^AS 将屏幕水平分割为两个区域(某些版本有 Ctrl-| 垂直分割)
- ^A-Tab 移动到新区域
- ^An 将区域更改为下一个窗口
如果你不想要恰好一半一半,你可以:
- ^A-+ 增加当前区域的大小
如果您需要在命令行中查看 vim 中的内容,这是一个不错的方法。如果您不需要,可以使用前面提到的Ctrl-Z
/方法。fg
答案4
您还可以使用 :shell 来生成一个 shell。键入 exit 或 Ctrl+D 退出 shell 并返回 vim。如果您希望同时运行两者,使用 fg/bg(根据 Ignacio)、screen(如您所建议)或仅使用两个单独的终端(xterms、虚拟控制台等)是您的最佳选择。
如果你访问 vim.org,你可能会找到一个直接启动 shell 的扩展,但此时你已经非常接近 emacs 了。;) 下面是一个使用屏幕的示例:http://www.vim.org/scripts/script.php?script_id=2711