繁体   English   中英

在Windows中使用CAPS LOCK作为Vim模式切换键

[英]Use CAPS LOCK as Vim mode toggle key in Windows

很多人都询问写过如何将Caps Lock映射到EscControl ,但是我想使用Caps Lock键作为插入模式和普通模式之间的切换,我还没有找到解决方法去做这个。

(然后我想让Shift Caps Lock独自完成Caps Lock通常会做的事情,因为在你需要大写锁定时很少见,就像输入长CONSTANT名字一样。但这真的是一个单独的问题我稍后会说到如果实际上有一种方法可以完成第一部分。所有这些都很可能是不可能的。)

这些天我主要在工作中使用Windows,所以这就是我目前最关心的。 (因为这可能涉及某些仅限Windows的黑客攻击,我会问一个针对OS X的单独问题,我也会使用它。)

您的请求很不寻常,我建议不要偏离默认模式切换那么多,但您可以尝试这样做:

  1. 首先,使用特定于操作系统的方法(如您提到的链接中所述),您需要将Caps Lock键重新映射到另一个(未使用的,例如F12 )键,因为特殊的Caps Lock无法在Vim中重新映射。
  2. 然后,为重新映射的键定义两个Vim映射,以更改模式。

这是一个简单的例子:

:nnoremap <F12> a
:inoremap <F12> <Esc>

然后,您可以使用Caps Lock键(重新映射到F12)在插入和命令模式之间切换。

我不认为你可以用Vim本地做这个,但看起来你可以使用AutoHotKey做到这一点。 我不是Autohotkey的专家,但这就是我一起拍的:

取自此处的示例:

此脚本使用Capslock键为热键提供2个不同的输出。 我不确定你是否需要使用+; 而不是:在第二部分切换到命令模式。

n=0
Capslock::
On := 1
If On=True {
Send i
On := False
} Else {
Send :
On := True
}
Return

上面的脚本未经测试,但在发送i(插入)或:(插入命令模式)之间切换。 不幸的是,这不会跟踪VIM当前的状态。你必须学习我的AHK脚本(如何使用变量,所以在插入时你按下'?','/'等' esc',':'等,它会知道变量用于在AHK中存储VIM模式以及发送实际代码)。

参考文献:

http://www.autohotkey.com/board/topic/68710-autohotkey-toggle-state-function/ http://www.autohotkey.com/docs/commands/SetNumScrollCapsLockState.htm http://www.autohotkey.com /板/主题/ 42379-切换键/

对于你的第二部分,看起来可以通过以下方式完成:

http://www.autohotkey.com/board/topic/51215-completely-disable-capslock/ http://www.autohotkey.com/board/topic/61-use-capslock-as-a-toggle/ http: //www.autohotkey.com/board/topic/68710-autohotkey-toggle-state-function/

不完全确定但你做了VIM的注册表编辑以正确识别Capslock更改:

http://www.autohotkey.com/docs/misc/Remap.htm#

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM