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

中州韻输入法引擎驱动的「鼠鬚管」Squirrel

  •  
  •   NemoAlex · 2012-04-05 14:21:06 +08:00 · 24544 次点击
    这是一个创建于 4617 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天安装了 0.9.3 版本,非常棒,各种流畅
    开发还在持续进行中,作者非常牛
    估计可以成为最开源,最好用的 Mac 中文输入法了

    强烈推荐各位去试一下
    http://code.google.com/p/rimeime/downloads/detail?name=Squirrel-0.9.3.zip
    第 1 条附言  ·  2013-06-04 15:44:03 +08:00
    项目主页:
    https://code.google.com/p/rimeime/
    作者是 @lotem
    158 条回复    1970-01-01 08:00:00 +08:00
    1  2  
    xell
        101
    xell  
       2012-06-07 20:48:35 +08:00
    @lotem


    非常感谢作者开发了如此之好的输入法。本人 Win+Mac 双修,在 Mac 上用得很好,可惜在 Windows 下出了问题,简而言之就是在 GVIm 的普通模式(normal mode)中输入法依然有效,导致无法执行命令(需要笨拙地每次都手工切换为英文),这样一来 vim 基本上就没法用了。(MacVim 无此问题,MacVim 有专门的解决方案,也即 'imd'。)

    我看到本帖有用户提出了这个问题(参见66至70楼),可惜没有得到解答。须知在 Windows 下其他输入法对 GVim 的这个特性支持得都很好,例如我使用过的谷歌输入法以及极点五笔输入法,均能实现插入模式(insert mode)下打中文,回到普通模式则自动“失效”,方便用户输入英文字符实现命令控制,而再次回到插入模式又恢复成中文输入;在模式跳转过程中,用户不需要按任何键,一切都是自动的。

    我注意到 Rime 的文档都有 vim modeline,猜想作者应当也是用 vim 的吧(或许仅仅在 Mac 下用?)希望作者能解决这一点,为 Vim 用户带来福音。谢谢。
    lotem
        102
    lotem  
       2012-06-07 21:21:53 +08:00   ❤️ 1
    @xell 我都是手動切換啊。不太瞭解谷歌如何實現的。有沒有相關資料?
    NemoAlex
        103
    NemoAlex  
    OP
       2012-06-07 21:40:22 +08:00   ❤️ 1
    @lotem
    @xell 我在 MacVim 也有这个问题,并不像你说的那样可以自动切换输入法
    是不是跟我的切换输入法热键是 CMD + SPACE 有关呢?
    xell
        104
    xell  
       2012-06-07 22:11:45 +08:00
    @NemoAlex MacVim 有一个专门的选项可以用来对输入法进行调节,请参见 :h 'imd',我所用的设置是 set noimd,然后,启动 MacVim 后进入插入模式再切换至中文输入法,然后 Esc 跳出,输入法就自动变成英文了。循此设置,Mac 下无论 Squirrel(Rime)、QIM、百度、搜狗或系统自带输入法等都能完美自动切换[1]。又及,我的热键也是默认的 Command+Space,因此肯定不是热键的问题。

    @lotem 很高兴得到快速的回应。实际上如何不用手动切换输入法 *曾经* 一直都是(中文)vim 用户关注的热点,现已知在 Windows/Mac/Linux 下都有了很好的解决方案。Mac 如我上面的回复所述,Linux 下有多种方案(包括 Vim 内部设置以及对输入法进行 patch)。

    而 Windows 下……至少在我这里,无论 XP 还是 7,很久以来就是好的,完美自动切换,因此我甚至都没专门关注过。Windows GVim 中与输入法相关的设置包括 imd(noimd)、imi(2)(括号中是我用的设置值)[2]。因此 *似乎* 可以说,任何与 Windows 系统“良好合作”的输入法本身就能支持 Vim 的这个特性——如前贴所说,谷歌输入法、极点五笔、微软拼音等都支持,无需特别关注。

    希望上述回答能有所帮助。

    [1] 有时候切换时会出现系统卡顿,此现象无规律可循,本人至今未解,只能猜到可能与某些热键软件相关。
    [2] 还有 imc 和 ims,由于这里关注的是 insert mode 的问题,不再赘述。
    NemoAlex
        105
    NemoAlex  
    OP
       2012-06-08 01:51:33 +08:00   ❤️ 1
    @xell 我尝试在 MacVim 环境下,vimrc 加入 set imi=1或者2,都没有看到效果
    又试了一下加入 set noimd,确实在模式切换时自动切换输入法了,可是这种状态下又有非常严重的输入问题——几乎一个中文字都打不出来——输入的拼音在按下空格后,被直接插入在编辑器里,光标后面又会多出一个 “>” 字符
    之前在 MacVim 中使用也会偶尔发生类似现象,没有在最新的版本里大量测试过,不知道是否现在正常使用的时候也会这样
    xell
        106
    xell  
       2012-06-08 12:02:15 +08:00
    @NemoAlex 你可以看看 MacVim 自己的设定(Preferences,用 CMD+, 热键呼出来的那个),Advanced 菜单勾选 Draw marked text inline。至少在我这里还算正常。
    lotem
        107
    lotem  
       2012-06-08 14:14:13 +08:00   ❤️ 1
    @xell 寫得真多。
    只是我在GVIM裏設置了那些選項,輸入法們也無有哪個不照常出字的。
    不折騰了;這題我不太擅長,等高人相助了。
    breestealth
        108
    breestealth  
       2012-06-17 12:11:58 +08:00
    @xell @NemoAlex 应该是将Draw marked text inline选项给取消勾选吧?我这边如果勾选就出现了完全不能输入的情况,取消勾选后一切正常。
    vexfisher
        109
    vexfisher  
       2012-06-23 23:53:50 +08:00
    @xell 小生刚好在昨天下班时解决了这个问题,用ahk(autoHotKey)脚本搞定,原理很简单:在按ESC时,切换至非中文输入法(如果你机器上只有一种输入法,应该可以切换到该输入法的英文模式),然后在发送ESC命令,以此实现每次回到normal模式时,总会切换到非中文输入

    小生也是mac+win双修的vimer,多交流,请多指教
    vexfisher
        110
    vexfisher  
       2012-06-23 23:58:13 +08:00
    @xell “须知在 Windows 下其他输入法对 GVim 的这个特性支持得都很好,例如我使用过的谷歌输入法以及极点五笔输入法,均能实现插入模式(insert mode)下打中文,回到普通模式则自动“失效”,方便用户输入英文字符实现命令控制,而再次回到插入模式又恢复成中文输入;在模式跳转过程中,用户不需要按任何键,一切都是自动的。”

    小生在win下倒是没有发现有输入法可以实现normal模式下自动切换到英文的功能呢,您的vim是什么版本,使用什么输入法?小生一直使用gvim7.3 , googlePinyin和qqPinyin轮流用

    故一直在寻求解决方案,所以才有了上贴中的ahk脚本实现normal模式自动切换输入法
    yoyicue
        111
    yoyicue  
       2012-06-25 20:07:22 +08:00
    @lotem
    想问一下如何默认使用西文/英文的标点
    yoyicue
        113
    yoyicue  
       2012-06-25 20:18:46 +08:00
    laskuma
        114
    laskuma  
       2012-07-17 00:37:13 +08:00
    @lotem 重启mac之后 鼠鬚管突然就失效了,覆盖安装也没有用。图表还是会显示,也可以按option + cmd + r部署配置,但就是打不出中文= =。 请问哪有指导如何删除的文档? 想试试删除后再重装。 谢谢。
    laskuma
        115
    laskuma  
       2012-07-17 01:16:38 +08:00
    @lotem 尝试删除后安装,无效。。。很奇怪的样子。。。发现安装后Library里面都没有多出Rime文件夹。。。
    Ziya
        116
    Ziya  
       2012-08-06 20:10:27 +08:00
    @lotem
    同样无法使用了
    睡眠恢复之后突然就不行了,删除重装也打不了中文了-。-
    lotem
        117
    lotem  
       2012-08-07 12:59:28 +08:00   ❤️ 1
    @Ziya 日誌~/Library/Rime/rime.log 怎麼說
    leplay
        118
    leplay  
       2012-08-16 21:49:08 +08:00   ❤️ 1
    请教一下,在「鼠须管」中文状态下输入的一串字符,可以设置按 shift 键直接上屏吗?而不是中英文来回切换……
    NemoAlex
        119
    NemoAlex  
    OP
       2012-08-16 22:17:27 +08:00   ❤️ 2
    @leplay 是不是想要这种表现:
    在中文输入状态下,输入一些字母以后,选词出现,这时按 shift,可以直接把输入的字母上屏,同时切换到英文输入状态
    因为有时候已经在输入英文会忘记是在中文输入状态,按 shift 可以直接切换到英文,并且把已经输入的东西上屏,合情合理

    @lotem 希望考虑加入
    lotem
        120
    lotem  
       2012-08-16 22:35:23 +08:00   ❤️ 2
    @NemoAlex 提供了一個選項來修改成你要的表現(有註釋):http://gist.github.com/2981316
    lotem
        121
    lotem  
       2012-08-16 22:39:18 +08:00   ❤️ 2
    @leplay 原來是閣下的提問。
    NemoAlex
        122
    NemoAlex  
    OP
       2012-08-16 22:58:29 +08:00   ❤️ 1
    @lotem 非常感谢
    根据我的描述,应该是一条
    Shift_L: commit_code
    就够了
    leplay
        123
    leplay  
       2012-08-16 23:28:52 +08:00
    @NemoAlex 是的,就是这个想法呢,谢谢
    leplay
        124
    leplay  
       2012-08-16 23:29:28 +08:00
    @lotem 已经实现想要的效果了,万分感谢。
    rainchen
        125
    rainchen  
       2012-08-17 13:20:07 +08:00
    @lotem 请问怎么更改“輸入方案選單”的切换热键,因为我mac上的 Ctrl+`已经绑定为TotalTerminal了
    the7thevil
        127
    the7thevil  
       2012-08-18 23:17:55 +08:00
    @laskuma 根据定制指南里提到的文件路径,把两个路径下的文件全部删掉,再重新安装。注意备份自定义的配置文件,就行了
    badec
        128
    badec  
       2012-08-19 00:08:15 +08:00
    如果可以缩小输入框。那就好了~
    wecing
        129
    wecing  
       2012-08-19 10:56:47 +08:00   ❤️ 1
    “神出鬼没”这个词的默认读音居然是“shen chu gui mei”,泪流满面……
    HO2n
        130
    HO2n  
       2012-08-25 22:03:26 +08:00
    @NemoAlex
    @lotem
    前几日我通过这个帖子,学习设置鼠须管,一直工作良好. http://d.pr/i/Wm0D
    直到今晚,我的mac出现了经典的vpn bug,导致系统死机,我只好用电源键关机.再次开机时,鼠须管就不正常了...

    除了"z键",还有"救命"的"jiu",输入u的时候,就出不来汉字,但"有没有"的"you"则没问题.
    我该怎么做呢?
    NemoAlex
        131
    NemoAlex  
    OP
       2012-08-25 23:43:14 +08:00   ❤️ 1
    @HO2n 你可以把日志发上来看看
    ~/Library/Rime/rime.log
    HO2n
        132
    HO2n  
       2012-08-26 00:05:42 +08:00
    @NemoAlex 我把输入法删除干净,然后重装了... 没想到日志.现在已经正常,但仍担心下一次.
    lotem
        133
    lotem  
       2012-08-26 00:52:02 +08:00   ❤️ 1
    @HO2n 第二条语音提示之前程序发生了崩溃。如果说跟输入内容有关,那问题很可能出在用户词典上。因为异常关机会有可能导致词典文件损坏;根据Windows上的经验,词典文件异常关闭下次打开的时候要卡一段时间才能恢复使用(Kyotocaibnet内部的处理),但是Mac的输入法框架并不允许输入法很久不做响应:失去响应的情况下系统会重新启动一个输入法进程。后一条语音提示,正是后来启动的进程发现系统在快速地重复启动输入法,为避免卡死整个系统,此时鼠须管就不再继续做任何事了,因此表现为无法打出汉字。

    如遇系统掉电后无法打出字,这时鼠须管很可能已在试图恢复,建议此时不要急于手动触发部署;日志里很可能记录有输入法尝试恢复用户词典的信息。
    lotem
        134
    lotem  
       2012-08-26 00:56:23 +08:00   ❤️ 1
    如果下次还有,记得留下标本啊:日志文件,以及相关的 userdb.kct 文件。
    HO2n
        135
    HO2n  
       2012-08-26 10:35:26 +08:00
    @lotem 好哒
    pandazxx
        136
    pandazxx  
       2012-08-27 11:24:33 +08:00
    @lotem 请教一下,如果我用dropbox之类的同步词库和配置,应该同步哪个文件?
    我尝试同步:~/Library/Rime/default.custom.yaml, luna_pinyin.userdb.kct, user.yaml,但是发现这几个文件在修改设置,例如简繁切换后,没有修改,词库文件在输入新词以后,也没有修改。
    motta
        137
    motta  
       2012-08-28 08:47:07 +08:00
    @lotem 请教一下, 如何才能设置自定义词组, 比如我在中文输入状态下敲「yx」, 输入法会把「[email protected]」邮箱地址放到首选位置, 也就是说再按空格或者数字 1 就能选词上屏了. 不知道鼠须管里面有没有相应的设置呢? 谢谢你.
    lotem
        138
    lotem  
       2012-08-28 10:44:33 +08:00   ❤️ 2
    @pandazxx 需要同步的是自己创作(非预设)的输入方案、 user.yaml, *.custom.yaml, *.userdb.kct,可选同步 *.snapshot 。一定不需要同步的文件是 *.bin 。
    但是: *.userdb.kct 文件打开的时候不宜同步,因为Kyotocabinet在文件打开时把文件大小设置到64MB,实际里面的数据通常只有几百KB。另外YAML文件会在内存中缓存,所以不会即时看到修改。

    现在有个办法:从系统输入法菜单执行「重新部署」、不要打字,这时所有打开的文件都保存了,可以同步。
    lotem
        139
    lotem  
       2012-08-28 11:15:02 +08:00   ❤️ 1
    @motta 没有这功能。实在要做的话,只能专门做一个码表输入方案,仿照五笔拼音混合输入的办法把自定义短语设为反查码。
    roamlog
        140
    roamlog  
       2012-08-28 11:33:17 +08:00
    @lotem 鼠须管五笔似乎不会自动调整词频?
    motta
        141
    motta  
       2012-08-28 12:07:42 +08:00
    @lotem 感谢回复 :D
    Ridge
        142
    Ridge  
       2012-09-02 20:44:37 +08:00
    @lotem 您好。我想请教您一个问题,今天我的机子出现“五国“后重启了,然后Squirrel就不能再输入任何的汉字了,我已经尝试了重装、重新部署,依然不能输入汉字。请问应该怎么处理呢?谢谢
    ps:
    rime.log的部分报错信息
    ------------
    [Sun Sep 2 20:38:44 2012] config.cc (00411) LoadFromFile(): loading config file '/Users/men/Library/Rime/default.yaml'.
    [Sun Sep 2 20:38:44 2012] config.cc (00411) LoadFromFile(): loading config file '/Users/men/Library/Rime/user.yaml'.
    [Sun Sep 2 20:38:44 2012] config.cc (00411) LoadFromFile(): loading config file '/Users/men/Library/Rime/luna_pinyin.schema.yaml'.
    [Sun Sep 2 20:38:44 2012] engine.cc (00071) ConcreteEngine(): Entering function , ConcreteEngine
    [Sun Sep 2 20:38:44 2012] engine.cc (00112) OnOptionUpdate(): option = 'auto_commit'
    [Sun Sep 2 20:38:44 2012] dictionary.cc (00267) Load(): Entering function , Load
    [Sun Sep 2 20:38:44 2012] table.cc (00195) Load(): Load file: /Users/men/Library/Rime/luna_pinyin.table.bin
    [Sun Sep 2 20:38:44 2012] prism.cc (00075) Load(): Load file: /Users/men/Library/Rime/luna_pinyin.prism.bin
    [Sun Sep 2 20:38:44 2012] prism.cc (00102) Load(): Found double array image of size 1792.
    [Sun Sep 2 20:38:44 2012] dictionary.cc (00267) Load(): Exiting function , Load
    [Sun Sep 2 20:38:44 2012] engine.cc (00071) ConcreteEngine(): Exiting function , ConcreteEngine
    [Sun Sep 2 20:38:44 2012] service.cc (00098) CreateSession(): Error creating session
    ---------------
    soulhacker
        143
    soulhacker  
       2012-09-03 14:33:38 +08:00
    请教下 @lotem,我本来一直用 Squirrel 好好的,有一次系统不响应了我就强行关机重启,然后 Squirrel 就不工作了,无法输入中文,不知道可能是什么问题呢?

    我的系统是 10.8.1,Squirrel 是最新的 0.9.8。
    soulhacker
        144
    soulhacker  
       2012-09-03 17:15:39 +08:00
    @lotem 好吧,研究了一會兒似乎是 squirrel.yaml 這個配置文件的問題,我把配置文件刪掉重新生成,然後再一一輸入之前定製的設定就好了。。。哎,現在換別的輸入法都不適應了。。。
    lotem
        145
    lotem  
       2012-09-03 17:38:45 +08:00
    @Ridge 一般来说重装输入法不解决问题。从日志看,问题出在配置上的可能较大;把Rime用户目录的文件都拿掉试试看。
    Mak
        146
    Mak  
       2012-10-05 11:51:59 +08:00
    我现在遇到了只能输入英文的问题,有人遇到过吗?怎么解决的?
    jimaobian
        147
    jimaobian  
       2012-10-06 22:30:43 +08:00
    不知道为什么自从更新了最新版本之后,一直出现无法输入中文的问题。具体问题是:输入的字母下面有下划线但是选字框无法显示,需要重新部署。。。
    NemoAlex
        148
    NemoAlex  
    OP
       2012-10-08 15:27:59 +08:00
    @Mak
    @jimaobian 是不是之前针对 MacVim 改过一些设置?删除掉重新部署试试
    jimaobian
        149
    jimaobian  
       2012-10-08 17:21:53 +08:00
    @NemoAlex 没有,从没使用过MacVim,而且这是更新以后才出现的问题,最郁闷的是无法再现。。。还有更新了之后之前的词库也挂掉了。。。
    NemoAlex
        150
    NemoAlex  
    OP
       2012-10-08 17:58:06 +08:00
    貌似很多人说这个问题 @lotem
    hyq
        151
    hyq  
       2012-10-09 08:43:03 +08:00
    @lotem 我發現每次重啓計算機後,鼠鬚管就自動切換成繁體,這個怎麼讓它默認輸出簡體字?
    dmcz
        152
    dmcz  
       2012-10-11 14:56:34 +08:00
    @lotem 最新版Chrome,最新版鼠须管,在访问 https://drive.google.comhttp://www.tumblr.com/customize/ 以及其他网站的时候输入中文,经常导致Chrome强退.

    这个问题很令我崩溃,不知道有没有人反映. 上一个版本鼠须管没问题,我习惯不着急升级新版本,之所以升级是因为如果选择"不升级",重启电脑后不久又会提示我更新!
    c0878
        153
    c0878  
       2012-10-12 14:46:09 +08:00
    没错 0.9.9版Squirrel在Chrome下输入中文会导致Chrome崩溃 Chrome为最新稳定版
    NemoAlex
        154
    NemoAlex  
    OP
       2012-10-12 15:45:51 +08:00
    @c0878
    @dmcz
    @lotem 这个现象我也遇到过两次
    好像有些时候在一些输入框,尤其是输入会触发一些 JS 事件的地方,切换输入法输入得比较急的时候 Chrome 会闪退
    不能100%重现,也有可能是 Chrome 的问题
    dmcz
        155
    dmcz  
       2012-10-12 20:25:31 +08:00
    @NemoAlex 在Google Drive里新建一个电子表格,在图中这个地方输入数字

    dmcz
        156
    dmcz  
       2012-10-12 20:26:09 +08:00
    @NemoAlex 这个应该可以100%重现
    c0878
        157
    c0878  
       2012-10-26 15:54:49 +08:00
    @NemoAlex @dmcz 发现搜狗输入法也会导致一模一样的崩溃错误 应该是Chrome的问题
    yutify
        158
    yutify  
       2012-11-26 19:41:52 +08:00
    @wecing 表瞎说
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3127 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:55 · PVG 21:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.