3

我的.vimrc文件中映射了以下键:

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

它们执行的命令由buftabs 脚本提供。

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

这是另一个问题中解释的类似问题,但是通过配置插件解决了该问题,而 buftabs 脚本没有这样的选项。

4

2 回答 2

4

为了禁用某些缓冲区中的映射,可以为相同的键序列定义缓冲区本地映射,用无操作覆盖原始映射:

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

(有关:help :map-arguments:help <nop>的详细信息 <buffer>,请<nop>分别参见 和。)

于 2012-04-19T03:35:47.207 回答
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>

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

于 2020-05-17T22:42:08.070 回答