macOS Sierra 怎么把分号冒号互换

2017-01-16 13:47:06 +08:00
 jiyinyiyong
上个月升级 MacOS Sierra 之后, 原来用的 Karabiner 就不能用了, 给作者捐钱了然而还是没有做支持. 原来的键位映射都失效了, 就 Caps Lock 还能用是系统映射一下. 现在最难受的还是冒号的事情, 感觉写代码的速度都有点被拖慢了, 经常打错要反应过来. 求助求助, 有没有人想到办法可以直接映射啊?

那个 Karabiner, 作者直接重写了, 结果到现在很多功能还没做支持, 好忧伤.
https://github.com/tekezo/Karabiner-Elements/commits/master
2621 次点击
所在节点    程序员
9 条回复
fds
2017-01-16 14:02:53 +08:00
我觉得用 hammerspoon 应该可以,思路是: hs.hotkey.bind 注册分号和冒号为热键,在接到按下分号或冒号时 :disable() 关闭热键,然后 hs.eventtap.keyStroke 发送冒号或分号,抬起按键后重新 :enable() 热键。
xx0219
2017-01-16 14:20:13 +08:00
好像.... 用 keyboard maestro 很简单的啊..... 输入: 输出; 输入; 输出: ....

![]( http://oduizitoj.bkt.clouddn.com/2017-01-16-Screen%20Shot%202017-01-16%20at%2014.19.44.png)
JamesPan
2017-01-16 14:20:59 +08:00
楼主能分享一下什么场景下分号冒号互换能提高编程效率吗?
mind3x
2017-01-16 14:46:52 +08:00
@JamesPan 大概是比如 Scala, golang 这些 statement 不需要分号,而显式类型声明(Scala)或赋值声明(Go)又要用到分号的
jiyinyiyong
2017-01-16 14:54:46 +08:00
@JamesPan 习惯吧, 我在 JavaScript, CoffeeScript, Clojure 当中都会用到大量的分好, 用了一年多已经形成肌肉记忆了. 也就 JavaScript 里分号贼多.
jiyinyiyong
2017-01-16 14:57:03 +08:00
@fds
@xx0219 我试试, 还得确认一下 Sierra 的支持. 本来 Karabiner 也是蛮简单的, 不支持升级后的 OS.
hronro
2017-01-16 15:02:21 +08:00
@jiyinyiyong standard js 不写分号😂
QAPTEAWH
2017-01-16 15:18:13 +08:00
http://xahlee.info/kbd/osx_keybinding.html

摘抄关键部分&修改:

Create a file at ~/Library/KeyBindings/DefaultKeyBinding.dict, and put the following content.

{
";" = ("insertText:", "\U003A");
":" = ("insertText:", "\U003B");
}

重新登录 / 重新打开程序。
jiyinyiyong
2017-01-17 00:26:10 +08:00
@QAPTEAWH 真是无比简单粗暴的解决方案. 顺便问下为啥我配置 "\\" 的时候会出错了, 试了一会才搞定, 转义有点奇特.

```
=>> cat DefaultKeyBinding.dict
{
";" = ("insertText:", "\U003A");
":" = ("insertText:", "\U003B");
"\\\\" = ("insertText:", "\U007C");
"|" = ("insertText:", "\U005C");
}
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334894

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX