我倾向于不在Vim中使用很多窗口(我更喜欢制表符),但有些东西使用它们,例如帮助文本缓冲区。我对此很好,但由于我很少使用Windows,通常需要一秒时间才能记住如何关闭窗口(<C-w>c
)并回到我正在做的事情。因此,我想在我的vimrc中添加一行,映射q
以关闭窗口,仅当窗口是帮助缓冲区时。
我已经为netrw windows做了类似的事情,比如:
augroup wtf_netrw
autocmd!
autocmd filetype netrw nnoremap <buffer> q :e#<CR>
augroup END
我尝试用filetype help
做类似的事情:
:autocmd filetype help nnoremap <buffer> q <C-w>c
但它没有用 - 在帮助文本缓冲区中键入q
只是执行默认的q
操作,录制宏。
当我尝试:nnoremap q <C-w>c
时,在帮助文本缓冲区中键入q
将按预期关闭窗口。
是否有一种特殊的方法来添加仅在帮助文本缓冲区中起作用的映射?
答案 0 :(得分:3)
我使用的是这样的东西(我认为借用了Junegunn的vimrc):
augroup vimrc
autocmd!
autocmd BufEnter *.txt call s:at_help()
...
augroup END
" special actions for help files
function! s:at_help()
if &buftype == 'help'
" enable 'q' = quit
nnoremap <buffer> q :q<cr>
endif
endfunction
答案 1 :(得分:3)
将此文件放入文件~/.vim/ftplugin/help.vim
:
nnoremap <silent> <buffer> q :q<CR>