Vim で作業しているとき、キーボードを見ることはほとんどありません (そうあるべきですが)。これは素晴らしいことですが、時々、知らないうちに CapsLock キーを押してしまい、画面に向かって叫んでしまうことがあります。
ご存知のとおり、通常モードj
と同じではないからですJ
(など)。
したがって、代わりにマッピングして、CapsLock
このCtrl
ような場合に通常モードで警告するエラー メッセージを表示したいとします。
有効になっているかどうかを Vim が確認する方法はありますかCapsLock
?
注: 移植性のため、また、実際のシステムに依存しないで Vim に通知してもらいたいため、私は VimScript/VimL ソリューションを好みます。
答え1
次のようなスクリプトを使用できます:
; 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
出典こここれで、VimはCaps LockがオンのときはいつでもCAPS LOCK ONと表示します。
更新:これはAHK(自動ホットキースクリプト言語)のスクリプトです。この会話vim だけを使用して、記述している動作を作成することは不可能です。