Vim - Capslock est-il activé?

11

Lorsque je travaille avec Vim, je ne regarde presque jamais mon clavier (comme il se doit!) Et c'est génial, mais parfois, sans le savoir, j'appuie sur la touche CapsLock et me fait crier sur mon écran.

Parce que, vous savez, ce jn'est pas la même chose qu'en Jmode normal (et ainsi de suite).

Donc à la place ou mappage CapsLockpour dire que Ctrlje veux afficher un message d'erreur qui m'avertira en mode normal si c'est le cas.

Existe-t-il un moyen pour Vim de savoir si vous l'avez CapsLockactivé?

Remarque: je préfère une solution VimScript / VimL pour la portabilité et parce que je veux que Vim me prévienne et ne dépende pas du système réel.

Alfredodeza
la source
3
Débarrassez-vous du verrouillage des majuscules, vous n'en avez pas besoin. Si vous avez besoin de taper toutes les majuscules pendant plus de 60 secondes, supprimez un fardeau dans votre touche Maj.
sidyll
1
Je dis précisément que je ne veux pas faire cela, donc inutile de suggérer que je devrais m'en débarrasser.
2
Je trouve la touche CapsLock si facile à frapper que je l'ai remappée à Escape. Travaille pour moi. :)
dash-tom-bang
1
En plus de convertir mon verrouillage des majuscules en Escape, c'est aussi un contrôle. Oui, c'est à la fois une évasion et un contrôle à la fois ! Sous Linux, vous pouvez le faire via xmodmap -e "add Control = Escape". Espérons que vous apprécierez. :-)
evaryont
CapSee fait le travail sur OS X. Pas la réponse que vous cherchiez, mais c'est la bonne réponse pour la plupart des utilisateurs d'Apple.
earlio

Réponses:

4

Vous pouvez utiliser un script comme celui-ci:

; 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 

Tiré d' ici . Maintenant, Vim affichera VERR MAJ lorsque chaque verrou sera activé

Mise à jour: Et c'est un script pour AHK (langage de script de raccourci clavier automatique). Selon cette conversation, il est impossible de créer un comportement que vous décrivez en utilisant uniquement vim.


la source
2
quelle langue est-ce? Je préférerais avoir VimScript / VimL pour que Vim s'occupe de cela (mise à jour de ma question)
1
C'est pour AHK (Automation hotkey scripting), donc pas besoin pour vous. J'ai essayé de chercher sur Google et je
2
L'idée est bonne mais comment puis-je mettre cela dans mon .vimrc, par exemple? Comment l'utiliser avec vim? = |
Eduardo Lucio