Почему так сложно переоборудовать ESC в блокировку Caps в Vim?
Вопрос
Я видел советы Vim Wiki, и в нем говорится, что для того, чтобы пережить ESC в блокировку Caps, вы должны редактировать следующий код 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, только добавив или изменяя линии в _vimrc?
Решение
Я рекомендую вам использовать Autohotkey для этого.
Вы можете сделать смену горячей кладки на перемещение:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
Этот скрипт, например, устанавливает крышки, чтобы сбежать в VIM, и управлять повсюду.
Другие советы
Для ключа Capslock нет идентификатора ключа VIM, поэтому вы должны сделать это с кодом сканирования.
Это было бы все равно, что попытаться отобразить клавишу CTRL или клавишу Shift к чему -то - эти ключи ничего не делают сами по себе, они являются модификаторами ключей, поэтому они не могут попасть в ловушку одинаково.
Картирование должно быть сделано на уровне ОС вместо VIM, поэтому осложнение исходит от ОС. Например, на моей машине Ubuntu у меня есть следующее ~/.Xmodmap
:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Тем не менее, я не думаю, что сценарий Regedit настолько плох. Это довольно уродливое, но это всего лишь две строки!
Также вы можете попробовать это: ШрайкиАнкет Я сменил каплей и ESC с ним.
Вы также можете использовать CTRL-C для побега (доступно по крайней мере в VIM). Что я обычно использую. Я обычно обменяюсь управлением и Capslock, и делал это с помощью настройки реестра в Windows и Keyboard Conf в Ubuntu.
РЕДАКТИРОВАТЬ: Как отмечает @mmontu, Ctrl-C более жестокий, чем ESC: как указано в Этот подходящий вопрос,
Вим не собирается проверять, если вы только что написали часть аббревиатуры, и он не будет запускать причудливые автоматические команды, которые ваши плагины настроены на каждый раз, когда вы оставляете режим вставки
Я не заметил, потому что у меня еще не так продвинуто.
Еще одна альтернатива, которая сработала для меня, - это использовать инструкции, найденные вэтот сайт
По сути: установите создателя макета клавиатуры Microsoft, затем отредактируйте его исходный код, чтобы позволить переиздание блокировки Caps и создать свой собственный макет.