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

OS X 也可以使用 fcitx.vim 了

  •  6
     
  •   xcodebuild · 2015-11-02 17:31:24 +08:00 · 8339 次点击
    这是一个创建于 3342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    介绍

    vi-mode 是一种高效的编辑方式,但是最令人头疼的莫过于在普通模式下输入命令的时候却被输入法挡住,对于我这种经常忘记切输入法的人来说非常痛苦。

    命令被输入法挡住

    为了解决这种问题,很早以前就有了 vim-scripts/fcitx.vim ( for Vim )和 cute-jumper/fcitx.el (for Emacs)。利用插件和 fcitx 进行沟通,让输入法随着用户的需要自动改变。

    但是因为 fcitx 的原因,这些插件都是 Linux-only 的。我由它们的工作方式收到启发,写了个简单的小程序来伪装成 fcitx-remote , 一面和插件交流一面和输入法交流,让这些插件也可以用于 OS X 。

    相关链接

    介绍文章: http://codefalling.com/2015/11/02/fcitx-vim-for-OS-X/

    项目地址: https://github.com/CodeFalling/fcitx-remote-for-osx

    可用的 fcitx.vim : https://github.com/CodeFalling/fcitx-vim-osx

    Emacs 使用的 fcitx.el : https://github.com/cute-jumper/fcitx.el/blob/master/fcitx.el

    欢迎试用反馈~

    第 1 条附言  ·  2015-11-02 21:37:41 +08:00
    各位不好意思,之前的版本有些问题没看到就出门了。
    现在重新 clone install 就好。

    另,现在可以在 https://github.com/CodeFalling/fcitx-remote-for-osx/releases 下载编译好的版本了,解压复制到`/usr/local/bin`
    第 2 条附言  ·  2015-11-05 12:46:59 +08:00

    现在可以通过 brew tap 安装了,因为 brew 的核心仓库需要 30 天以上的 Github 项目才能进入。

    brew tap codefalling/fcitx-remote-for-osx
    brew install codefalling/fcitx-remote-for-osx/fcitx-remote-for-osx --with-baidu-pinyin
    

    也可以通过brew info codefalling/fcitx-remote-for-osx/fcitx-remote-for-osx查看其他支持的输入法。

    目前支持的选项有

    ==> Options
    --with-baidu-pinyin
    Build fcitx-remote for osx with baidu-pinyin support
    --with-baidu-wubi
    Build fcitx-remote for osx with baidu-wubi support
    --with-osx-pinyin
    Build fcitx-remote for osx with osx-pinyin support
    --with-qq-wubi
    Build fcitx-remote for osx with qq-wubi support
    --with-sogou-pinyin
    Build fcitx-remote for osx with sogou-pinyin support
    --with-squirrel-rime
    Build fcitx-remote for osx with squirrel-rime support

    第 3 条附言  ·  2015-12-10 12:31:20 +08:00

    现在已经进入 homebrew,可以直接使用

    brew install fcitx-remote-for-osx --with-input-method=baidu-pinyin

    安装。

    使用 brew info fcitx-remote-for-osx 获取更多信息

    ==> Options
    --with-input-method=
        Select input method: baidu-pinyin(default), baidu-wubi, sogou-pinyin, qq-wubi, squirrel-rime, osx-pinyin
    
    88 条回复    2016-11-04 11:56:19 +08:00
    kikyous
        1
    kikyous  
       2015-11-02 17:40:58 +08:00
    居然有这个了,完美了, 感谢分享

    看了一下这个是给 osx 下的搜狗和百度输入法用的
    xcodebuild
        2
    xcodebuild  
    OP
       2015-11-02 17:45:01 +08:00 via iPhone
    是的,其实如果用其他输入法也可以,用-n 找一下名字就行。欢迎反馈,我可以扩充那个表格
    kikyous
        3
    kikyous  
       2015-11-02 17:47:44 +08:00
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

    非要安装 xcode 吗?
    xcodebuild
        4
    xcodebuild  
    OP
       2015-11-02 17:48:47 +08:00 via iPhone
    @kikyous 至少需要 command line tools ,不需要完整的 xcode
    kikyous
        5
    kikyous  
       2015-11-02 17:53:20 +08:00
    我装了 command line tools 了,但是执行
    xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS CHINNESE_KEYBOARD_LAYOUT=@\"com.sogou.inputmethod.sogou.pinyin\"' install

    就报上面的错
    xcodebuild
        6
    xcodebuild  
    OP
       2015-11-02 17:55:41 +08:00 via iPhone
    啊是我弄错了,还真是需要 xcode ,,或者等我有空弄几个 pre build binary
    Shared
        7
    Shared  
       2015-11-02 17:55:59 +08:00
    很棒的插件!不过这个名字很让人误会啊,我刚开始还疑惑 OSX 下什么时候有 Fcitx 了……
    kikyous
        8
    kikyous  
       2015-11-02 17:56:46 +08:00
    @Shared 是啊,我也是这么怀疑的
    xcodebuild
        9
    xcodebuild  
    OP
       2015-11-02 17:59:22 +08:00 via iPhone
    原来名字就叫 fcitx-remote ,,不怎么引人注意,,不是新起的
    teloti
        10
    teloti  
       2015-11-02 19:05:18 +08:00
    不支持系统原生输入法么?
    tracyone
        11
    tracyone  
       2015-11-02 19:11:07 +08:00
    已 star
    xcodebuild
        12
    xcodebuild  
    OP
       2015-11-02 19:16:30 +08:00 via iPhone
    支持的,不过我没有去测原生的 imname ,你可以先安装上通过 fcitx-remote -n 获取当前输入法的 imname 。然后修改参数重新编译,报告给我就更好了。
    或者等其他人找或者我有空再去看看
    xcodebuild
        13
    xcodebuild  
    OP
       2015-11-02 19:16:49 +08:00 via iPhone
    @tracyone 感谢鼓励😁
    aliuwr
        14
    aliuwr  
       2015-11-02 20:00:06 +08:00
    感谢楼主,才知道有 vim-scripts/fcitx.vim 这个东西。
    xcodebuild
        15
    xcodebuild  
    OP
       2015-11-02 20:08:03 +08:00 via iPhone
    @aliuwr 噗哈哈,这也算,你是 linux 用户么
    harry890829
        16
    harry890829  
       2015-11-02 20:21:47 +08:00
    必须赞一个,希望能不错的效果吧,正在安装 vim 插件
    aliuwr
        17
    aliuwr  
       2015-11-02 20:23:23 +08:00
    @codefalling 我是 Linux ,所以没法享用你的成果啦。
    xcodebuild
        18
    xcodebuild  
    OP
       2015-11-02 20:39:41 +08:00 via iPhone
    @harry890829 可怜我是个 emacs 党,写出来都是 vim 用户在用,希望组织不会烧死我😂
    harry890829
        19
    harry890829  
       2015-11-02 20:40:33 +08:00
    @codefalling 哈哈,买脚踏板了么……
    xcodebuild
        20
    xcodebuild  
    OP
       2015-11-02 20:41:40 +08:00 via iPhone
    @harry890829 这不显然在用 evil 么,否则不会写这的。抬脚插入模式踩下去普通模式
    harry890829
        21
    harry890829  
       2015-11-02 20:44:22 +08:00
    @codefalling 本来我被 vim 的三个模式折磨的死去活来,后来也遇到插件问题,在网上被安利了 emacs ,曾经尝试了一下,但是没深入, vim 那边的插件调整好了,后来也看到 emacs 竟然还需要脚踏板,简直被吓到了
    phoenixlzx
        22
    phoenixlzx  
       2015-11-02 20:47:59 +08:00
    .... 同以为 OS X 有 fcitx 了小激动了一下
    xcodebuild
        23
    xcodebuild  
    OP
       2015-11-02 20:50:32 +08:00
    @phoenixlzx 哈哈为什么这么想要 fcitx
    xcodebuild
        24
    xcodebuild  
    OP
       2015-11-02 21:17:05 +08:00
    @kikyous 如果你现在还没有安装 XCode ,我弄了些编译好的二进制文件,下载对应的把它拷贝到 /usr/local/bin 就行: https://github.com/CodeFalling/fcitx-remote-for-osx/releases
    Shared
        25
    Shared  
       2015-11-02 21:17:34 +08:00
    @codefalling 你可以考虑写个 brew package 传到 homebrew ,这样安装管理升级都方便。而且符合 Mac 用户的习惯。
    kikyous
        26
    kikyous  
       2015-11-02 21:19:16 +08:00 via Android
    已经有编译好的了啊,赶快试一下
    Shared
        27
    Shared  
       2015-11-02 21:22:00 +08:00
    @kikyous 我已经自己搞定了 :D
    xcodebuild
        28
    xcodebuild  
    OP
       2015-11-02 21:22:50 +08:00
    @kikyous sorry 操作失误,那些版本不对,,我来重新编译几个
    xcodebuild
        29
    xcodebuild  
    OP
       2015-11-02 21:23:34 +08:00
    @Shared 恩,谢谢建议,使用的状况还好么。我刚刚发现 github 上的版本不太正确,不知道影不影响使用。
    Shared
        30
    Shared  
       2015-11-02 21:24:56 +08:00
    @codefalling 用着没啥问题,除了 cString 已经废弃了,哈哈。
    xcodebuild
        31
    xcodebuild  
    OP
       2015-11-02 21:27:54 +08:00
    @kikyous OK 正确的版本已上传,可以去下载了
    Shared
        32
    Shared  
       2015-11-02 21:34:00 +08:00
    @codefalling 好吧,还是有问题。 Can't open socket /tmp/fcitx-socket-:1: No such file or directory
    xcodebuild
        33
    xcodebuild  
    OP
       2015-11-02 21:35:14 +08:00
    @Shared 对吧,重新 clone 构建下试试。我居然留下这个问题跑去复习了-。-估计坑了不少人。。
    Shared
        34
    Shared  
       2015-11-02 21:35:54 +08:00
    @codefalling 然后我的输入法是 com.baidu.inputmethod.BaiduIM.wubi
    我自己改改吧
    xcodebuild
        35
    xcodebuild  
    OP
       2015-11-02 21:38:07 +08:00
    @Shared OK 感谢提供,我去加到描述里
    teloti
        36
    teloti  
       2015-11-02 21:44:30 +08:00
    在 MacVim 下使用正常,输入命令的时候会从 OS X Pinyin 切换到 com.apple.keylayout.US ,非常赞,感谢~
    kikyous
        37
    kikyous  
       2015-11-02 21:45:47 +08:00
    装上了,现在正确的使用姿势是不是用 cmd+space 来切换中文和英文?
    xcodebuild
        38
    xcodebuild  
    OP
       2015-11-02 21:48:53 +08:00
    @kikyous 昂不是,正确的姿势是你在使用 VIm 的时候不用管输入法了,切换到 normal mode 的时候它会自动切换到英文,输完命令自动切回来。
    当然你还需要安装这个 Vim 插件: https://github.com/CodeFalling/fcitx-vim-osx
    xcodebuild
        39
    xcodebuild  
    OP
       2015-11-02 21:50:27 +08:00
    @kikyous 哈安心了不少,好用就好
    xcodebuild
        40
    xcodebuild  
    OP
       2015-11-02 21:50:49 +08:00
    @teloti 回错了,上面是回你的。。
    Shared
        41
    Shared  
       2015-11-02 21:53:14 +08:00
    @codefalling 弄好了,用起来果然很爽 XD
    xcodebuild
        42
    xcodebuild  
    OP
       2015-11-02 21:54:42 +08:00   ❤️ 1
    @Shared 那就好
    kikyous
        43
    kikyous  
       2015-11-02 22:07:10 +08:00
    我以前是用 ctrl 切换中英文的,就是英文也是用搜狗输入法输入, 而且搜狗的初始状态是英文,这样
    配合 set noimdisable , 也可以做到 normal 自动关闭输入法, insert 时进入搜狗的英文状态
    不过还是用 lz 的插件爽。
    xcodebuild
        44
    xcodebuild  
    OP
       2015-11-02 22:14:37 +08:00
    @kikyous 哈哈其实对我来说 spacemacs 里这个更重要,因为 emacs 的情况要复杂很多。还是要感谢 fcitx.vim 和 fcitx.el 的作者
    zealinux
        45
    zealinux  
       2015-11-02 22:33:07 +08:00
    支不支持鼠须管?
    xcodebuild
        46
    xcodebuild  
    OP
       2015-11-02 22:40:14 +08:00
    @zealinux 理论上是支持的,不过你需要用-n 找一下鼠须管的 imname ,然后更换参数重新安装
    hqs123
        47
    hqs123  
       2015-11-02 22:44:20 +08:00
    这个其实早就有了
    leebo
        48
    leebo  
       2015-11-02 22:47:37 +08:00
    vim 党 必须支持 刚用了没有问题 neovim 也没问题 爽爽的 困扰多年的输入法切换问题 总算解决了 非常感谢!!!!!!希望持续更新
    xcodebuild
        49
    xcodebuild  
    OP
       2015-11-02 22:56:17 +08:00
    @hqs123 是的,我说过了我是写了个小工具让这些插件能直接在 OS X 上工作
    xcodebuild
        50
    xcodebuild  
    OP
       2015-11-02 22:56:58 +08:00
    @leebo 好哒后天有个考试我考完就来完善~
    20015jjw
        51
    20015jjw  
       2015-11-03 00:09:41 +08:00 via Android
    等 brew 包啦
    xcodebuild
        52
    xcodebuild  
    OP
       2015-11-03 00:25:07 +08:00 via iPhone
    @20015jjw 这两天有考试,如果没人帮我写的话估计要等我考完了
    ewBuyVmLZMZE
        53
    ewBuyVmLZMZE  
       2015-11-03 04:06:29 +08:00


    不错的想法,但是我一直都是用的这货,在终端下自动强制英文,不使用中文输入法,因为我发现我在命令行下面没有输入中文的需求,不是 Vim 党、 Emacs 党还真是对不起了。
    xcodebuild
        54
    xcodebuild  
    OP
       2015-11-03 07:26:05 +08:00 via iPhone
    @syhily 哈这东西是专门用来解决 vi-mode 的痛点的(也解决了一部分 emacs 的痛点),终端没有太多中文输入自动英文确实够用了
    paicha
        55
    paicha  
       2015-11-03 10:57:13 +08:00
    @syhily 我发现这个设置经常会失效
    poplarch
        56
    poplarch  
       2015-11-03 12:26:43 +08:00
    @codefalling com.googlecode.rimeime.inputmethod.Squirrel.Rime 能否帮忙编译支持鼠须管
    sitin
        57
    sitin  
       2015-11-03 12:54:49 +08:00
    已经用上了感谢楼主啊,以后用 vim 写文档了。
    xcodebuild
        58
    xcodebuild  
    OP
       2015-11-03 13:04:47 +08:00 via iPhone
    @poplarch 啊我就要出门去上课了,,大概等两三个小时后,,
    lucifer9
        59
    lucifer9  
       2015-11-03 13:05:07 +08:00
    已经习惯手动切换了...
    xcodebuild
        60
    xcodebuild  
    OP
       2015-11-03 13:05:26 +08:00 via iPhone
    @sitin 都是 vim 党〒_〒,我大 emacs 党都去哪了
    xcodebuild
        61
    xcodebuild  
    OP
       2015-11-03 13:06:09 +08:00 via iPhone
    @lucifer9 hiahia 我每次被卡住都想砸键盘
    xcodebuild
        62
    xcodebuild  
    OP
       2015-11-03 13:09:48 +08:00
    @poplarch 我冒着迟到的风险给你编译了一份简直要被自己感动了, https://github.com/CodeFalling/fcitx-remote-for-osx/releases/tag/0.0.1
    不确定能不能用
    FrankFang128
        63
    FrankFang128  
       2015-11-03 13:27:22 +08:00
    屌屌的。
    Jeremial
        64
    Jeremial  
       2015-11-03 14:06:36 +08:00
    非常感谢!!! 太赞了
    zhugexiaobo
        65
    zhugexiaobo  
       2015-11-03 17:22:46 +08:00
    之前在 macvim 上用的 https://github.com/ybian/smartim 这个插件很好用,但是终端里的 vim 就失效了。
    楼主这个很赞。
    sitin
        66
    sitin  
       2015-11-03 18:33:32 +08:00
    @zhugexiaobo 我以前也用了这个来,貌似按两次 ESC 就可以。 lz 这个一次都不用按,确实赞。 @codefalling
    xcodebuild
        67
    xcodebuild  
    OP
       2015-11-03 18:43:46 +08:00 via iPhone
    @sitin 其实我见到过 smartim 这个插件,隔了很长时间突然受到的启发,才想到要用 oc 去操作输入法
    xcodebuild
        68
    xcodebuild  
    OP
       2015-11-03 18:48:22 +08:00 via iPhone
    @zhugexiaobo 插件本身( fcitx.vim fcitx.el )本身不是我写的哦,我只是想起来通过一层假的 fcitx-remote 可以让他们在 osx 下工作。以此减少了不少工作量,所以才比较好用
    fds
        69
    fds  
       2015-11-03 18:52:22 +08:00
    不错,很好!看了你的安装说明才开始使用 Vundle ,谢谢咯!
    teloti
        70
    teloti  
       2015-11-03 19:19:06 +08:00
    @codefalling 其实我不是 Vim/Emacs 的资深用户(笑),但是也使用 Vim 挺长时间了、局限于常规功能,上个月同时开始使用 Spacemacs ,看中的是 Emacs 的 Org-mode 和良好的整合,正在尝试从初学者阶段开始慢慢学习。 Spacemacs 上我现在也配置好了、依然很好用——虽然比如说在编辑器和 QQ 之中切换的时候会发现到了 QQ 常常需要切换回英文(不想开启各个程序独立保存输入法选择)、但是这个似乎也没有办法。
    xcodebuild
        71
    xcodebuild  
    OP
       2015-11-03 19:33:31 +08:00 via iPhone
    @teloti 我也是 spacemacs 用户,我忘了说, readme 里提到 emacs 里的那个 bug 可能并不存在,我问了下另外几个 emacs 用户没有碰到这个问题,所以你可以就按照 fcitx.el 说的那样配置试试。

    至于你说的那个需求,,,似乎只能不同程序使用不同输入法才能办到了,
    goldenages1989
        72
    goldenages1989  
       2015-11-04 10:37:02 +08:00
    @codefalling 麻烦问一下 QQ 五笔的 imname 是什么,谢谢~
    xcodebuild
        73
    xcodebuild  
    OP
       2015-11-04 10:44:22 +08:00 via iPhone   ❤️ 1
    @goldenages1989 你先编译安装上,命令行里 fcitx-remote -n 就可以看到当前输入法的 imname 了。然后换上 imname 重新编译安装
    goldenages1989
        74
    goldenages1989  
       2015-11-04 10:48:31 +08:00
    @codefalling 太棒了,感谢感谢~
    xcodebuild
        75
    xcodebuild  
    OP
       2015-11-04 10:58:47 +08:00 via iPhone
    @goldenages1989 话说它的 imname 是什么,我好加到 readme 里,以后整合进 brew
    goldenages1989
        76
    goldenages1989  
       2015-11-04 11:17:33 +08:00   ❤️ 1
    @codefalling com.tencent.inputmethod.QQInput.QQWubi 这个
    xcodebuild
        77
    xcodebuild  
    OP
       2015-11-04 11:22:10 +08:00 via iPhone
    leebo
        78
    leebo  
       2015-11-04 13:10:02 +08:00
    我使用过程中有个问题 我用的是百度输入法 我 esc 后 能正常切换输入法 但是我再次进入插入模式的时候 想用 shift 切换成英文输入 就不管用了 还有就是在选择模式下 我点 c 替换会特别的卡 这块我看到再执行你的那个脚本了
    leebo
        79
    leebo  
       2015-11-04 13:10:44 +08:00
    对了 忘记说了 我用的是 iterm vim 不是 gui 的 macvim
    xcodebuild
        80
    xcodebuild  
    OP
       2015-11-04 15:36:37 +08:00 via iPhone
    @leebo 刚考完试我回去看看,因为我不是 vim 用户之前没注意过
    xcodebuild
        81
    xcodebuild  
    OP
       2015-11-04 16:33:07 +08:00
    @leebo 我试了下无论怎么切换 shift 都仍然可以切换中英文(同百度输入法), Vim 版本是 OS X 自带的
    ```
    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 22 2015 15:38:58)
    Compiled by [email protected]
    ```
    请问你是用的版本?以及你使用的 shell ( bash/fish/zsh )?

    还有『点 c 替换』指的是什么,我不是 vim 党不能太理解。。
    xcodebuild
        82
    xcodebuild  
    OP
       2015-11-05 20:47:08 +08:00   ❤️ 1
    @leebo shift 切换的问题我也碰到了,,这貌似是百度自己的问题,现在换了 sogou
    leebo
        83
    leebo  
       2015-11-07 14:37:53 +08:00
    @codefalling 这个插件 选中多个替换的时候非常卡 https://github.com/terryma/vim-multiple-cursors
    xcodebuild
        84
    xcodebuild  
    OP
       2015-11-07 14:52:47 +08:00
    @leebo 新版本应该已经解决这个问题了啊, https://github.com/CodeFalling/fcitx-vim-osx/issues/2
    leebo
        85
    leebo  
       2015-11-07 16:09:04 +08:00
    @codefalling 非常感谢 已经更新了 但是还是有个小问题 就是 vim-multiple-cursors 输入 c 以后 他会切换到中文输入法 而不是保持原来输入法的状态
    leebo
        86
    leebo  
       2015-11-07 16:11:01 +08:00
    @codefalling 我搞错了 是我输入法默认的是中文 刚换了搜狗输入法还没改配置
    xcodebuild
        87
    xcodebuild  
    OP
       2015-11-07 16:42:39 +08:00
    @leebo ok~欢迎继续反馈。换了输入法需要 brew uninstall 然后在 brew install 一遍
    realwangyibo
        88
    realwangyibo  
       2016-11-04 11:56:19 +08:00
    感谢开发!

    从此不再纠结中文输入!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5741 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.