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

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


当前回答

:sh然后按Ctrl+D返回(bash)

更新:

您可以将vim中的Ctrl+D映射为run:sh,这允许您在bash和vim之间快速切换。

noremap <C-d>:sh<cr>

其他回答

假设你的vim版本首先支持+term命令,将shell设置为vim在一个命令中使用(例如set=/usr/bin/zsh),然后运行命令+term(即bo 15vs +term)。你可能需要对你的Windows做一些额外的操作(例如删除一个并旋转),但你会有你的终端。

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

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

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

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

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

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

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

作为旁注:

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

干杯!

你可能想看一下:sh命令(参见:help sh in Vim)。

各种命令

我不确定你到底想要实现什么(我从未使用过Emacs),但你可以在Vim中通过键入以下命令来运行命令:

:! somecommand [ENTER]

如果你想输入几个命令,或者在shell中玩一会儿,你总是可以使用:

:! bash (or your favourite shell) [ENTER]

一旦命令或shell终止,您将得到按Enter返回编辑器窗口的选项

Vim是有意轻量级的,并且缺乏执行非编辑类型事情的能力,就像在Vim窗格/选项卡中运行一个完整的shell一样,但正如上面提到的,有第三方插件,如Vim -shell,允许您执行这类事情。

通常情况下,如果我想在Vim和shell (Bash)之间切换,我只需按CTRL+Z暂停Vim进程,在我的shell中玩,然后当我想返回Vim时键入'fg' -保持我的编辑器和shell良好且独立。

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