vimの「カタログの表示」でキーを再マップします。

vimの「カタログの表示」でキーを再マップします。

vim(例:e .:)でディレクトリを開いて取得した「Netrwディレクトリのリスト」は、ナビゲーションに通常のvimとは異なるキーバインディングセットを使用するようです。

私のhjklキーが再マップされました。

noremap d h
noremap h gj
noremap t gk
noremap n l
noremap e d
noremap l n

ただし、ディレクトリリストで「t」(上矢印とも呼ばれます)を押すと、実際にファイルが開かれるのではなく、カーソルの下にファイルが開きます。このディレクトリリストモードで同様のキーマッピングを達成するにはどうすればよいですか?

ベストアンサー1

私が理解できないかと心配です。

[根本原因を特定する前に、いくつかの冗長な内容を削除しました。]

何を達成したいですか?とにかく、あなたのnoremapリストは私には理解できません。

ああ!わかりました!

あなたはDVORAKキーボードレイアウト、そうではありませんか?これでマッピングが理解され始めます。 (話すのを忘れました…そうです!)

NETRWプラグインのソースコードを見ると、netrwバッファはBUFFER ONLY nnoremapsを設定しているようです...もちろんバッファを上書きします。私は解決策を探しています。

私が知る限り、$VIMRUNTIME/autoload/netrw.vimファイルにいくつかの大手術をしなければなりません。しかし、別の考えが浮かんだ。

netrw プラグインはバッファを開くとファイルの種類を "netrw" に設定するので、.vimrc で自動コマンドを設定することで、netrw ウィンドウで必要なキー変換を設定できます。

augroup netrw_dvorak_fix
    autocmd!
    autocmd filetype netrw call Fix_netrw_maps_for_dvorak()
augroup END
function! Fix_netrw_maps_for_dvorak()
    noremap <buffer> d h
    noremap <buffer> h gj
    noremap <buffer> t gk
    noremap <buffer> n l
    noremap <buffer> e d
    noremap <buffer> l n
    " and any others...
endfunction

mapコマンドを接続できないため、必ず実行してください。あなたのために働く必要があります。

常に dvorak noremap を使用している場合は、<buffer> 修飾子を削除できるようです。

おすすめ記事