cmap:q to:bwipeout for VCSBlame / VCSAnnotate buffers(和其他VCSCommand缓冲区)

时间:2012-02-27 21:42:42

标签: svn vim vcscommand

我正在寻找一种方法,只为:q:bwipeout生成的SVN blame缓冲区映射vcscommand.vim:VCSBlame,以便我的运动记忆为{当我想要消除那些短暂的只读缓冲区时,{1}}就会占用。

缓冲区名称以:q开头,所以我希望这匹配:

SVN\ annotate <filename>

但是,缓冲区名称与此模式不匹配。如何在autocmd BufNew SVN\ annotate* cmap q bwipeout 等缓冲区本地进行映射?

2 个答案:

答案 0 :(得分:2)

VCSCommand(我推荐)给它的缓冲区特殊文件类型。如果您使用Subversion,则:VCSBlamesvnannotate;如果您使用Git,则为gitannotate

从我的有限试用版中,这一行完全符合您的要求:

autocmd FileType svnannotate cmap <buffer> q bwipeout

我已添加<buffer>以防万一,但我认为您可以安全删除它。

答案 1 :(得分:2)

显然,VCSCommand插件有一个名为VCSCommandDeleteOnHide的设置,当设置为非零时,:bdelete隐藏缓冲区,包括:q。注意:这将适用于所有VCSCommand缓冲区。

let g:VCSCommandDeleteOnHide = 1

如果你真的只是要擦除注释缓冲区,你可以改为执行以下操作。

autocmd FileType svnannotate set bufhidden=wipe

:h VCSCommandDeleteOnHide
:h 'bufhidden'