Предотвращение определенных отображений команд, в то время как сосредоточено на 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>

Он возвращается в предыдущее окно и выполняет команду.

Другие вопросы по тегам