vim shell key mapping执行shell命令

时间:2013-12-28 20:12:47

标签: shell vim vim-plugin

我正在使用vimshell在vim

中执行命令
nnoremap <leader>vs :VimShellPop<CR>

使用此键映射我可以打开vim shell并执行'bundle install'等命令 键入exit退出VimShellPop窗口,但我想设置一个键映射

nnoremap <leader>bi :

打开vimshellpop执行bundle install命令并在我完成后退出..是否可以在vimshell中使用?

2 个答案:

答案 0 :(得分:3)

vimshell 插件在Vim缓冲区内提供了一个交互式shell。显然,您不需要交互性(因为您打算在发出shell命令后立即exit)。为此,您不需要插件本身;内置的:!命令已经允许您启动外部命令:

:nnoremap <leader>bi :!bundle install<CR>

如果要保持输出可见,可以将其读入暂存缓冲区:

:nnoremap <leader>bi :new<Bar>0r!bundle install<CR>

答案 1 :(得分:1)

在Vim中拥有一个交互式shell是Vim声明的非目标之一(cp。:help design-not),因此插件必须跳过几个环节才能实现这一目标。那些黑客正在造成这些问题(定义正确的映射,正如问题评论中的尝试所证明的那样);缺乏自动化(如通过映射)是这种方法的局限。

您可以联系vimshell的作者(通过电子邮件或GitHub问题);他通常非常开放和敏感!他处于制作这种绘图工作的最佳位置。