Почему так сложно переназначить Esc в CAPS LOCK в Vim?
Я видел подсказки vim wiki, и там говорится, что для переназначения Esc в CAPS LOCK вы должны отредактировать следующий код Windows:
REGEDIT4
[HKEY_CURRENT_USER\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
Можно ли переназначить Esc в CAPS LOCK, только добавляя или изменяя строки в _vimrc?
6 ответов
Я рекомендую вам использовать AutoHotkey для этого.
Вы можете сделать изменение горячей клавиши для каждого приложения:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
Этот скрипт, например, устанавливает caps для экранирования в vim и контроля везде.
Для ключа capslock нет идентификатора ключа vim, поэтому вы должны сделать это с помощью кода сканирования.
Это все равно что пытаться сопоставить клавишу ctrl или клавишу Shift с чем-то - эти клавиши сами по себе ничего не делают, они являются модификаторами клавиш, поэтому их нельзя поймать таким же образом.
Сопоставление должно быть сделано на уровне ОС, а не vim, поэтому сложность связана с ОС. Например, на моей машине с Ubuntu у меня есть следующее в ~/.Xmodmap
:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Однако я не думаю, что скрипт REGEDIT настолько плох. Это некрасиво, но всего две строчки!
Также вы можете попробовать это: SharpKeys. Я поменял CapLock и Esc на него.
Еще одна альтернатива, которая хорошо для меня работала, это использовать инструкции, найденные на этом сайте.
По сути: установите Microsoft Keyboard Layout Creator, затем отредактируйте его исходный код, чтобы разрешить переназначение CAPS LOCK и создать свой собственный макет.
Вы также можете использовать Ctrl-C для выхода (доступно по крайней мере в vim). Что я обычно использую. Я обычно меняю элементы управления и capslock, и делал это с помощью настроек реестра в windows и клавиатуры conf в ubuntu.
Редактировать: как любезно отмечает @mMontu, Ctrl-C более жесток, чем Esc: как указано в этом соответствующем вопросе,
vim не собирается проверять, написали ли вы часть аббревиатуры, и не будет запускать необычные автоматические команды, которые ваши плагины настраивали каждый раз, когда вы выходите из режима вставки.
Я не заметил, потому что мой vimming еще не настолько продвинут.
Переназначить CAPSLOCK
к ESC
а также CTRL
в Windows
Очень хороший инструмент, который я уже описал в этом ответе, дает вам возможность переназначитьCAPSLOCK
как для
- к
ESC
(при нажатии в одиночку) и - к
CTRL
(при нажатии другими клавишами)
Просто воспользуйтесь этим маленьким программным обеспечением с открытым исходным кодом от ililim.
Для этого вам не нужны права администратора и ESC
а также CTRL
все еще работают, как ожидалось.
Я использую это, чтобы наслаждаться удобным CTRL + anything
нажимает, не повреждая мой мизинец, и переключает режимы в Vim, который я использую через ssh в MobaXterm. Для установки просто следуйте этому описанию.