Как переназначить клавиши курсора в vi и vim



Попробуйте наш инструмент устранения неполадок

Хотя некоторые люди могут возражать против любых изменений классических клавиш курсора vi Unix, вы можете быть пользователем vim, который хочет их изменить. Что хорошо в Linux, BSD и Unix в целом, так это то, что последнее слово обо всем остается за вами. Многим геймерам нравится использовать клавиши WASD в качестве клавиш курсора, и вы можете использовать их вместо HJKL. Есть также несколько других интересных комбинаций, которые вы можете попробовать, и вы можете попробовать любую из них.



Процесс не слишком сложен, но требует командной строки. Если вы привыкли использовать vi и vim, значит, вы уже знаете, как это сделать. Щелкните меню K в KDE или меню Whisker в Xfce4 и щелкните Терминал в Системных инструментах. Вы можете найти его в том же месте в меню приложений в оболочке GNOME и LXDE. Пользователи Ubuntu Unity могут искать слово Терминал в Dash, или вы можете использовать Ctrl + Alt + T, чтобы вызвать его.



Метод 1. Назначение ключей WASD для vi и vim

Поскольку клавишам WASD уже что-то назначено в vim, вы захотите использовать клавишу-модификатор. Было бы достаточно просто удерживать Alt и эти клавиши, но нам нужно убедиться, что ваш эмулятор терминала еще не назначил эти ярлыки чему-либо. На терминале введите Кот и нажмите Enter. Нажмите Alt + W, Alt + A, Alt + S и Alt + D, чтобы увидеть, не появятся ли какие-то странные коды команд. Вы также можете заметить, что некоторые меню раскрываются, как мы это делали, когда делали это с xfce4-terminal, который мы использовали для создания снимков экрана.



Для выхода нажмите Ctrl + C, что также может привести к тому, что некоторые непечатаемые символы Unicode попадут на ваш терминал. Вы можете спокойно игнорировать это. Вместо этого введите vim ~ / .vimrc чтобы загрузить файл конфигурации. Удерживайте нажатой кнопку j, пока не дойдете до конца, а затем введите I, чтобы войти в режим вставки.

Нажмите Enter, чтобы получить дополнительную строку, а затем то, что вы хотите вставить, зависит от того, сработал ли ваш эмулятор терминала вообще. Если нет, добавьте следующие четыре строки:

noremap h

noremap j

noremap k

l noremap

Если у вас возникла проблема, попробуйте следующее:

noremap a h

noremap s j

noremap в k

noremap d l

В любом случае нажмите Esc, а затем введите: wq, чтобы сохранить свою работу. Попробуйте снова загрузить vim и посмотрите, сможете ли вы теперь использовать клавиши WASD, когда вы не находитесь в режиме вставки, как клавиши курсора. Скорее всего, вам придется удерживать Alt или Esc при их использовании, поскольку эти клавиши уже назначены, но в остальном они должны работать нормально. Это самый быстрый способ сделать это без каких-либо дополнительных действий, но есть несколько других методов, которые вы можете попробовать, если это не сработало или вы предпочитаете другие комбинации клавиш.

Метод 2: Использование альтернативных назначений Alt

Если ни один из этих методов не работает, введите vim ~ / .vimrc еще раз, чтобы снова загрузить ваш rc файл, и удерживайте клавишу J, пока не окажетесь полностью внизу. Введите I, чтобы снова отредактировать, а теперь измените нижний раздел следующим образом:

noremap ^ [а ч

noremap ^ [s j

noremap ^ [в k

noremap ^ [d l

Некоторые пользователи сообщают, что на самом деле они физически набирают курсор (^), за которым следует открывающая скобка ([), в то время как другие говорят, что им на самом деле нужно либо удерживать комбинации клавиш Alt, либо, в качестве альтернативы, скопировать и вставить сами коды команд. Вы всегда можете ввести Кот в обычной командной строке и нажмите Alt + A, Alt + S, Alt + W и Alt + D, чтобы получить их, которые вы затем можете выделить, скопировать с помощью меню Edit, а затем вставить с помощью меню Edit в vim, если это вообще необходимо . Опять же, этот метод не нужен большинству пользователей, и его следует избегать. Первый метод требует гораздо меньше возни.

Вы можете нажать Esc, а затем ввести: wq, чтобы сохранить его. Откройте другой файл в vim и проверьте, работают ли ваши предпочтительные ключи на этом этапе. Это должно работать даже со многими типами альтернативных программ-эмуляторов терминала.

Метод 3: Использование других привязок клавиш

Вы не ограничены ни ключами HJKL по умолчанию, ни ключами WASD, предпочитаемыми игроками. Некоторые люди предпочитают использовать другие наборы. В вашем файле .vimrc вы действительно можете заменить раздел:

noremap h

noremap j

noremap k

l noremap

Это дает вам больший выбор. Некоторые люди предпочитают ESDF, который позволяет мизинцу касаться других клавиш, пока вы используете их в качестве клавиш курсора. При желании вы можете использовать в своем файле следующее:

noremap h

noremap j

noremap k

l noremap

Некоторые люди предпочтут ромб IJKL на другой стороне клавиатуры. Вас может заинтересовать такая конфигурация:

noremap h

noremap j

noremap k

l noremap

Обратите внимание, что этот немного сложнее, потому что он использует некоторые ключи, которые будут использовать стандартные привязки HJKL, но он все равно должен работать таким же образом. Если вас интересуют эти альтернативные привязки, вы можете поэкспериментировать с ними. Геймеры, которые используют другие комбинации, иногда заменяют их, и даже были некоторые типы хакеров Unix, которые настраивали vim для работы с контроллерами USB. Однако для большинства пользователей ключей HJKL и WASD более чем достаточно.

4 минуты на чтение