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.


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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.