我已经习惯了Emacs,但是我正在试用Vim,看看我更喜欢哪个。

我喜欢Emacs的一点是能够在Emacs内部运行终端。这在Vim内部可能吗?我知道您可以从Vim执行命令,但我希望能够在选项卡中运行终端。


当前回答

我承认我并没有严格地回答你的问题,但是对我来说,在同一个窗口中使用Vim和终端时工作得更好的是Tmux(这是一种“在后台运行的软件”,类似于屏幕,尽管这个更适合分割和制表符)。

这篇文章将帮助你理解它们是如何一起工作的:“Tmux和Vim -更好的一起工作”。

通过这种方式,我们可以将Vim转换为强大的IDE

其他回答

我所知道的唯一方法是使用vim-shell,一个第三方补丁。

在vim 8.1.3741中,只需输入:terminal在vim中启动一个终端。

尝试map:nnoremap]t:terminal<CR>更快!

:项

在Vim 8.1中添加。

请记住,每当终端窗口处于活动状态时,大多数击键将被简单地传递到终端,而不是具有它们通常的功能。Ctrl-W及其子命令是主要的例外。要向终端发送文字^W输入,请按Ctrl-W ..您也可以通过按Ctrl-W:打开Vim:命令行。其他Ctrl-W命令正常工作,因此无论当前选择的是什么类型的窗口,管理窗口的工作都是一样的。

更新答案(11年后…):

如果您选择使用tmux解决方案,我建议使用tmux而不是下面原始答案中建议的screen。 Vim 8.1现在有一个内置的终端,可以用:term命令打开。这提供了与其余Vim特性更完整的集成。


我肯定会推荐这样的检查。Vim是一个文本编辑器,而不是一个shell。

我会使用Ctrl+AS来水平分割当前窗口,或者在Ubuntu的屏幕和其他补丁版本中,你可以使用Ctrl+A|(管道)来垂直分割。然后使用Ctrl+ATab(或在某些系统上等价地使用Ctrl+ACtrl+I,这可能更容易键入)在窗口之间切换。还有其他命令可以更改窗口的大小和排列。

或者一种不太高级的使用屏幕的方法是打开多个全屏窗口并在它们之间切换。这是我通常做的,我只是偶尔使用分屏功能。

如果你不熟悉GNU屏幕生存指南问题的使用,它有很多好的提示。

Vim 8.1的主要新特性是支持在Vim窗口中运行终端。

:term将在Vim内部的另一个窗口中打开终端。