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 플러그인은 버퍼를 열 때 파일 유형을 "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> 수정자를 제거할 수 있을 것 같습니다.
답변2
요즘에는 더 간단한 해결책은 매핑을 다음 위치에 넣는 것입니다 .vim/after/ftplugin/netrw.vim
.
noremap <buffer> d h
noremap <buffer> h gj
noremap <buffer> t gk
noremap <buffer> n l
noremap <buffer> e d
noremap <buffer> l n
<buffer>
이유를 설명하려면 lornix가 필요합니다 .