我正在使用vimshell在vim
中执行命令nnoremap <leader>vs :VimShellPop<CR>
使用此键映射我可以打开vim shell并执行'bundle install'等命令 键入exit退出VimShellPop窗口,但我想设置一个键映射
nnoremap <leader>bi :
打开vimshellpop执行bundle install命令并在我完成后退出..是否可以在vimshell中使用?
答案 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问题);他通常非常开放和敏感!他处于制作这种绘图工作的最佳位置。