Как перепривязать `hjkl` к `jkl;`

Я пытался переназначить правильные клавиши слепой печати, и на самом деле я ожидал, что это будет сложнее. Это мой init.vim:

      " Normal mode
nmap ; <Right>
nmap l <Up>
nmap k <Down>
nmap j <Left>
nnoremap h ;

" Visual mode
vmap ; <Right>
vmap l <Up>
vmap k <Down>
vmap j <Left>
vnoremap h ;

" Rebind the window-switching movements
nnoremap <C-w>; <C-w>l
nnoremap <C-w>l <C-w>k
nnoremap <C-w>k <C-w>j
nnoremap <C-w>j <C-w>h
nnoremap <C-w>h <C-w>;

Выглядит хорошо, верно? Но это не так. По умолчанию в vim при нажатии, ваше окно переключится, независимо от того, нажали ли выс уже нажатым или последовательно на . Однако с моими переназначениями клавиш после отпускания необходимо нажимать клавишу движения. Это разрушает мой рабочий процесс, так как иногда я пытаюсь быстро переключить окно, и у меня ничего не получается, потому что я не выпустилдостаточно быстро.

Как я могу добиться правильной привязки клавиш, не делая переключение окон менее удобным? Спасибо.

1 ответ

Если вы посмотрите на:help CTRL-W_jи его друзей, вы увидите, что у всех есть куча альтернатив. Важным является<C-w><C-j>, что позволяет вам держать левый мизинец включенным, пока вы нажимаете правым указательным пальцем , или держать левый мизинец и указательный палец включенными.Ctrlиwпока вы нажимаетеjс правильным индексом.

Поэтому:

      [...]
nnoremap <C-w>j <C-w>h
nnoremap <C-w><C-j> <C-w>h
[...]
Другие вопросы по тегам