本人在是使用 Mac 开发过程中经常碰到使用输入法的时候不是我想要的输入法。
碰到的问题搜狗输入法没有悬浮窗口,只有看右上角才知道当前是什么输入法,百度输入法有悬浮窗,但是不能记录状态,所以中英文切换很频繁。
每次开发都要用 control+空格键来切换比较麻烦,于是乎,本人使用改建软件实现了使用 shift 来进行中英文切换
Mac 使用 shift 快速切换输入法,程序员的输入法的代码利器
首先要下载一个修改键位的软件Karabiner-Elements
,下载地址:https://pqrs.org/osx/karabiner/
left-shift
改成f17
系统偏好设置
-键盘
-快捷键
-输入法
把选择上一个输入法
改成F17
(也就是按一下键盘左边的 shift 即可)
当然了这样子的方法不是最完美的,就是当你的组合快捷键要用到 shift 的时候,你的左边 shift 是没有用的,因为它的键位一就那个被改成了 F17,所以只能用右边的 shift 来操作。以上只是本人的做法当然如果你有更好的方法可以和我分享一下。我的 IDE 使用到 shift 的组合键并不多,所以这么改基本能满足我的日常开发
本人使用的是百度输入法
,因为百度输入法,会有一个输入法的悬浮窗口,如果是搜狗的话并没有这个,所以不方便查看当前是什么输入法。
详细链接可以参考 Github 地址: https://github.com/itgoyo/Mac-Shift
1
zhaidoudou123 2018-07-25 11:06:51 +08:00
macOS 上我用的自带输入法,现在已经形成习惯了,在 Windows 就 shift 切换中文英文,到 macOS 上就 capslock 切换,已经形成了条件反射了)
|
2
b821025551b 2018-07-25 11:07:42 +08:00
mac 上居然还要安装第三方输入法?
|
3
orclo 2018-07-25 11:15:03 +08:00
装个 ShowyEdge 不就好了 扫一眼就知道了。。。。。。
|
4
wclebb 2018-07-25 11:21:59 +08:00 1
macOS 习惯了用 Shift 来写大写,而 Caps lock 切换中英文输入法,可以说非常方便。
在 Windows 我同样保留了这个输入大写的习惯,确实觉得比 Caps Lock 更方便得多,只需要小拇指一压,输入完毕后就松开即可,还真别说,方便。(因人而异吧……) 甚至我觉得比 Windows 需要快捷键组合切换输入法更好一些( Ctrl+Shift、Ctrl+空格、Shitf+Alt 都可以算是切换输入法……) 当然确实是每个人习惯不同,改变也要时间。 ———— 另外任何输入法挡住屏幕是很烦的,对我而言,每次用鼠标恰好点到输入法上就烦躁无比。 自然反而更觉得只看右上角是什么输入法是最佳的方法。Windows 我也是把它隐藏。 所以:开发过程中经常碰到使用输入法的时候不是我想要的输入法。 或许,试试自带输入法? Caps lock 中英文也是一键切换的。 |
5
itgoyo OP 谢谢个位 v 友的意见,由于本人使用 vim,用 CapsLook 和 esc 对调了,所以 CapsLook 也是我比较常用的按键,也已经是条件反射了`ShowyEdge`这个软件还是不错的,就是开发的时候我是软件全屏,状态栏上有网速还有温度变化一直在跳动所以比较碍眼,所以就没有显示状态栏。
|
6
randyzhao 2018-07-25 11:28:15 +08:00
自带输入法用 Caps lock 切换中英文输入,可以解决大部分麻烦。
不过和完全切换输入法还是不大一样。 英文输入法的时候,长按字母可以输入 ô ç 这样的字符,还算方便。 Caps lock 切换的英文输入则不行。 |
7
KeepPro 2018-07-25 11:29:06 +08:00
OS X 自带输入法 加一
而且最好代码里面都用英文。 |
8
hahastudio 2018-07-25 11:33:29 +08:00
鼠须管了解一下
|
9
Sylv 2018-07-25 11:45:27 +08:00 via iPhone 1
Karabiner 是可以实现这样的改键的:
单按 shift -> 切换输入法 长按 /组合键按 shift -> shift 具体实现楼主可以搜下。 |
10
1002xin 2018-07-25 12:16:00 +08:00
都是改成 command+space 切换输入法,不要太爽,哪需要这么麻烦
|
12
ShuangFan 2018-07-25 13:38:59 +08:00
mac 自带不就很好用么,一键切换啊
|
13
ynyounuo 2018-07-25 13:43:02 +08:00 2
https://pqrs.org/osx/karabiner/complex_modifications/#modifier-keys
官方就有 #9 的这种修改方式。Shift (if alone) → Capslock。 |
14
luob 2018-07-25 13:45:43 +08:00
一直用一个输入法不切换不行吗,在输入法内一般都支持 shift 切换中英文吧,用了第三方之后,自带的也不用管了,反正 mac 会记住上次使用的输入法。
|
15
pheyer 2018-07-25 15:39:31 +08:00
我用的 caps lock 键当输入法切换快捷键
|
16
popbones 2018-07-26 08:31:38 +08:00
你需要这个: https://olkb.com
|
17
zzzhzyzy 2018-07-26 09:12:36 +08:00 via Android
我用系统自带的,因为可以用 touch bar😂😂搜狗用不了 bar
|
18
SandyLee 2018-07-26 14:41:23 +08:00
感觉官方的 caps lock 很方便,以至于我在 windows 上也想这么用
|
19
dibis 2019-02-17 16:00:32 +08:00
用了 sogou 输入法,在 sogou 英文输入的时候多出了个提示框比较麻烦。
于是中英文切换就用 ctrl+shift,当然这也操作没有单独按 shift 方便,正如文中所说确实有点其他的麻烦。 上面有人提到了单按和长按 shift 的解决方案,正在摸索中。 |
20
itgoyo OP @jnuc093 单按长按 shift、可以看这里,已经实现了 https://github.com/itgoyo/Poker-for-Mac/issues/2
|
22
itgoyo OP @jnuc093 我用的是 karabiner,这个是 mac 软件,没有值这个概念,你难道是在 linux 系统下面?因为 karabiner 把所有的键位都给列举出来了
|
23
itgoyo OP @jnuc093
``` "parameters": { "basic.to_if_alone_timeout_milliseconds": 250, "basic.to_if_held_down_threshold_milliseconds": 1 }, "to_if_alone": [ { "key_code": "f17" } ], "to_if_held_down": [ { "key_code": "left_shift" } ] ``` 具体实现式这样子的,当谈了 f17 式我修改映射之后的键位,短按 0.25s 前触发为短 |
26
dibis 2019-02-19 00:06:55 +08:00
|
27
itgoyo OP |
30
yetone 2019-05-01 17:37:25 +08:00
|
31
Erona 2019-07-05 11:20:43 +08:00
也可以考虑尝试一下这个
https://github.com/Eronana/scimex 给原生输入法增加了: - 使用 `Shift` 切换中英文 - 使用 `CapsLock` 切换大写英文 - 中文状态下使用英文标点 |
32
xiparos 2019-11-04 21:38:34 +08:00
我的 mac 上 caps lock 根据 Emacs 的键位已经换成了 left control,所以大写这个功能已经从键盘上消失,所以原声的 caps lock 切换对我来说不管用。
谢谢 po 主给出的解决方案 |
33
xiaoshu1998 2019-11-14 09:41:59 +08:00
@yetone 我用了你的配置,感觉有时候切换会出问题。
我给改成了用自己的键位进行设置,首先要在设置里面更改切换输入法的快捷键,我改成了⌥<space>,然后就是在 `~/.config/karabiner/karabiner.json` 里面进行配置 ``` { "description": "Switch between zh-Hans <-> en (left_shift)", "manipulators": [ { "from": { "key_code": "left_shift", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "left_shift" } ], "to_if_alone": [ { "key_code": "spacebar", "modifiers": [ "left_alt" ] } ], "type": "basic" }, { "from": { "key_code": "left_shift", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "left_shift" } ], "to_if_alone": [ { "key_code": "spacebar", "modifiers": [ "left_alt" ] } ], "type": "basic" } ] } ``` |
34
AthensBird 2021-12-10 21:22:37 +08:00
把左 Shift 用来切输入法,牺牲有点大
|
35
itgoyo OP @AthensBird 最厉害的地方在于,这个左 shift 还保留之前的 shift 的功能,点击瞬间是切换,长按 shfit 是原来 shift 的功能,而且本来这个 shift 就是长按的
|