Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 2.13 KB

2018-10-06-vim-cn-im.md

File metadata and controls

27 lines (19 loc) · 2.13 KB
layout title subtitle author header-style tags
post
Vim 与中文输入法
Using Vim with non-english input method
Hux
text
Vim

Update: 我最后还是放弃在 Vim 模式下输入中文了,mental model 的 cost 太重了(


我相信很多中文世界的 Vimer 都遇到过这个烦恼,�在 vim 的 insert 模式时可能突然想输个中文,输完之后会本能的直接 esc 接 normal 模式操作,结果发现跳出来的是中文输入法……�对于� vscode,我一般会在几次错误之后被逼到退出 vscode vim 模式,而对于�终端中用的 neovim,就只能尽量不输入中文了。

���为了满足我 1% 用 vim 输入中文的场景(比如写博客),�我还是想看看有没有什么解决方案,Google 出来�的解决方案基本是:在退出 �insert 模式时记住当时的输入法,并自动切换到默认输入法(一般是英文)给 normal 模式用,并且在下一次进入 insert 模式时再切换回来。

�原生 vim 的话,可以使用 smartim 插件,原理是调用 im-select 这个 CLI 工具来切换输入法。

对于 VSCode-vim 的话,smartim 的移植也在近期的 PR 中被 merge 到了插件里,�详情见文档的这部分配置,需要指定一下默认输入法和 im-select 的 binary 路径就好。


� �不过实话说,在 vim 中编辑中文的效率和体验和英文比都是大打折扣的。因为中文分词难度太高,不像英文可以简单依靠一个 split " " 搞定。所以�其实无论 vim(word,begin,end),emacs 还是�操作系统自带的(比如 macOS 中的 alt + 箭头) �「按词�移动」功能对于中文都仅仅是跳转到下一个空格处而已,对于中文来说基本就是下一句了……其他常用操作诸如 f/�, replace, till 也都无法很好的工作。

不过也算聊胜于无吧,由于我常用 HHKB,�能用 vim 操作的一个子集(hjkl, o, A, I, v etc.)可能也比按住 Fn 的方向键好用……