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
欢迎试用反馈~
现在可以通过 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
现在已经进入 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
1
kikyous 2015-11-02 17:40:58 +08:00
居然有这个了,完美了, 感谢分享
看了一下这个是给 osx 下的搜狗和百度输入法用的 |
2
xcodebuild OP 是的,其实如果用其他输入法也可以,用-n 找一下名字就行。欢迎反馈,我可以扩充那个表格
|
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 吗? |
4
xcodebuild OP @kikyous 至少需要 command line tools ,不需要完整的 xcode
|
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 就报上面的错 |
6
xcodebuild OP 啊是我弄错了,还真是需要 xcode ,,或者等我有空弄几个 pre build binary
|
7
Shared 2015-11-02 17:55:59 +08:00
很棒的插件!不过这个名字很让人误会啊,我刚开始还疑惑 OSX 下什么时候有 Fcitx 了……
|
9
xcodebuild OP 原来名字就叫 fcitx-remote ,,不怎么引人注意,,不是新起的
|
10
teloti 2015-11-02 19:05:18 +08:00
不支持系统原生输入法么?
|
11
tracyone 2015-11-02 19:11:07 +08:00
已 star
|
12
xcodebuild OP 支持的,不过我没有去测原生的 imname ,你可以先安装上通过 fcitx-remote -n 获取当前输入法的 imname 。然后修改参数重新编译,报告给我就更好了。
或者等其他人找或者我有空再去看看 |
13
xcodebuild OP @tracyone 感谢鼓励😁
|
14
aliuwr 2015-11-02 20:00:06 +08:00
感谢楼主,才知道有 vim-scripts/fcitx.vim 这个东西。
|
15
xcodebuild OP @aliuwr 噗哈哈,这也算,你是 linux 用户么
|
16
harry890829 2015-11-02 20:21:47 +08:00
必须赞一个,希望能不错的效果吧,正在安装 vim 插件
|
17
aliuwr 2015-11-02 20:23:23 +08:00
@codefalling 我是 Linux ,所以没法享用你的成果啦。
|
18
xcodebuild OP @harry890829 可怜我是个 emacs 党,写出来都是 vim 用户在用,希望组织不会烧死我😂
|
19
harry890829 2015-11-02 20:40:33 +08:00
@codefalling 哈哈,买脚踏板了么……
|
20
xcodebuild OP @harry890829 这不显然在用 evil 么,否则不会写这的。抬脚插入模式踩下去普通模式
|
21
harry890829 2015-11-02 20:44:22 +08:00
@codefalling 本来我被 vim 的三个模式折磨的死去活来,后来也遇到插件问题,在网上被安利了 emacs ,曾经尝试了一下,但是没深入, vim 那边的插件调整好了,后来也看到 emacs 竟然还需要脚踏板,简直被吓到了
|
22
phoenixlzx 2015-11-02 20:47:59 +08:00
.... 同以为 OS X 有 fcitx 了小激动了一下
|
23
xcodebuild OP @phoenixlzx 哈哈为什么这么想要 fcitx
|
24
xcodebuild OP @kikyous 如果你现在还没有安装 XCode ,我弄了些编译好的二进制文件,下载对应的把它拷贝到 /usr/local/bin 就行: https://github.com/CodeFalling/fcitx-remote-for-osx/releases
|
25
Shared 2015-11-02 21:17:34 +08:00
@codefalling 你可以考虑写个 brew package 传到 homebrew ,这样安装管理升级都方便。而且符合 Mac 用户的习惯。
|
26
kikyous 2015-11-02 21:19:16 +08:00 via Android
已经有编译好的了啊,赶快试一下
|
28
xcodebuild OP @kikyous sorry 操作失误,那些版本不对,,我来重新编译几个
|
29
xcodebuild OP @Shared 恩,谢谢建议,使用的状况还好么。我刚刚发现 github 上的版本不太正确,不知道影不影响使用。
|
30
Shared 2015-11-02 21:24:56 +08:00
@codefalling 用着没啥问题,除了 cString 已经废弃了,哈哈。
|
31
xcodebuild OP @kikyous OK 正确的版本已上传,可以去下载了
|
32
Shared 2015-11-02 21:34:00 +08:00
@codefalling 好吧,还是有问题。 Can't open socket /tmp/fcitx-socket-:1: No such file or directory
|
33
xcodebuild OP @Shared 对吧,重新 clone 构建下试试。我居然留下这个问题跑去复习了-。-估计坑了不少人。。
|
34
Shared 2015-11-02 21:35:54 +08:00
@codefalling 然后我的输入法是 com.baidu.inputmethod.BaiduIM.wubi
我自己改改吧 |
35
xcodebuild OP @Shared OK 感谢提供,我去加到描述里
|
36
teloti 2015-11-02 21:44:30 +08:00
在 MacVim 下使用正常,输入命令的时候会从 OS X Pinyin 切换到 com.apple.keylayout.US ,非常赞,感谢~
|
37
kikyous 2015-11-02 21:45:47 +08:00
装上了,现在正确的使用姿势是不是用 cmd+space 来切换中文和英文?
|
38
xcodebuild OP @kikyous 昂不是,正确的姿势是你在使用 VIm 的时候不用管输入法了,切换到 normal mode 的时候它会自动切换到英文,输完命令自动切回来。
当然你还需要安装这个 Vim 插件: https://github.com/CodeFalling/fcitx-vim-osx |
39
xcodebuild OP @kikyous 哈安心了不少,好用就好
|
40
xcodebuild OP @teloti 回错了,上面是回你的。。
|
41
Shared 2015-11-02 21:53:14 +08:00
@codefalling 弄好了,用起来果然很爽 XD
|
42
xcodebuild OP @Shared 那就好
|
43
kikyous 2015-11-02 22:07:10 +08:00
我以前是用 ctrl 切换中英文的,就是英文也是用搜狗输入法输入, 而且搜狗的初始状态是英文,这样
配合 set noimdisable , 也可以做到 normal 自动关闭输入法, insert 时进入搜狗的英文状态 不过还是用 lz 的插件爽。 |
44
xcodebuild OP @kikyous 哈哈其实对我来说 spacemacs 里这个更重要,因为 emacs 的情况要复杂很多。还是要感谢 fcitx.vim 和 fcitx.el 的作者
|
45
zealinux 2015-11-02 22:33:07 +08:00
支不支持鼠须管?
|
46
xcodebuild OP @zealinux 理论上是支持的,不过你需要用-n 找一下鼠须管的 imname ,然后更换参数重新安装
|
47
hqs123 2015-11-02 22:44:20 +08:00
这个其实早就有了
|
48
leebo 2015-11-02 22:47:37 +08:00
vim 党 必须支持 刚用了没有问题 neovim 也没问题 爽爽的 困扰多年的输入法切换问题 总算解决了 非常感谢!!!!!!希望持续更新
|
49
xcodebuild OP @hqs123 是的,我说过了我是写了个小工具让这些插件能直接在 OS X 上工作
|
50
xcodebuild OP @leebo 好哒后天有个考试我考完就来完善~
|
51
20015jjw 2015-11-03 00:09:41 +08:00 via Android
等 brew 包啦
|
52
xcodebuild OP @20015jjw 这两天有考试,如果没人帮我写的话估计要等我考完了
|
53
ewBuyVmLZMZE 2015-11-03 04:06:29 +08:00
不错的想法,但是我一直都是用的这货,在终端下自动强制英文,不使用中文输入法,因为我发现我在命令行下面没有输入中文的需求,不是 Vim 党、 Emacs 党还真是对不起了。 |
54
xcodebuild OP @syhily 哈这东西是专门用来解决 vi-mode 的痛点的(也解决了一部分 emacs 的痛点),终端没有太多中文输入自动英文确实够用了
|
56
poplarch 2015-11-03 12:26:43 +08:00
@codefalling com.googlecode.rimeime.inputmethod.Squirrel.Rime 能否帮忙编译支持鼠须管
|
57
sitin 2015-11-03 12:54:49 +08:00
已经用上了感谢楼主啊,以后用 vim 写文档了。
|
58
xcodebuild OP @poplarch 啊我就要出门去上课了,,大概等两三个小时后,,
|
59
lucifer9 2015-11-03 13:05:07 +08:00
已经习惯手动切换了...
|
60
xcodebuild OP @sitin 都是 vim 党〒_〒,我大 emacs 党都去哪了
|
61
xcodebuild OP @lucifer9 hiahia 我每次被卡住都想砸键盘
|
62
xcodebuild OP @poplarch 我冒着迟到的风险给你编译了一份简直要被自己感动了, https://github.com/CodeFalling/fcitx-remote-for-osx/releases/tag/0.0.1
不确定能不能用 |
63
FrankFang128 2015-11-03 13:27:22 +08:00
屌屌的。
|
64
Jeremial 2015-11-03 14:06:36 +08:00
非常感谢!!! 太赞了
|
65
zhugexiaobo 2015-11-03 17:22:46 +08:00
之前在 macvim 上用的 https://github.com/ybian/smartim 这个插件很好用,但是终端里的 vim 就失效了。
楼主这个很赞。 |
66
sitin 2015-11-03 18:33:32 +08:00
@zhugexiaobo 我以前也用了这个来,貌似按两次 ESC 就可以。 lz 这个一次都不用按,确实赞。 @codefalling
|
67
xcodebuild OP @sitin 其实我见到过 smartim 这个插件,隔了很长时间突然受到的启发,才想到要用 oc 去操作输入法
|
68
xcodebuild OP @zhugexiaobo 插件本身( fcitx.vim fcitx.el )本身不是我写的哦,我只是想起来通过一层假的 fcitx-remote 可以让他们在 osx 下工作。以此减少了不少工作量,所以才比较好用
|
69
fds 2015-11-03 18:52:22 +08:00
不错,很好!看了你的安装说明才开始使用 Vundle ,谢谢咯!
|
70
teloti 2015-11-03 19:19:06 +08:00
@codefalling 其实我不是 Vim/Emacs 的资深用户(笑),但是也使用 Vim 挺长时间了、局限于常规功能,上个月同时开始使用 Spacemacs ,看中的是 Emacs 的 Org-mode 和良好的整合,正在尝试从初学者阶段开始慢慢学习。 Spacemacs 上我现在也配置好了、依然很好用——虽然比如说在编辑器和 QQ 之中切换的时候会发现到了 QQ 常常需要切换回英文(不想开启各个程序独立保存输入法选择)、但是这个似乎也没有办法。
|
71
xcodebuild OP @teloti 我也是 spacemacs 用户,我忘了说, readme 里提到 emacs 里的那个 bug 可能并不存在,我问了下另外几个 emacs 用户没有碰到这个问题,所以你可以就按照 fcitx.el 说的那样配置试试。
至于你说的那个需求,,,似乎只能不同程序使用不同输入法才能办到了, |
72
goldenages1989 2015-11-04 10:37:02 +08:00
@codefalling 麻烦问一下 QQ 五笔的 imname 是什么,谢谢~
|
73
xcodebuild OP @goldenages1989 你先编译安装上,命令行里 fcitx-remote -n 就可以看到当前输入法的 imname 了。然后换上 imname 重新编译安装
|
74
goldenages1989 2015-11-04 10:48:31 +08:00
@codefalling 太棒了,感谢感谢~
|
75
xcodebuild OP @goldenages1989 话说它的 imname 是什么,我好加到 readme 里,以后整合进 brew
|
76
goldenages1989 2015-11-04 11:17:33 +08:00 1
@codefalling com.tencent.inputmethod.QQInput.QQWubi 这个
|
77
xcodebuild OP @goldenages1989 thanks
|
78
leebo 2015-11-04 13:10:02 +08:00
我使用过程中有个问题 我用的是百度输入法 我 esc 后 能正常切换输入法 但是我再次进入插入模式的时候 想用 shift 切换成英文输入 就不管用了 还有就是在选择模式下 我点 c 替换会特别的卡 这块我看到再执行你的那个脚本了
|
79
leebo 2015-11-04 13:10:44 +08:00
对了 忘记说了 我用的是 iterm vim 不是 gui 的 macvim
|
80
xcodebuild OP @leebo 刚考完试我回去看看,因为我不是 vim 用户之前没注意过
|
81
xcodebuild OP @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 党不能太理解。。 |
82
xcodebuild OP @leebo shift 切换的问题我也碰到了,,这貌似是百度自己的问题,现在换了 sogou
|
83
leebo 2015-11-07 14:37:53 +08:00
@codefalling 这个插件 选中多个替换的时候非常卡 https://github.com/terryma/vim-multiple-cursors
|
84
xcodebuild OP @leebo 新版本应该已经解决这个问题了啊, https://github.com/CodeFalling/fcitx-vim-osx/issues/2
|
85
leebo 2015-11-07 16:09:04 +08:00
@codefalling 非常感谢 已经更新了 但是还是有个小问题 就是 vim-multiple-cursors 输入 c 以后 他会切换到中文输入法 而不是保持原来输入法的状态
|
86
leebo 2015-11-07 16:11:01 +08:00
@codefalling 我搞错了 是我输入法默认的是中文 刚换了搜狗输入法还没改配置
|
87
xcodebuild OP @leebo ok~欢迎继续反馈。换了输入法需要 brew uninstall 然后在 brew install 一遍
|
88
realwangyibo 2016-11-04 11:56:19 +08:00
感谢开发!
从此不再纠结中文输入! |