Vim - O Capslock está ligado?

9

Quando eu trabalho com o Vim quase nunca olho para o meu teclado (como deveria ser!) e isso é ótimo, mas às vezes, sem saber, eu pressiono a tecla CapsLock e me faz gritar na tela.

Porque, você sabe, j não é o mesmo que J no modo normal (e assim por diante).

Então, em vez disso, ou mapeando CapsLock para dizer Ctrl , quero exibir uma mensagem de erro que me avisará no modo normal, se esse for o caso.

Existe uma maneira de o Vim informar se você tem CapsLock ativado?

Nota: Eu prefiro uma solução VimScript / VimL para portabilidade e porque eu quero que o Vim me notifique e não dependa do sistema atual.

    
por alfredodeza 26.07.2011 / 14:39

1 resposta

4

Você pode usar um script como este:

; 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 

Extraído de aqui . Agora o Vim exibirá o CAPS LOCK ON sempre que o caps lock estiver ativado

Atualização: E esse é um script para o AHK (Automatic Automatic Language Scripting Language). De acordo com esta conversa , é impossível criar um comportamento que você esteja descrevendo usando apenas vim.

    
por 26.07.2011 / 14:46

Tags