Vim-打开Capslock吗?


11

当我使用Vim时,我几乎从不看键盘(就像应该这样!),这很棒,但是有时候,在不知不觉中,我按下了CapsLock键并引起我在屏幕上大喊大叫。

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

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

Vim有没有办法告诉您是否已CapsLock启用?

注意:我希望使用VimScript / VimL解决方案来实现可移植性,因为我希望Vim通知我,而不依赖于实际的系统。


3
摆脱大写锁定,您不需要它。如果您需要输入所有大写字母超过60秒,则可以减轻Shift键的负担。
sidyll

1
我的意思是说我不想这样做,所以没有理由建议我摆脱它。

2
我发现CapsLock键非常容易打,以至于将其重新映射为Escape。为我工作。:)
dash-tom-bang

1
除了将大写锁定转换为Escape之外,它还是一个控件。是的,这既是一种逃避和控制在同一时间!在Linux中,您可以通过进行操作xmodmap -e "add Control = Escape"。希望你喜欢。:-)
evaryont 2011年

CapSee可以在OS X上完成工作。这不是您要找的答案,但它恰好是大多数Apple用户的正确答案。
earlio 2014年

Answers:


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 

这里拍摄。现在,无论何时打开大写锁定,Vim都会显示CAPS LOCK ON

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


2
那是什么语言?我希望使用VimScript / VimL来解决这个问题(更新我的问题)

1
那是用于AHK(自动化热键脚本)的,所以对您没有用。试图从谷歌看,找不到任何特定于您问题的vim:/

2
这个主意很好,但是如何将其放入我的.vimrc中呢?我该如何在vim中使用它?= |
爱德华多·卢西奥
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.