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

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


当前回答

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

更新:

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

noremap <C-d>:sh<cr>

其他回答

我知道我没有直接回答这个问题,但我认为这是 好方法。没有人提到tmux(或者至少没有作为一个 独立的回答)。Tmux是一种类似于屏幕的终端多路复用器。大多数 两种多路复用器都可以制作东西,但我认为这样更容易 配置。此外,tmux现在的开发比 屏幕上有相当大的生态系统围绕着它,比如有帮助的工具 配置,ecc。

同样对于vim,还有另一个插件:ViMUX,它帮助很大 两个工具之间的交互。你可以调用命令:

:call VimuxRunCommand(“ls”)

该命令在当前窗格vim下面创建一个小的水平分割 是在。

方法时,它还可以让您从提示符运行 整个命令:

<领袖> vp: VimuxPromptCommand < CR >

这还不够,至少有6个“特定平台的插件”:

Vim-vroom:用于rspec、cucumber和测试/单元的流道;通过g:vroom_use_vimux支持Vimux Vimux-ruby-test:用于轻松运行ruby测试的一组命令 Vimux - Cucumber:通过Vimux运行Cucumber Features vim-turbux:使用tmux进行Turbo Ruby测试 vimux- pytils: vimux的一组函数,允许在ipython中运行代码块 vimux-nose-test:在vimux中运行鼻子测试

这里有一个很好的“用例”:使用Vimux和Turbux与Spork和Guard进行随需测试

这个问题相当老了,但是对于那些发现它的人来说,有一个新的可能的解决方案: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

2011年8月过时

看看征服壳(也在GitHub上)。允许您在vim中运行任何交互程序,而不仅仅是一个shell。

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

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

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