是否可以使用终端在Vim / Vi中拆分窗口?

时间:2016-07-12 13:06:41

标签: vim vi

有没有办法在Vi / Vim内拆分窗口,以便一个窗口成为终端?

P.S。安装新文本编辑器等解决方案对我没有帮助。

4 个答案:

答案 0 :(得分:8)

在Vim 8中,如果使用+terminal选项进行编译,则可以水平拆分当前窗口,并使用命令:terminal:term来添加终端。

enter image description here

如果要垂直拆分窗口,我知道的最好方法是使用:vsp<c-w>v进行常规垂直拆分。然后,将其中一个窗口拆分为一个终端窗口(:term),然后最后移至较小的非终端窗口并关闭它。

enter image description here

编辑:...从字面上看,我写完这篇文章后,便发现了如何轻松垂直分割终端窗口...

:vertical terminal

" OR

:vert term

终端将以类似于插入模式的方式打开,按<c-w>N将使您进入“常规”模式,在该模式下您可以进行常规的Vim运动并可以运行Vim命令。请注意,在许多shell中(我在Bash和Zsh中都可以肯定地知道),您可以运行set -o vi使其能够命中<c-[><esc>并始终使用Vim动作。最好的部分是在“普通”模式下按v,当前命令在新的Vim实例中打开并在退出Vim时运行。

答案 1 :(得分:5)

没有插件就没有办法做到这一点。 以下是获得类似功能的几种方法。

  • 使用tmux或其他终端窗口管理器。 响应你的P.s.,tmux不是另一个文本编辑器。 它只允许您拆分终端屏幕,因此您仍然可以使用vim进行文本编辑。
  • 您还可以运行终端命令并查看vim内部的输出。 只需运行一个命令,但前面加上一个感叹号。 例如,如果从vim中运行:!ls,您将看到当前目录中的文件列表。 任何其他命令(例如:!pwd:!git add *)也可以使用。 如果要将命令的输出读入当前的vim缓冲区,可以使用read命令。 例如,如果运行:read !ls,vim会将当前目录中的文件列表输入光标位置的当前缓冲区。

答案 2 :(得分:1)

插件conque_term使您可以在vim缓冲区内运行shell。

但是我推荐screen linux command,当执行 Ctrl + a Esc

答案 3 :(得分:0)

也许添加字符串

rightb vert term

bel vert term

到您的“ .vimrc”文件将解决您的问题。 因此,如果您输入vim file_name.txt,则将有两个拆分的窗口:左侧-txt文件,右侧-终端窗口。