0

我正在寻找一种仅映射:q:bwipeoutSVN 责备缓冲区的方法,由vcscommand.vimand生成,:VCSBlame以便:q当我想消除那些短暂的只读缓冲区时,我的电机内存占据主导地位。

缓冲区名称以 开头SVN\ annotate <filename>,所以我希望这会匹配:

autocmd BufNew SVN\ annotate* cmap q bwipeout

但是,缓冲区名称与此模式不匹配。我怎样才能使这种映射在本地发生在缓冲区中SVN\ annotate*

4

2 回答 2

2

VCSCommand(我推荐)为其缓冲区提供特殊的文件类型。因为:VCSBlame如果svnannotate你使用 Subversion 或者gitannotate如果你使用 Git。

从我有限的试用中,这条线完全符合您的要求:

autocmd FileType svnannotate cmap <buffer> q bwipeout

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

于 2012-02-27T22:43:16.707 回答
2

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

let g:VCSCommandDeleteOnHide = 1

如果您真的只想擦除注释缓冲区,您可以执行以下操作。

autocmd FileType svnannotate set bufhidden=wipe

:h VCSCommandDeleteOnHide
:h 'bufhidden'
于 2012-02-28T14:37:46.503 回答