在专注于nerdtree时防止某些命令映射

时间:2012-04-18 19:50:48

标签: vim nerdtree

我在vimrc中映射了以下键:

noremap <silent> <C-h> :bprev<CR>
noremap <silent> <C-l> :bnext<CR>

他们执行的命令来自buftabs脚本:

http://www.vim.org/scripts/script.php?script_id=1664

我想要做的是防止在我进行NERDTree拆分时执行这些键映射。这样做的原因是如果在NERDTree中运行命令,则会在分割中加载文件缓冲区。然后,要修复它,需要关闭窗口并再次打开。

这是与explained here类似的问题,但是他的问题已通过配置插件得到纠正,但buftabs脚本没有这样的选项。

2 个答案:

答案 0 :(得分:3)

为了防止某些缓冲区中的映射,可以定义 相同键序列的缓冲区本地映射,从而覆盖原始映射 映射。

autocmd FileType nerdtree noremap <buffer> <c-h> <nop>
autocmd FileType nerdtree noremap <buffer> <c-l> <nop>

答案 1 :(得分:0)

我通过查看ib。的解决方案来更新vimrc。

autocmd FileType nerdtree noremap <buffer> <A-PageDown> <ESC>:wincmd w <bar> bnext<CR>
autocmd FileType nerdtree noremap <buffer> <A-PageUp> <ESC>:wincmd w <bar> bprevious<CR>

它返回上一个窗口并执行命令。