给 Capslock 键加了 KPI, vibe 了一个全局支持 Vim 风格导航的 app
CapsLock 竟然有两个使用上的烦恼,不知道各位是不是也一样:
- Capslock 的位置是个左手小拇指的 C 位,但是功能却很单一,只能调节大小写
- Capslock 其实它是可以作为修饰键的,但是基本上所有键盘映射软件都不支持它作为修饰键来进行映射,比如说我想映射 Capslock + H => Left Arrow ,目前似乎实现不了。
我在 macOS 使用 Karabiner-Elements 把 Capslock 先映射为 Fn 键,然后基于 Fn 键也映射出了一堆我自己用的快捷键 (在这个帖子上 https://v2ex.com/t/768897)
在 Windows 上我没有找到很好用的。我不喜欢用 AutoHotkey ,我之前用过它,然后它会触发一些很奇怪的现象,在我打游戏的时候,会莫名其妙地触发一些现象(大概变现像 Windows 键一直被按着,当我按 WASD 的时候,就直接触发了 Windows 加 WASD 的组合键,巨烦)
然后我就想到 VibeCoding 一个,然后在的过程中,我发现 CapsLock 竟然可以作为”修饰键”来用,这样我不用麻烦去映射 CapsLock 键为其他键的。单按 CapsLock 本身(并抬起),还是起到它原来单按的作用。
另外还有一个好处:既然 Capslock 键没有映射为其他的修饰键,那它就可以和其他修饰键一起用。
比如 Capslock + H -> left, 那可以 Capslock + H + Shift -> 向左选择,同理可以加 alt/contrl
然后很方便就实现了 Vim 里的上下左右
CapsLock+H→ Left ArrowCapsLock+J→ Down ArrowCapsLock+K→ Up ArrowCapsLock+L→ Right Arrow
在此基础上,我又添加了一些我比较常用的一些键。当然,这些并不是 Vim 的标准。
Extended Navigation
CapsLock+W→ Next Word (Ctrl + Right)CapsLock+B→ Previous Word (Ctrl + Left)CapsLock+A→ Home (Start of line)CapsLock+E→ End (End of line)CapsLock+U→ Up 10x (Fast Scroll Up)CapsLock+D→ Down 10x (Fast Scroll Down)
Editing Shortcuts
CapsLock+I→ BackspaceCapsLock+O→ New Line (End + Enter)CapsLock+N→ Docstring Snippet (Inserts""""""and centers cursor)
下面这些部分的映大概率不符合你心意,但我估计你大概率会有自己喜欢的映射方式。 我非常推荐你自己尝试去改成自己想要的样子,来实现完全的自定义,现在有了 VibeCoding 真的是很简单,有长尾收益。
但是这里有一个小提示: 如果你是一个游戏玩家,已经把 Capslock 作为游戏里的功能键,比如我在 CS2 里会把下蹲调成 Capslock 。那一定要在开启游戏之前,把这个服务给暂停掉。否则在按下 CapsLock 键的时候并不能立即触发下蹲。
因为这个项目的原理是: 当你按一下 Capslock 键的时候,它会检测其他键的触发,这个时候如果你继续按 H ,就会触发 left 。 所以在按下 Capslock 键的时候,并不会触发 Capslock 键本身的功能,在抬起 Capslock 键的时候,它会触发 Capslock 本身的功能。
ps: 最近用 tauri 有点上瘾了…
Github: https://github.com/XueshiQiao/GlobalVimLikeNavi/
截图:
