我在我的.vimrc中为我使用的版本控制系统写了一些宏(Perforce)(请不要为vim提供perforce插件,我试过了,我不喜欢它)。他们都能正常工作,除了恢复宏,由于确认提示而断开(我需要这样做,所以我不会无意中将我的更改变胖)。目前,它看起来像这样:vim:使用确认键映射命令
map <F8> :if confirm('Revert to original?', "&Yes\n&No", 1)==1 | !p4 revert <C-R>=expand("%:p")<CR><CR><CR>:edit<CR> | endif
这会导致bash的时候Vim试图加载该文件在抱怨:
bin/bash: -c: line 0: syntax error near unexpected token `('
望着缓冲的bash看到,它看起来像错误是,VIM将其发送第一根管子后面的所有东西,而不仅仅是用于bash的部分。我尝试了一些替代方案,但似乎无法使其发挥作用。当我删除管道和endif(使用速记if)时,我已经准确地显示了确认对话框,但是当用户给出响应后,vim会发出抱怨。
解决方案中存在一个小错误,该命令需要“p4还原”,而不是“p4”,但整体格式起作用。谢谢 –