Answers:
我已将capslock重新映射为ctrl,并且很少再使用capslock。但是,如果需要,对于vim,您可以将tpope / vim-capslock用作软件的临时大写锁定。如果使用此选项,则为事件设置autocmd InsertLeave
并禁用capslock 应该相当容易。
我找到了一种在正常模式下自动关闭大写锁定的方法(尽管仅在Linux中有效)。
用插件制作的解决方案没有考虑到您可以通过一种以上的方式(从插入到普通)进入普通模式,例如从命令模式进入普通模式。
实际上,没有自动命令事件会在进入普通模式时激活,因此我使用的事件是CursorHold
event,该事件在您未以普通模式键入时会激活。
au CursorHold * call TurnOffCaps()
set updatetime=10
您将更新时间设置为一个很小的数字,因此它将始终处于激活状态,直到您有机会键入任何内容。
function TurnOffCaps()
let capsState = matchstr(system('xset -q'), '00: Caps Lock:\s\+\zs\(on\|off\)\ze')
if capsState == 'on'
silent! execute ':!xdotool key Caps_Lock'
endif
endfunction
另一种选择是将您重新映射CapsLock到Esc。这是我已经使用了两年的映射:CapsLock位于主行上,因此如果您触摸输入,它真的很容易使用。它还可以促进Vim的正确使用,因为退出插入模式要容易得多(键比靠近Esc)。
重新映射很容易:Linux原生支持此功能,Mac OS X和Windows有一些小型应用程序可以完成此操作。某些昂贵的键盘甚至具有允许重新映射键的功能。