Vim - Capslock 是否打开?

alf*_*eza 12 vim capslock

当我使用 Vim 时,我几乎从不看我的键盘(就像它应该的那样!),这很棒,但有时,我不知不觉地按下了 CapsLock 键,导致我对着屏幕大喊大叫。

因为,您知道,j这与J正常模式(等等)不同。

因此,或者映射CapsLockCtrl我想显示一条错误消息,如果是这种情况,它将在正常模式下警告我。

Vim 有没有办法判断您是否已CapsLock启用?

注意:为了可移植性,我更喜欢 VimScript/VimL 解决方案,因为我希望 Vim 通知我而不依赖于实际系统。

小智 4

您可以使用这样的脚本:

; 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 
Run Code Online (Sandbox Code Playgroud)

取自这里。现在,只要你的大写锁定打开,Vim 就会显示 CAPS LOCK ON

更新:这是 AHK(自动热键脚本语言)的脚本。根据此对话,不可能仅使用 vim 创建您所描述的行为。

  • 这个想法很好,但是我如何将其放入我的 .vimrc 中?我如何在 vim 中使用它? =| (3认同)
  • 那是什么语言?我更喜欢 VimScript/VimL 来让 Vim 处理这个问题(更新我的问题) (2认同)