我正在使用 vimshell 在 vim 中执行命令
nnoremap <leader>vs :VimShellPop<CR>
使用此键映射,我可以打开 vim shell 并执行诸如"捆绑安装"之类的命令,然后键入退出退出VimShellPop窗口,但我想设置一个键映射
nnoremap <leader>bi :
要打开 vimshellpop,请执行捆绑安装命令并在完成后退出。在 vimshell 中可能吗?
vimshell 插件在 Vim 缓冲区内提供了一个交互式 shell。显然,您不需要交互性(因为您打算在发出 shell 命令后立即exit
)。为此,您不需要插件本身;内置的 :!
命令已经允许您启动外部命令:
:nnoremap <leader>bi :!bundle install<CR>
如果要保持输出可见,可以将其读入暂存缓冲区:
:nnoremap <leader>bi :new<Bar>0r!bundle install<CR>
在 Vim 中拥有一个交互式 shell 是 Vim 声明的非目标之一(cp。 :help design-not
),因此插件必须跳过几个箍才能实现。这些黑客导致了这些问题(定义适当的映射,正如问题评论中的尝试所证明的那样);缺乏自动化(如通过映射)是这种方法的局限性。
您可以联系vimshell的作者(通过电子邮件或GitHub问题);他通常非常开放且反应迅速!他处于使这种映射工作的最佳位置。