Vim - O Capslock está ativado?

11

Quando 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 com a minha tela.

Porque, você sabe, jnão é o mesmo que Jno modo normal (e assim por diante).

Então, em vez disso, faça o mapeamento CapsLockpara dizer Ctrlque quero exibir uma mensagem de erro que me avisará no modo normal, se for esse o caso.

Existe uma maneira do Vim dizer se você CapsLockativou?

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

alfredodeza
fonte
3
Livre-se do caps lock, você não precisa dele. Se você precisar digitar todas as letras maiúsculas por mais de 60 segundos, solte um fardo na tecla Shift.
26611 sidyll
11
Estou dizendo especificamente que não quero fazer isso, então não adianta sugerir que eu deva me livrar disso.
2
Acho a tecla CapsLock tão fácil de pressionar que remapeei para Escape. Funciona para mim. :)
dash-tom-bang
11
Além de converter meu caps lock em Escape, também é um controle. Sim, é uma fuga e um controle ao mesmo tempo ! No linux, você pode fazer isso via xmodmap -e "add Control = Escape". Espero que goste. :-)
evaryont
O CapSee faz o trabalho no OS X. Não é a resposta que você estava procurando, mas é a resposta certa para a maioria dos usuários da Apple.
earlio

Respostas:

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 

Retirado daqui . Agora o Vim exibirá CAPS LOCK ON sempre que o caps lock estiver ativado

Atualização: E esse é um script para AHK (linguagem de script de teclas de atalho automática). De acordo com essa conversa , é impossível criar um comportamento que você está descrevendo usando apenas o vim.


fonte
2
Que língua é essa? Eu preferiria ter VimScript / VimL fazer Vim cuidar disso (atualizar a minha pergunta)
11
Isso é para o AHK (script de teclas de atalho de automação), portanto não adianta você. Tentei procurar no google e não conseguiu encontrar nada específico do vim para o seu problema: /
2
A ideia é boa, mas como posso colocar isso no meu .vimrc, por exemplo? Como uso isso com o vim? = |
Eduardo Lucio