我想大部分人的电脑都是一个英文输入法,一个中文输入法,且中文输入法带 shift 键快捷切换英文功能
先想想为什么要有 shift 键快捷切换英文功能,原因不外是两输入法之间切换比较麻烦, Win 下快捷键一般 Ctrl+Space , Mac 下快捷键一般是 Cmd+Space ,按 shift 比按两个键快啊
这样的话你的输入法有三态:英英,中中,中英——偶尔你会觉得很混乱:明明是中英你觉得是英英,想切换输入法再打中文结果输入还是英文,再一看输入法状态才恍然大悟。
要避免这种混乱,最好是把你的输入法变成两态:英英,中中,并且设置方便的输入法切换快捷键。试想,如果把切换输入法的快捷键变成如按 shift 键一样方便,你还会在中文输入法用 shift 快捷切换英文吗?
我觉得这个方便的快捷键应该是 Caps Lock 键,因为这个键不常用,并且如同按 Shift 键一样方便。至于需要大写的时候,可以用 Shift 嘛,或者映射另一个组合键作为大写键。
最开始可能习惯不了,慢慢适应就好了,到后来会觉得很方便的。
Mac 下把 Caps Lock 键映射成输入法切换键可以参考这个教程:Mac :使用大写锁定键切换输入法 · BlahGeek's Blog
我不用 Win 电脑, Win 用户觉得有需要就自行搜索一下吧
1
mcfog 2015-11-05 13:12:36 +08:00
从来不用什么 shift 切状态,不如说用的 osx 自带输入法也没这个功能
打中文的时候偶尔要打英文直接 enter 上屏就好了嘛 写代码的时候乖乖写英文 |
2
dozer47528 2015-11-05 13:13:51 +08:00 1
osx 内置输入法按大小写切换就直接切换成英文输入好不好,非常方便
|
3
ngn999 2015-11-05 13:17:21 +08:00
用双拼的人,在中文状态下,想打英文不能 enter 上屏。。。
|
4
vmebeh 2015-11-05 13:23:22 +08:00 3
我觉得输入法应该只有开和关,输入英文的时候不需要输入法,它就应该被关掉。
不喜欢用中文输入法输英文。 |
5
leondotli 2015-11-05 13:27:07 +08:00
我切换过只有英英,中中的用法,遇到的问题是系统级的切换输入法有时候会有延迟,输入法内部切换中英的没有明显延迟,这个问题特别是在快速输入的时候容易碰到。
最后做法的保留原有输入法内部的切换,用一个功能键做输入法间的切换,同时利用 ShowyEdge ,屏幕中使用醒目的色带提示当前的输入法状态。 |
6
Sylv 2015-11-05 13:30:48 +08:00 via iPhone
我是用 Karabiner 实现中英输入法用 shift 来切换两态, capslock 已经改成 ctrl + esc 了。
|
8
Delbert 2015-11-05 14:10:40 +08:00 via Android
我 Mac 用的是中日(片)日(平)英四种输入法
Windows 是中日两种输入法( Windows 下英语不是输入法)。 况且 Mac 本身就是用 cl 键切换中英文输入的。 win 下日语输入法是 Alt 和 shift 键…… 输入法切换是很烦,但是楼主说的本身就是错的…… |
9
pheyer OP @leondotli 我之前遇到过一个 Mac 下的输入法内切换的问题:在同一个 app 内 A 文档目前中英状态,切换到 B 文档变成中中状态,再返回 A 文档仍然中中状态——就因为这个问题,我抛弃了内切换
|
10
pheyer OP @dozer47528 为什么我觉得不是呢?
我用五笔,所以一直是用第三方的输入法,会因为你是用 Mac 自带的输入法嘛 |
12
shinwood 2015-11-05 14:27:02 +08:00
习惯了 Cmd + Space 和 Ctrl + Space 了,平时必须关掉中文输入法,只有在需要的时候才切换。除去不习惯通过输入法来输入英文这个以外,也很讨厌满屏都是输入法的悬浮窗。
我已经切换回了 win7 了, win10 不光有输入法切换的问题,打字打快了直接变成英文这种事情我也遇到了不止一回两回了。 |
13
Sylv 2015-11-05 14:29:00 +08:00
@pheyer 不会, Karabiner 可以设置短按 shift 为切换输入法,长按 shift 或 shift + 其它键同按时仍旧还是 shift 效果,同理我的 Caps Lock 短按是 esc ,长按为 ctrl 。
|
14
old9 2015-11-05 14:37:19 +08:00
楼主这样的方案其实还有一个问题,不知道当前状态是中还是英。
我觉得更好的方案是“切换至”而不是“切换”,给中文和英文分别设置一个快捷键。 个人是 Alt+1 和 Alt+0 。 |
16
missqso 2015-11-05 14:50:18 +08:00
我就想知道 win10 如何删除自带的输入法!
|
17
Sylv 2015-11-05 14:51:54 +08:00
@old9 是可以知道当前状态的,看菜单栏不同输入法的图标就知道现在是中文还是英文了,反而是用中文输入法来输中英文时不能通过菜单栏图标来区分输入状态,另外如果你看了楼主分享的那个帖,里面还实现了用 caps lock 的灯来区分中英输入法状态。
不过我也有分别给中英文设置快捷键,我是单击左 command 键切换到英文输入法,单击右 command 键切换到中文输入法,这样设置后就可以无脑一键切换到想要的输入法而无需判断当前的输入法是什么。 |
18
pheyer OP @old9 看状态的话可以看右上角,另外你要是看了我附的帖子的话,还可以看键盘指示灯,灯亮时为中文,灯亮时为英文。不过我觉得如果把输入法状态显示在屏幕顶部正中应该更容易看到,毕竟不用歪头且很容易被看到。
你说的快捷键要按两个键,我觉得麻烦了,另外 Alt+0 似乎也不是那么容易按。 |
20
old9 2015-11-05 15:09:26 +08:00
|
21
old9 2015-11-05 15:12:25 +08:00
用 Shift 切换的问题是,不管程序多么智能,总是会有误判。
比如你输入一些 CamelCase 的变量时,本想打大写结果 shift 按下后发现其实应该输写,这时候松开 shift 输入法已经成中文了,这得多恼火。 |
24
old9 2015-11-05 15:16:01 +08:00
Shift 切换还有一个问题, PS 等鼠标操作的软件里面,误判就更为严重。
|
25
Sylv 2015-11-05 15:22:19 +08:00 via iPhone
@old9 Karabiner 还是可以避免这个问题的,只有短按才会切换输入法,按下 shift 后发现不需要大写再松手的情况,这过程的时长 karabiner 会判断为长按而不会去切换输入法。
|
27
gqfBzoLVY3Wl4Tng 2015-11-05 15:58:23 +08:00
er 一直用 shift 可能我不用码字
|
28
xiaket 2015-11-05 16:08:02 +08:00 2
之前就用 karabiner 搞过这套东西, 写过一篇简单的说明在这儿: http://blog.xiaket.org/2015/karabiner.html
当时就很纠结, 希望能让指示灯来指示输入法状态, 不过当时没搞定. 今天看的链接里的 maclight, 搞了半天, 又找来 keyboard_leds.c 编译测试了半天, 仍然没法让大写锁定的指示灯亮起来. 找到最后看到 maclight 的作者在 Issue 里面说的: "Maclight still works on latest OSX, but only for external keyboards, not for laptops. It has always been that way, I should clarify that in the README. As far as I know OSX unfortunately doesn't expose an API to toggle the LEDs on laptop keyboards." 于是放弃了... 希望这段经历能够避免后人在这上面花费太多时间. 另外, 要显示输入状态, 这个软件可以使用: https://pqrs.org/osx/ShowyEdge/index.html.en |
29
zi 2015-11-05 16:55:52 +08:00
反正 win10 自带输入法在中文状态下 shift 切换到英文之后按两次 ctrl+space 无法切换回中文状态是我不能接受的设定。。
|
30
lyz1990 2015-11-05 16:56:58 +08:00
代码的时候写变量名经要打大写字母进来,所以 shift 切换显然是不科学的
|
31
lyz1990 2015-11-05 16:57:58 +08:00
再说输入法这玩意不怎么需要切换吧,干活的时候基本上都是英文
|
32
leavic 2015-11-05 17:11:19 +08:00
其实我只想全面禁用全角,但在我写 latex 的时候才恢复全角功能。
|
35
ahcat 2015-11-05 19:19:41 +08:00 via iPhone
用了 10 几年 Ctrl 加空格切换,直到 win8 出来后强制改成 win 加空格切换,无论怎样都无法改变自己的使用习惯,这就是我连正版 win8 都不用的最大原因。
|
36
Suclogger 2015-11-05 22:00:37 +08:00
@Sylv 看到你在 http://v2ex.com/t/205046 中的脚本,
|
38
Monad 2015-11-05 22:59:08 +08:00
更烦的其实是中文输入法在 vim 下敲命令 那酸爽!
Windows 貌似也没有 fcitx.vim 吧 |
39
21grams 2015-11-05 23:28:38 +08:00
win10 最烂的一点就是把 ctrl+空格给废了
|
40
Sylv 2015-11-06 04:08:17 +08:00 via iPhone 1
@Suclogger 先用 karabiner 映射 shift 键为 F18 键,然后在系统设置中更改默认输入法的快捷键时会让你按想要的快捷键,这时按 shift 键就会被识别成 F18 键了。
|
41
xiaohuanSu 2015-11-06 08:09:31 +08:00
最烦人的明明是写程序的时候不小心用了一个全角的标点符号,然后没有立即发现……
|
43
stanhou 2015-11-14 01:05:25 +08:00
不错的想法,我试试看看能不能适应哈哈
|
44
rongbin 2015-11-22 22:05:47 +08:00
|
45
sinker 2015-12-04 00:40:29 +08:00
被 mac 下输入法切换的问题困扰许久,最近总算自己实现了一个还算满意的方案,:
最终效果: 无视当前输入法直接切换到指定输入法. 输入法共有 3 个: 系统英文,百度输入法,系统日文(kotoeri) 效果: alt + a -> 英文; alt + s -> 中文; alt + d -> 日文; shift 和原来一样: 切换中文下的中英, 结合字母输入大写. 用百度输入法好处有几点,最主要的一点是在 atom 的 vim 插件下 vim 的命令可以直接生效(不知道为什么搜狗不行) 具体实现方法和 @Sylv 类似,但因为有 3 个输入法所以实现切换的思路不太一样. 希望能和大家探讨交流用 Karabiner 实现的一些实用方案 https://github.com/15cm/keyboard/blob/master/Karabiner/private.xml |
46
pheyer OP @sinker 通常来说 Alt 或者说是 Option 键与字母键配合是用来输入特殊字符的,你是把这种输入特殊字符的功能给屏蔽了吗?
|
47
sinker 2015-12-04 14:10:06 +08:00
@pheyer 只是把 option+a,s,d 的组合换掉了,其他情况不变。
因为左手大部分好按的组合键都用掉了,只好拿 option 开刀了。而且我个人觉得把 option+字母的功能设为快捷键而非输特殊字符入更符合日常需要,毕竟需输入要特殊字符的情况比较少,替代手段也很多。 |
49
Nirlan 2018-02-05 11:10:22 +08:00
@dozer47528 #2 非常棒。 之前一直用的搜狗输入法,切换到 Mac 内置之后,一键切换中英文,这感觉太棒了.
|