Предотвращение определенных отображений команд, в то время как сосредоточено на 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, вместо этого в разделение загружается файловый буфер. Затем, чтобы исправить это, окно необходимо закрыть и снова открыть.
Эта проблема аналогична описанной здесь, но его проблема была исправлена путем настройки плагина, но сценарий buftabs не имеет такой опции.
1 ответ
Чтобы предотвратить отображение в определенных буферах, можно определить локальное отображение буфера для той же самой последовательности ключей, таким образом, переопределяя исходное отображение.
autocmd FileType nerdtree noremap <buffer> <c-h> <nop>
autocmd FileType nerdtree noremap <buffer> <c-l> <nop>
Я обновил свой vimrc, посмотрев на решение ib.
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>
Он возвращается в предыдущее окно и выполняет команду.