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

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


当前回答

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

更新:

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

noremap <C-d>:sh<cr>

其他回答

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

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

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

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

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

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

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

作为旁注:

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

干杯!

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

:bo 10sp | term ++curwin

:项

在Vim 8.1中添加。

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

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

各种命令

我知道我没有直接回答这个问题,但我认为这是 好方法。没有人提到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进行随需测试