cmap: q to: bwipeout для буферов VCSBlame / VCSAnnotate (и других буферов VCSCommand) - PullRequest
0 голосов
/ 28 февраля 2012

Я ищу способ сопоставления :q с :bwipeout только для буферов SVN, генерируемых vcscommand.vim и :VCSBlame, чтобы моя память двигателя :q удерживалась, когда я хочуустранить эти недолговечные буферы только для чтения.

Имена буферов начинаются с SVN\ annotate <filename>, и я надеялся, что это будет соответствовать:

autocmd BufNew SVN\ annotate* cmap q bwipeout

Однако имя буфера несоответствовать этому шаблону.Как я могу сделать это отображение локально для буферов, таких как SVN\ annotate*?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Очевидно, что плагин VCSCommand имеет настройку под названием VCSCommandDeleteOnHide, которая при установке на ненулевое значение будет :bdelete буфером в шкуре, который включает в себя :q.Примечание: это будет применяться ко всем буферам VCSCommand.

let g:VCSCommandDeleteOnHide = 1

Если вы действительно хотите стереть только аннотированный буфер, вы можете вместо этого сделать следующее.

autocmd FileType svnannotate set bufhidden=wipe

См.

:h VCSCommandDeleteOnHide
:h 'bufhidden'
2 голосов
/ 28 февраля 2012

VCSCommand (что я рекомендую) дает своим буферам специальные типы файлов.Для :VCSBlame это svnannotate, если вы используете Subversion или gitannotate, если вы используете Git.

Из моей ограниченной пробной версии эта строка делает именно то, что вы хотите:

autocmd FileType svnannotate cmap <buffer> q bwipeout

IЯ добавил <buffer> на всякий случай, но я думаю, что вы можете удалить его безопасно.

...