V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pheyer
V2EX  ›  分享发现

最近好几个吐槽输入法切换的帖子,说说我的办法

  •  1
     
  •   pheyer · 2015-11-05 12:59:26 +08:00 · 18219 次点击
    这是一个创建于 3094 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想大部分人的电脑都是一个英文输入法,一个中文输入法,且中文输入法带 shift 键快捷切换英文功能

    先想想为什么要有 shift 键快捷切换英文功能,原因不外是两输入法之间切换比较麻烦, Win 下快捷键一般 Ctrl+Space , Mac 下快捷键一般是 Cmd+Space ,按 shift 比按两个键快啊

    这样的话你的输入法有三态:英英,中中,中英——偶尔你会觉得很混乱:明明是中英你觉得是英英,想切换输入法再打中文结果输入还是英文,再一看输入法状态才恍然大悟。

    要避免这种混乱,最好是把你的输入法变成两态:英英,中中,并且设置方便的输入法切换快捷键。试想,如果把切换输入法的快捷键变成如按 shift 键一样方便,你还会在中文输入法用 shift 快捷切换英文吗?

    我觉得这个方便的快捷键应该是 Caps Lock 键,因为这个键不常用,并且如同按 Shift 键一样方便。至于需要大写的时候,可以用 Shift 嘛,或者映射另一个组合键作为大写键。

    最开始可能习惯不了,慢慢适应就好了,到后来会觉得很方便的。

    Mac 下把 Caps Lock 键映射成输入法切换键可以参考这个教程:Mac :使用大写锁定键切换输入法 · BlahGeek's Blog
    我不用 Win 电脑, Win 用户觉得有需要就自行搜索一下吧

    49 条回复    2018-02-05 11:10:22 +08:00
    mcfog
        1
    mcfog  
       2015-11-05 13:12:36 +08:00
    从来不用什么 shift 切状态,不如说用的 osx 自带输入法也没这个功能

    打中文的时候偶尔要打英文直接 enter 上屏就好了嘛

    写代码的时候乖乖写英文
    dozer47528
        2
    dozer47528  
       2015-11-05 13:13:51 +08:00   ❤️ 1
    osx 内置输入法按大小写切换就直接切换成英文输入好不好,非常方便
    ngn999
        3
    ngn999  
       2015-11-05 13:17:21 +08:00
    用双拼的人,在中文状态下,想打英文不能 enter 上屏。。。
    vmebeh
        4
    vmebeh  
       2015-11-05 13:23:22 +08:00   ❤️ 3
    我觉得输入法应该只有开和关,输入英文的时候不需要输入法,它就应该被关掉。

    不喜欢用中文输入法输英文。
    leondotli
        5
    leondotli  
       2015-11-05 13:27:07 +08:00
    我切换过只有英英,中中的用法,遇到的问题是系统级的切换输入法有时候会有延迟,输入法内部切换中英的没有明显延迟,这个问题特别是在快速输入的时候容易碰到。
    最后做法的保留原有输入法内部的切换,用一个功能键做输入法间的切换,同时利用 ShowyEdge ,屏幕中使用醒目的色带提示当前的输入法状态。
    Sylv
        6
    Sylv  
       2015-11-05 13:30:48 +08:00 via iPhone
    我是用 Karabiner 实现中英输入法用 shift 来切换两态, capslock 已经改成 ctrl + esc 了。
    pheyer
        7
    pheyer  
    OP
       2015-11-05 14:05:15 +08:00
    @Sylv 这个你在按 Shift 输入大写字母的时候会不会误切换输入法?
    Delbert
        8
    Delbert  
       2015-11-05 14:10:40 +08:00 via Android
    我 Mac 用的是中日(片)日(平)英四种输入法
    Windows 是中日两种输入法( Windows 下英语不是输入法)。
    况且 Mac 本身就是用 cl 键切换中英文输入的。
    win 下日语输入法是 Alt 和 shift 键……
    输入法切换是很烦,但是楼主说的本身就是错的……
    pheyer
        9
    pheyer  
    OP
       2015-11-05 14:11:57 +08:00
    @leondotli 我之前遇到过一个 Mac 下的输入法内切换的问题:在同一个 app 内 A 文档目前中英状态,切换到 B 文档变成中中状态,再返回 A 文档仍然中中状态——就因为这个问题,我抛弃了内切换
    pheyer
        10
    pheyer  
    OP
       2015-11-05 14:14:42 +08:00
    @dozer47528 为什么我觉得不是呢?
    我用五笔,所以一直是用第三方的输入法,会因为你是用 Mac 自带的输入法嘛
    pheyer
        11
    pheyer  
    OP
       2015-11-05 14:15:44 +08:00
    @Delbert 多于两种的用快捷键直达的比较好
    shinwood
        12
    shinwood  
       2015-11-05 14:27:02 +08:00
    习惯了 Cmd + Space 和 Ctrl + Space 了,平时必须关掉中文输入法,只有在需要的时候才切换。除去不习惯通过输入法来输入英文这个以外,也很讨厌满屏都是输入法的悬浮窗。

    我已经切换回了 win7 了, win10 不光有输入法切换的问题,打字打快了直接变成英文这种事情我也遇到了不止一回两回了。
    Sylv
        13
    Sylv  
       2015-11-05 14:29:00 +08:00
    @pheyer 不会, Karabiner 可以设置短按 shift 为切换输入法,长按 shift 或 shift + 其它键同按时仍旧还是 shift 效果,同理我的 Caps Lock 短按是 esc ,长按为 ctrl 。
    old9
        14
    old9  
       2015-11-05 14:37:19 +08:00
    楼主这样的方案其实还有一个问题,不知道当前状态是中还是英。
    我觉得更好的方案是“切换至”而不是“切换”,给中文和英文分别设置一个快捷键。
    个人是 Alt+1 和 Alt+0 。
    pheyer
        15
    pheyer  
    OP
       2015-11-05 14:47:13 +08:00
    @Sylv 还能这样,那似乎这个更好呢
    missqso
        16
    missqso  
       2015-11-05 14:50:18 +08:00
    我就想知道 win10 如何删除自带的输入法!
    Sylv
        17
    Sylv  
       2015-11-05 14:51:54 +08:00
    @old9 是可以知道当前状态的,看菜单栏不同输入法的图标就知道现在是中文还是英文了,反而是用中文输入法来输中英文时不能通过菜单栏图标来区分输入状态,另外如果你看了楼主分享的那个帖,里面还实现了用 caps lock 的灯来区分中英输入法状态。
    不过我也有分别给中英文设置快捷键,我是单击左 command 键切换到英文输入法,单击右 command 键切换到中文输入法,这样设置后就可以无脑一键切换到想要的输入法而无需判断当前的输入法是什么。
    pheyer
        18
    pheyer  
    OP
       2015-11-05 14:52:06 +08:00
    @old9 看状态的话可以看右上角,另外你要是看了我附的帖子的话,还可以看键盘指示灯,灯亮时为中文,灯亮时为英文。不过我觉得如果把输入法状态显示在屏幕顶部正中应该更容易看到,毕竟不用歪头且很容易被看到。
    你说的快捷键要按两个键,我觉得麻烦了,另外 Alt+0 似乎也不是那么容易按。
    Sylv
        19
    Sylv  
       2015-11-05 14:57:21 +08:00
    old9
        20
    old9  
       2015-11-05 15:09:26 +08:00
    @pheyer 嗯,我意思倒不是说真的“看不到”状态,而是说对当前的状态没有掌控。因为“切换”的前提是,你需要知道当前是什么状态,所以切换之前你需要去什么地方瞄一眼确认状态。这是一个较为不快的停顿。

    我曾经还折腾过鼠标光标,英文的时候是普通状态,中文的时候变成个大大的黑箭头,在屏幕上很抢眼。

    不过最后还是没有“切换至”的方案更有掌控性,因为这样你根本就不需要再关注当前是什么状态了。


    至于快捷键觉得不好按,自己设定一个好按的就成,比如像 @Sylv 那样,反正形成肌肉记忆之后都是下意识的“无脑”操作了。
    old9
        21
    old9  
       2015-11-05 15:12:25 +08:00
    用 Shift 切换的问题是,不管程序多么智能,总是会有误判。

    比如你输入一些 CamelCase 的变量时,本想打大写结果 shift 按下后发现其实应该输写,这时候松开 shift 输入法已经成中文了,这得多恼火。
    mhqschen
        22
    mhqschen  
       2015-11-05 15:13:49 +08:00
    @Sylv 这个好,既方便又不影响本身 shift 的使用。
    old9
        23
    old9  
       2015-11-05 15:13:53 +08:00
    @old9 ……本想打大写结果 shift 按下后发现其实应该输小写,……
    old9
        24
    old9  
       2015-11-05 15:16:01 +08:00
    Shift 切换还有一个问题, PS 等鼠标操作的软件里面,误判就更为严重。
    Sylv
        25
    Sylv  
       2015-11-05 15:22:19 +08:00 via iPhone
    @old9 Karabiner 还是可以避免这个问题的,只有短按才会切换输入法,按下 shift 后发现不需要大写再松手的情况,这过程的时长 karabiner 会判断为长按而不会去切换输入法。
    pheyer
        26
    pheyer  
    OP
       2015-11-05 15:22:35 +08:00
    @old9 就是担心这个误判问题,因为之前我还是遇到过,那还是不用 shift 了吧
    pierrec
        27
    pierrec  
       2015-11-05 15:58:23 +08:00
    er 一直用 shift 可能我不用码字
    xiaket
        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
    zi
        29
    zi  
       2015-11-05 16:55:52 +08:00
    反正 win10 自带输入法在中文状态下 shift 切换到英文之后按两次 ctrl+space 无法切换回中文状态是我不能接受的设定。。
    lyz1990
        30
    lyz1990  
       2015-11-05 16:56:58 +08:00
    代码的时候写变量名经要打大写字母进来,所以 shift 切换显然是不科学的
    lyz1990
        31
    lyz1990  
       2015-11-05 16:57:58 +08:00
    再说输入法这玩意不怎么需要切换吧,干活的时候基本上都是英文
    leavic
        32
    leavic  
       2015-11-05 17:11:19 +08:00
    其实我只想全面禁用全角,但在我写 latex 的时候才恢复全角功能。
    Layne
        33
    Layne  
       2015-11-05 17:50:05 +08:00
    @ngn999 握手。。用双拼的人毕竟少,你看都没人回复你。。
    ngn999
        34
    ngn999  
       2015-11-05 17:54:48 +08:00
    @Layne 握爪
    ahcat
        35
    ahcat  
       2015-11-05 19:19:41 +08:00 via iPhone
    用了 10 几年 Ctrl 加空格切换,直到 win8 出来后强制改成 win 加空格切换,无论怎样都无法改变自己的使用习惯,这就是我连正版 win8 都不用的最大原因。
    Suclogger
        36
    Suclogger  
       2015-11-05 22:00:37 +08:00
    @Sylv 看到你在 http://v2ex.com/t/205046 中的脚本,
    Suclogger
        37
    Suclogger  
       2015-11-05 22:01:04 +08:00
    @Sylv 在系统设置中更改默认切换输入法快捷键 ⌘+Space 为不存在的按键 F18 这个是怎么实现的呢
    Monad
        38
    Monad  
       2015-11-05 22:59:08 +08:00
    更烦的其实是中文输入法在 vim 下敲命令 那酸爽!
    Windows 貌似也没有 fcitx.vim 吧
    21grams
        39
    21grams  
       2015-11-05 23:28:38 +08:00
    win10 最烂的一点就是把 ctrl+空格给废了
    Sylv
        40
    Sylv  
       2015-11-06 04:08:17 +08:00 via iPhone   ❤️ 1
    @Suclogger 先用 karabiner 映射 shift 键为 F18 键,然后在系统设置中更改默认输入法的快捷键时会让你按想要的快捷键,这时按 shift 键就会被识别成 F18 键了。
    xiaohuanSu
        41
    xiaohuanSu  
       2015-11-06 08:09:31 +08:00
    最烦人的明明是写程序的时候不小心用了一个全角的标点符号,然后没有立即发现……
    Suclogger
        42
    Suclogger  
       2015-11-06 08:52:21 +08:00
    @Sylv 完美!感谢分享~
    stanhou
        43
    stanhou  
       2015-11-14 01:05:25 +08:00
    不错的想法,我试试看看能不能适应哈哈
    rongbin
        44
    rongbin  
       2015-11-22 22:05:47 +08:00
    @ngn999
    @Layne
    今天我配置了下鼠须管,终于可以 enter 上屏了。同时双拼方案,也不在局限于智能 abc 。
    sinker
        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
    pheyer
        46
    pheyer  
    OP
       2015-12-04 09:41:22 +08:00
    @sinker 通常来说 Alt 或者说是 Option 键与字母键配合是用来输入特殊字符的,你是把这种输入特殊字符的功能给屏蔽了吗?
    sinker
        47
    sinker  
       2015-12-04 14:10:06 +08:00
    @pheyer 只是把 option+a,s,d 的组合换掉了,其他情况不变。
    因为左手大部分好按的组合键都用掉了,只好拿 option 开刀了。而且我个人觉得把 option+字母的功能设为快捷键而非输特殊字符入更符合日常需要,毕竟需输入要特殊字符的情况比较少,替代手段也很多。
    Vicia
        48
    Vicia  
       2015-12-30 11:25:24 +08:00
    @sinker 个人做法是 双击 fn → 中文,双击 ctrl → 英文,双击 alt → 日文。
    Nirlan
        49
    Nirlan  
       2018-02-05 11:10:22 +08:00
    @dozer47528 #2 非常棒。 之前一直用的搜狗输入法,切换到 Mac 内置之后,一键切换中英文,这感觉太棒了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2671 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:00 · PVG 00:00 · LAX 09:00 · JFK 12:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.