9

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

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

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

Есть ли способ для Vim сказать, если у вас включен CapsLock ?

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

1 ответ1

4

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

; 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .