Vim - Czy Capslock jest włączony?

11

Kiedy pracuję z Vimem, prawie nigdy nie patrzę na klawiaturę (tak jak powinna być!) I jest to świetne, ale czasami, nieświadomie, wciskam klawisz CapsLock i powoduje, że krzyczę na ekran.

Ponieważ, wiesz, jnie jest taki sam jak Jw trybie normalnym (i tak dalej).

Zamiast tego lub mapowania, CapsLockaby powiedzieć, Ctrlże chcę wyświetlić komunikat o błędzie, który ostrzeże mnie w trybie normalnym, jeśli tak jest.

Czy jest sposób, aby Vim mógł stwierdzić, czy masz CapsLockwłączony?

Uwaga: Wolę rozwiązanie VimScript / VimL ze względu na przenośność i ponieważ chcę, aby Vim mnie powiadomił, a nie zależał od rzeczywistego systemu.

alfredodeza
źródło
3
Pozbądź się Caps Lock, nie potrzebujesz go. Jeśli kiedykolwiek będziesz musiał wpisać wszystkie znaki na dłużej niż 60 sekund, zrzuć ciężar na klawisz Shift.
sidyll
1
Mówię konkretnie, że nie chcę tego robić, więc nie ma sensu sugerować, że powinienem się go pozbyć.
2
Uważam, że klawisz CapsLock jest tak łatwy do uderzenia, że ​​przypisałem go do Escape. Pracuje dla mnie. :)
dash-tom-bang
1
Oprócz konwersji mojego Caps Locka na Escape, jest to także Control. Tak, to jest zarówno ucieczką i kontrola w tym samym czasie ! W Linuksie możesz to zrobić za pośrednictwem xmodmap -e "add Control = Escape". Mam nadzieję, że ci się podoba. :-)
evaryont
CapSee wykonuje tę pracę w systemie OS X. Nie jest to odpowiedź, której szukasz, ale okazuje się, że jest to poprawna odpowiedź dla większości użytkowników Apple.
earlio

Odpowiedzi:

4

Możesz użyć takiego skryptu:

; 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 

Zaczerpnięte stąd . Teraz Vim wyświetli komunikat CAPS LOCK ON, ilekroć włączona jest funkcja Caps Lock

Aktualizacja: I to jest skrypt dla AHK (język skryptowy automatycznego skrótu). Zgodnie z tą rozmową niemożliwe jest stworzenie zachowania opisywanego za pomocą samego vima.


źródło
2
co to za język? Wolę mieć VimScript / VimL, ​​aby Vim się tym zajął (aktualizując moje pytanie)
1
Dotyczy to AHK (Automatyzacja skryptów skrótów), więc nie ma dla ciebie sensu. Próbowałem wyglądać z Google i nie mogłem znaleźć nic konkretnego dla twojego problemu: /
2
Pomysł jest dobry, ale jak mogę to na przykład umieścić w moim .vimrc? Jak korzystać z tego w vimie? = |
Eduardo Lucio,