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

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


当前回答

这个问题相当老了,但是对于那些发现它的人来说,有一个新的可能的解决方案:Neovim包含一个成熟的、一流的终端模拟器,它所做的正是ConqueTerm试图做的。只需运行:term <您的命令这里>。

<C-\><C-n>将退出术语模式返回正常模式。如果你像我一样,更喜欢escape仍然退出term模式,你可以把这个添加到你的nvimrc:

tnoremap <ESC><ESC> <C-\><C-N>

然后按ESC两次将退出终端模式回到正常模式,因此您可以操作仍在运行的命令写入的缓冲区。

不过请记住,由于nvim在我发布这个答案的时候正在进行大量的开发,可能会添加另一种退出终端模式的方法。当Ctrl+\Ctrl+n从几乎任何模式切换到正常模式时,我不期望这个答案会出错,但请注意,如果它不起作用,这个答案可能已经过时了。

https://github.com/neovim/neovim

其他回答

我解决这个问题的方法是:

用Ctrl + Z暂停Vim, 在终点站玩, 然后只需输入命令fg,就可以返回到您离开Vim时的位置。

不,你不能:

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

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

分割屏幕并运行命令term ++curwin在Vim缓冲区中运行终端。下面的命令既能做到这一点,也对我有用:

:bo 10sp | term ++curwin

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

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

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