虽然自己的 vim 水平只能上下移动,但是依然很喜欢手不离开键盘就能实现光标移动。所以就想能够在所有程序中都能实现,但是虽然很多应用程序都有 vim 插件,毕竟不通用。
后来就发现了 touchcursor,在 win 平台能实现 space+相应按键实现。也算是曲线救国了。
后来就一直寻思 mac 平台可不可以,发现 hammerspoon,又对照着 lua 的语法手册写了个简单的实现。今天更新软件时突然想加个空格加 Y 键实现鼠标右键,发现看不懂之前写的了,所以寻思着找个觉得这个思路可用的同学告诉我一下怎么弄。
最后附上 hammerspoon 的 init.lua https://gist.github.com/zzquilt/f39bb858d7d5c954349d3b7edadfbad0
也欢迎大佬指出不足和能改进的地方。
1
caixiexin 2018-07-14 19:20:49 +08:00 via Android
Windows 的话,用 autohot key 就行了
或者买一把 poker2 可编程键盘,就能自编程实现 vim 风格移动光标 |
2
caixiexin 2018-07-14 19:24:28 +08:00 via Android
以前用过的 ahk 脚本,希望对你有帮助:
;使用 space 作为修饰键实现 vim 风格,同时保证 space 能正常使用 space::Send, {space} ;使 win10 语言切换能正常使用 #Space:: Send #{Space} return ;vim 风格按键 space & h::Send {left} space & j:: IfWinNotActive ,ahk_exe ONENOTE.EXE { Send {down} Return } Else { ;解决 onenote 下上下键映射无效的问题 Send ^{down} Return } space & k:: IfWinNotActive ,ahk_exe ONENOTE.EXE { Send {up} Return } Else { Send ^{up} Return } space & l::Send {right} space & i::Send {home} space & ,::Send {end} #!i:: Send !{Insert} return #!h:: Send !{left} return #!l:: Send !{right} return #+h:: Send +{left} return #+l:: Send +{right} return #+j:: Send +{down} return #+k:: Send +{up} return #+i:: Send +{home} return #+,:: Send +{end} return space & f:: Send {Enter} return space & c:: Send +{End} Send {Del} return space & d:: Send {Home} Send +{End} Send {Del} Send {Down} Send {Home} return space & x:: Send {Del} return space & BackSpace:: Send {Del} return space & v:: Send {Home} Send +{End} return space & y:: Send {Home} Send +{End} Send ^{c} return space & p:: Send +{Ins} return ;合并两行 ;space & space:: ; Send {End} ; Send {Del} ;return space & o:: Send {End} Send {Enter} return space & u:: Send ^{z} return space & n:: Send {PgDn} return space & m:: Send {PgUp} return |
3
quilt OP @caixiexin 我已经用 touchcursor 实现了,就是 mac 平台差个 space+y 实现鼠标右键。其实挺讨厌写脚本的,就像 mac 下的 lua,过一段时间,再看和天书似的
|
4
LudwigWS 2018-07-14 23:53:56 +08:00
键盘控制光标,感觉不是很方便啊。理想的方式是能够捕捉到程序的各个能够点击的组件,然后通过组合键模拟点击,以前似乎看到过这方面的软件。
|
5
yanaraika 2018-07-14 23:54:58 +08:00
买个带小红点的键盘吧,这么模拟效率不高
|
6
sqsgalaxys 2018-07-15 00:24:45 +08:00
Mac 全局输入区域的 Emacs 快捷键吧? c+n j c+p k c+f l c+b h c+a home c+e end c+d delete ..
|
7
deepkolos 2018-07-15 10:48:49 +08:00
|
8
quilt OP @deepkolos 我觉得硬件总是不方便,不过也是一个方案
@sqsgalaxys win 平台可就不存在了,现在主要是在 win 平台开发,所以还是想个基本一致的体验 我现在也就差个 mac 平台 space+y 实现鼠标右键,实在是不想去看 lua 的写法了😢 |