Vim — Включен ли Capslock?

Vim — Включен ли Capslock?

Когда я работаю с Vim, я почти никогда не смотрю на клавиатуру (как и положено!), и это здорово, но иногда я неосознанно нажимаю клавишу CapsLock, и это заставляет меня кричать на экран.

Потому что, знаете ли, jэто не то же самое, что Jв обычном режиме (и так далее).

Поэтому вместо того, CapsLockчтобы Ctrlотображать сообщение об ошибке, я хочу отобразить его в обычном режиме, если это так.

Есть ли способ, с помощью которого Vim определит, включена ли эта CapsLockопция?

Примечание: я предпочитаю решение VimScript/VimL из-за портативности и потому, что я хочу, чтобы Vim уведомлял меня и не зависел от реальной системы.

решение1

Вы можете использовать такой скрипт:

; INDICATE WHEN THE CAPS LOCK IS ON WITH A SCREEN MESSAGE
Gui, +AlwaysOnTop +ToolWindow -SysMenu -Caption
Gui, Font, caf001e s30 bold ,Verdana ;changes font color, size and font
Gui, Color, af001d;changes background color
Gui +LastFound  ; Make the GUI window the last found window for use by the line below.
WinSet, TransColor,af001d
Gui, Add, Text, ,CAPS LOCK ON
; TOGGLE THE GUI ON AND OFF
~capslock::
   if(0==GetKeyState("capslock","T")){
      Gui,  hide
   }else{
      if(guilocation>0){
         guilocation=0
         Gui, Show,x600 y800 NoActivate
      }else{
         guilocation=1
         Gui, Show,x600 y400 NoActivate
      }
   }
return 

Взято изЗдесь. Теперь Vim будет отображать CAPS LOCK ON всякий раз, когда включен Caps Lock.

Обновление: А это скрипт для AHK (автоматический язык сценариев горячих клавиш). Согласноэтот разговорневозможно создать описанное вами поведение, используя только vim.

Связанный контент