比如 按下 d 的时候实现 jikl 分别映射为上下左右.
https://karabiner-elements.pqrs.org/docs/manual/configuration/configure-complex-modifications/
看这个官方文档 好像是可以实现. 如果是的话,那这很强大啊.


windows 中 powerToys 中也能配置按键映射, 但是 只能 快捷键必须以修改键(ctrl win alt )开头.

windows 中有什么解决方案吗?
举报· 2179 次点击
登录 注册 站外分享
20 条回复  
juggtt213 小成 2025-4-5 15:07:53
我之前也想过类似的,不过是 capslock 做修饰键,karabiner 这样弄修饰键其实会有个问题,就是连续输入的时候要等待一定的延迟,你如果是想用 vim 风格的按键,那应该会连按 dd 吧,这样其实有点影响 mac 貌似自带全局 emacs 那种快捷键,如果只是上下的话,比如自动补全切换选中,直接 ctrl + n/p 就够用了
asnldm 小成 2025-4-5 12:09:49
可能有用 https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/from/simultaneous/
xboxv 楼主 小成 2025-4-5 11:13:30
@zq11211277 这个工具很 nice, 感觉就像开了天眼一样. 基本上解决了问题,大有研究
gpt5 小成 2025-4-5 10:48:59
karabiner 有两种实现方法, 1 是把 d 映射为:单独按是时 d ;与其它键组合时是一个修饰键(比如右 opt)。然后再映射那个修饰键+hjkl 为方向键 2 是直接把 d+h 映射为左,d+j 直接映射为下,以此类推。 两种方法都不会影响单独按。 但有一定几率误触发,我就有很多字母+字母的快捷键组合,用了后才知道,其实我们打字的时候经常会有两个键一起按的情况,需要结合自己的习惯调节组合键位和判定时间。
jheroy 小成 2025-4-5 10:34:06
@Moosems @xell 可以实现;单独使用,并且不影响连发。karabiner 配置;+j 的快捷键是需要; down - j down - j up - ; up 这样的顺序才触发快捷键, 单独; down 然后马上就; up 了的话那么就直接输入了;, 如果一直; down 超过配置的延迟时间那么触发;的连续输入。 其实配置 karabiner 可以用一个工具 GokuRakuJoudo 这个要直观很多,karabiner 的配置比较冗长
zq11211277 初学 2025-4-5 10:22:54
windows 解决方案 https://github.com/xianyukang/MyKeymap
jheroy 小成 2025-4-5 10:21:39
我用 karabiner 就是为了这个功能, 其它平台可以使用 kmonad ,这个是跨平台的,我在 Linux 可以实现 karabiner 一样的功能,Windows 应该也可以
xell 小成 2025-4-5 09:25:26
分号 ; 当然可以单独使用,只是有个副作用,就是不能连发了(按着不动然后输出很多个分号),因为从原理上,按着不动的时候,触发的是作为修饰键的功能。不过你现在寻求的是 Windows 下面的解决方案,肯定是完全不同的机制。AutoHotkey 也很强大,我倒有点很吃惊它做不到——15 年前我用它来配合 Total Commander 实现 vim keybinding 的时候就领教过。或许你可以再跟 AI 探讨一下可能性。
Moosems 初学 2025-4-5 09:07:24
@zmxnv123 #11 这个方案不行. 回头你可以试下, 有兴趣我们可以探讨下.
12下一页
返回顶部