3

次のキーが.vimrcファイルにマップされています。

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

それらが実行するコマンドは、buftabsスクリプトから提供されます。

私がやりたいのは、NERDTree分割にいるときにこれらのキーマッピングが実行されないようにすることです。これは、NERDTreeでコマンドを実行すると、代わりにファイルバッファがスプリットにロードされるためです。次に、それを修正するには、ウィンドウを閉じてから再度開く必要があります。

これは別の質問で説明したのと同様の問題ですが、プラグインを構成することで問題が修正されましたが、buftabsスクリプトにはそのようなオプションはありません。

4

2 に答える 2

4

特定のバッファのマッピングを無効にするために、同じキーシーケンスのバッファローカルマッピングを定義して、元のマッピングをno-opでオーバーライドできます。

: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 に答える