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

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


当前回答

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

其他回答

自2017年以来,在vim中使用终端打开一个新标签是可能的,正如@fjardon所说:

只需输入::terminal。默认情况下,它将在当前选项卡上方打开一个选项卡。

如果你想在其他地方打开它,你可以尝试以下选项:

:在终端下方:打开当前选项卡下方的终端。 :下方垂直端子:始终垂直向右打开端子。

你可以玩这些,直到你找到你喜欢的。在这之后,你可以在你的.vimrc配置文件中设置一个映射,对我来说,我使用:

nmap <leader>tt :below vertical terminal<CR>

这样我可以输入<空格>tt(空格我的领导键)来快速打开它。

作为旁注:

你可以切换你的选项卡(终端和其他缓冲区)与Ctrl+W Ctrl+W。 如果你想用Ctrl+W N复制你的命令,用i或a进入普通终端模式,你可以在终端中进入可编辑模式。

干杯!

不,你不能:

http://vimdoc.sourceforge.net/htmldoc/tips.html#shell-window

试试vterm吧,它是vim中的一个功能非常完整的shell。它的历史和清晰的功能略显缺陷,仍在开发中,但仍然相当不错

最终,一个原生的:terminal命令于2017年添加到vim中。

下面是:terminal自述的节选:

此特性用于在Vim窗口中运行终端模拟器。一个 作业可以连接到终端模拟器启动。例如, 运行一个shell: :任期bash 或者运行build命令: :term make myprogram 作业从Vim异步运行,窗口将更新为 在另一个窗口中编辑时显示作业的输出。

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