web-dev-qa-db-ja.com

Vim-Capslockはオンになっていますか?

Vimを使用しているときは、キーボードを見ることはほとんどありません(そうあるべきです!)。これはすばらしいことですが、知らないうちにCapsLockキーを押して、画面に怒鳴りつけることがあります。

ご存知のとおり、jは通常モード(など)のJと同じではありません。

したがって、代わりに、またはCapsLockCtrlにマッピングすると、通常モードで警告するエラーメッセージが表示されます。

CapsLockが有効になっているかどうかをVimが判断する方法はありますか?

注:移植性のためにVimScript/VimLソリューションを好みます。これは、Vimに通知してもらい、実際のシステムに依存しないようにするためです。

11
alfredodeza

次のようなスクリプトを使用できます。

; 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 

ここ から取得。これで、Caps Lockがオンになると、VimはCAPS LOCKONを表示します。

更新:これはAHK(自動ホットキースクリプト言語)のスクリプトです。 この会話 によると、vimだけを使用して記述している動作を作成することは不可能です。

4
OsQu