Я хочу научить себя, используя hjkl больше, чем клавиши со стрелками, чтобы остаться в домашнем ряду. И да, я прекрасно понимаю, что не следует использовать hjkl в качестве основных клавиш навигации. Все же мои привычки довольно сильны, и я даже не понимаю, что заставило это движение руки к клавишам со стрелками, и я хочу отучиться от этого.
Чтобы избавиться от этой привычки: как я могу отключить клавиши со стрелками, чтобы я был вынужден использовать hjkl или какой-либо другой метод навигации?
В качестве бонуса было бы полезно, если бы было показано сообщение, Dont't use this!
что оно не является обязательным. Если они не работают, это будет достаточно запутанным для меня, чтобы переосмыслить свои привычки.
key-bindings
cursor-movement
cursor-motions
k0pernikus
источник
источник
w
для следующего слова,}
для следующего абзаца,n
для следующего совпадения результатов поиска,fz
для следующего вхожденияz
в текущей строке и т. Д.), Чем для перемещения более гранулярно одиночными символами. Я определенно согласен с этим. Тем не менее, HJKL определенно лучше, чем клавиши со стрелками, в том, что вам не нужно отводить руки от домашнего ряда. Я часто буду печатать что-то вроде этогоjA
, что намного быстрее, чем<Down>A
, и на самом деле не может быть побито ни одним движением.Ответы:
Вы можете установить плагин hardmode и в вашем
.vimrc
месте вЕсли вы не хотите использовать плагин, использование (который может быть лучшим выбором, так как вы можете настроить все сами!)
nnoremap
,vnoremap
Иinoremap
на<Left>
,<Right>
,<Up>
,<Down>
,<PageUp>
и<PageDown>
, к примеру:источник
<nop>
если вы хотите отключить раскладку вообще:nnoremap h <nop>
.Если вы или кто-то еще, читающий эту тему, просто хотите отключить движения клавиш без текстового предупреждения, введите следующие строки в .vimrc
Команды отключат движение клавиш только в обычном режиме. Они все еще работают в режиме вставки. Если вы используете inoremap, движение стрелки будет также удалено из режима вставки.
Эта чрезвычайно популярная тема посвящена различиям между noremap, nnoremap, inoremap и т. Д .: переопределение в Vim
Общая идея с переназначением выглядит так:
Таким образом, в других приведенных примерах вы переназначаете свою левую команду в текстовое приглашение, которое случайно удаляет действие фактического перемещения курсора. Пример, который я привел выше, просто перераспределяет действия, которые ничего не делают, а не что-то еще. Считайте, что он удаляет, а не заменяет функциональность vim.
источник
Вы можете добавить это к своему,
.vimrc
чтобы отключить клавиши со стрелками в командном, вставочном, нормальном и визуальном режимах:Примечание. Ознакомьтесь
:help map-overview
с более подробной информацией о различных типах картирования.источник
noremap ... ...
(для обычного, визуального, выбора и режима ожидания оператора) иnoremap! ... ...
(для режима вставки и режима командной строки).noremaps
будет полезно для тех, кто хочет настроить режимы, на которые влияют