突来灵感, 设计两个 PHP 常用的快捷键.
PHP 的箭头符号访问方法或属性, 这个设计非常不好, 这个符号需要按两个组合键,并且距离都很远. 受够了这样的设计, 于是我把它通过 Karabiner 设计为快速敲两下减号 - 实现 ->, 完成后觉得非常 OK. 但是用了两天之后发现不够完美, 因为经常使用命令行, 很多参数是 --p 这样的形式, 敲快了就会误触发为 ->, 而刻意敲慢也终究不够随意.
于是我的天才想法诞生了。
换一个思路,敲 - = 为 -> ,这样多快多慢都无影响了,原本的 - - 也不受影响了。 另外顺带的,设置 = - 为 => ,对应 PHP 的数组箭头,PHP 这两个最常用的符号设计成最难敲的符号,真不知道怎么想的。
1
jianchang512 2023-10-20 01:34:16 +08:00 1
java8 以上支持的箭头函数也是用 “->”
js es6 支持的箭头函数是“=>” go 中 chan 通道使用反向箭头 “<-” 哪个语言都逃避不了 |
2
ricebna OP @jianchang512
go 的 <- 让我马上想到了可以把 - 0 设为 <-, 哈哈, 正好也是反向, 非常的哇塞🤣 |
3
qa2080639 2023-10-20 08:50:19 +08:00
还有$ 我是用右下角的 ctrl 和菜单模拟 反正几乎用不到这块区域
|
4
PRStarDust 2023-10-20 09:00:13 +08:00
这个想法不错,我也试试
|
5
Lirika 2023-10-20 09:17:50 +08:00
用什么修改的?
|
6
ZackKing 2023-10-20 10:45:11 +08:00
我还以为一键 CV
|
7
shellus 2023-10-20 11:01:28 +08:00
我觉得你需要 github copliot ,这样就不用敲很多代码了,也不用敲很多符号了
|
8
ricebna OP @Lirika mac 下 Karabiner 神器, Windows 我不太清楚. 可以看这个下面我的回复 https://www.v2ex.com/t/981735#reply22
|
9
ricebna OP @qa2080639 我是直接 空格+4, 空格加上面一排代替 shift, 非常好用.
箭头这个, 一觉醒来发现, idea 的最新版, 已经自动实现在对象之后敲 - 变成 -> 了, 数组也是 = 变成 => . 🤣 |
10
qeqv 2023-10-20 14:49:01 +08:00
。。。规则怎么写的,我看了半天文档就是实现不出来
|
11
qeqv 2023-10-20 14:58:08 +08:00
啊,没事了,原来要把组合按键延迟调高一点
basic.simultaneous_threshold_milliseconds = 100ms |
12
ricebna OP @qeqv
simultaneous_threshold_milliseconds 我试了下, 貌似无法定义很长的时间?, 我用 to_delayed_action_delay_milliseconds 直接定义为 5s 超长, 因为这是两个不同的键, 延迟尽量长一点不影响, 这样也没有紧迫感. { "title": "Magic -= to ->, =- to => in 5 seconds", "rules": [ { "description": "Magic -= to ->, =- to => in 5 seconds", "manipulators": [ { "type": "basic", "from": { "key_code": "equal_sign", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "period", "modifiers": ["shift"] } ], "conditions": [ { "type": "variable_if", "name": "equal_sign to be arrow", "value": 1 } ] }, { "type": "basic", "from": { "key_code": "hyphen", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "period", "modifiers": ["shift"] } ], "conditions": [ { "type": "variable_if", "name": "hyphen to be arrow", "value": 1 } ] }, { "type": "basic", "parameters": { "basic.to_delayed_action_delay_milliseconds": 5000 }, "from": { "key_code": "hyphen" }, "to": [ { "set_variable": { "name": "equal_sign to be arrow", "value": 1 } }, { "key_code": "hyphen" } ], "to_delayed_action": { "to_if_invoked": [ { "set_variable": { "name": "equal_sign to be arrow", "value": 0 } } ], "to_if_canceled": [ { "set_variable": { "name": "equal_sign to be arrow", "value": 0 } } ] } }, { "type": "basic", "parameters": { "basic.to_delayed_action_delay_milliseconds": 5000 }, "from": { "key_code": "equal_sign" }, "to": [ { "set_variable": { "name": "hyphen to be arrow", "value": 1 } }, { "key_code": "equal_sign" } ], "to_delayed_action": { "to_if_invoked": [ { "set_variable": { "name": "hyphen to be arrow", "value": 0 } } ], "to_if_canceled": [ { "set_variable": { "name": "hyphen to be arrow", "value": 0 } } ] } } ] } ] } |
13
qeqv 2023-10-21 00:46:29 +08:00
我的实现和你不太一样,用的是 simultaneous ,所以需要 basic.simultaneous_threshold_milliseconds 这个值调高一点
------------------------------------- {"title": "=- to => | -= to ->","rules": [{"description": "=- to => | -= to ->","manipulators": [ {"type": "basic", "from": { "simultaneous": [{"key_code": "equal_sign"}, {"key_code": "hyphen"}], "simultaneous_options": {"key_down_order": "strict", "key_up_order": "strict"} }, "to": [ {"key_code": "equal_sign"}, {"key_code": "period", "modifiers": ["left_shift"]} ]}, {"type": "basic", "from": { "simultaneous": [{"key_code": "hyphen"}, {"key_code": "equal_sign"}], "simultaneous_options": {"key_down_order": "strict", "key_up_order": "strict"} }, "to": [ {"key_code": "hyphen"}, {"key_code": "period", "modifiers": ["left_shift"]} ]} ]}]} |
14
ricebna OP @qeqv
你的写法我也不太清楚是否对, 能实现就 OK. 还有就是时间尽量设长一点 5s 10s 最好, 这样输入就没有紧迫感. 另外我用 Karabiner 改的键全部是键与键或组合的映射, 但其实我更想一个键能输入两个键的内容, 比如键入 a, 输入 ab. 这块还没有研究过, 不知道你有没有研究过. Karabiner 的语法并不好写, 所以测试很难. |
15
way2create 2023-10-21 22:58:23 +08:00
我现在输入->是通过
1- 2ALT+- 输入=>是 1= 2ALT+= |
16
qeqv 2023-10-22 20:14:44 +08:00
@ricebna 按 a 输入 ab 很简单,反正满足 from 里面的按键需求就会输入 to 里面的内容了
{"type": "basic", "from": { "key_code": "a" }, "to": [ { "key_code": "a" }, { "key_code": "b"} ] } |
17
lyxxxh2 2023-10-23 17:05:47 +08:00
=- 和 -> 区别就是少按了下键盘
->可以起码带点"指向"的意思, =- ? 看着懵逼 只能强行适应。 为少按一下而反人类,不合适。 js: [] .filter(v => v.type === 2) .map(v => v.id) php: collection([]) // (laravel collection) ->filter(fn($v) => $v->type === 2) ->map(fn($v) => $v->id); 不仅仅是.,全都比不过 js 简洁。 我最喜欢. 用的次数太多了。 如果$能取消最好,哈哈 想想而已。 |
18
ricebna OP @lyxxxh2 "=-" 映射的是 "=>", "-=" 才是 "->". 仅仅是为了将最常用的这两组符号挨在一起, 因为尖括号 ">" 在键盘区下面, 需要挪动手掌不方便.
"=-" 映射为 "=>" 也仅仅是因为他们紧紧挨着, 如果右侧还有一个按钮,用来代替 ">" 那就会显得更自然, 但右侧是 delete 了, 没键了 😄. |
20
luoyou1014 2023-11-04 21:18:30 +08:00
如果用的是 vscode 的话,可以装下我开发的插件「令」
https://marketplace.visualstudio.com/items?itemName=luo-rori.ling -> 快捷命令:alt+. => 快捷命令:alt+shift+. 跳转行尾增加分号命令:alt+; 还有很多其他命令: alt+;跳转到行尾加;号 alt+ctrl+;跳转到行尾加;号,但光标位于分号前 alt+,跳转至行尾或分号前,添加,号 alt+ctrl+,跳转至行尾或分号前,添加,号,但光标位于逗号前 alt+shift+;跳转至行尾或分号前,添加:号 alt+shift+/跳转至行尾或分号前,添加?号 alt+=跳转至行尾或分号前,添加=号 alt+.跳转至行尾或分号前,typescript,javascript,vue,python 添加.号,php 添加->号 alt+shift+.跳转至行尾或分号前,添加=>号 alt+[跳转至行尾或分号前,添加加[] alt+shift+{跳转至行尾或分号前,添加{} alt+shift+9 跳转至行尾或分号前,添加() alt+shift+0 跳转至行尾或分号前,补充),若当前行没有(,则不做任何操作 alt+q alt+e 将当前编辑文件显示在资源管理器中 |
21
loginv2 2023-11-09 12:06:23 +08:00
以前专门做过一个 ahk 脚本 按三次 4 直接输入$,一般情况下没人会按三次。多次也是按住 不是点击
``` $4:: if pressesCount > 0 ; > 0 说明 SetTimer 已经启动了,按键次数递增 { pressesCount += 1 return } ;否则,这是新一系列按键的首次按键。将计数设重置为 1 ,并启动定时器: pressesCount = 1 SetTimer, WaitKey, 400 ;在 400 毫秒内等待更多的按键。 return WaitKey: SetTimer, WaitKey, off if pressesCount = 1 ;该键已按过一次。 { Gosub singleClick } else if pressesCount = 2 ;该键已按过两次。 { Gosub doubleClick } else if pressesCount = 3 { Gosub trebleClick } ;不论上面哪个动作被触发,将计数复位以备下一系列的按键: pressesCount = 0 return singleClick: send 4 return doubleClick: send 44 return trebleClick: send $ return ``` |