Vim 中英文输入切换

今天在整理 .css 和 Markdown 文件的时候(尤其是 Markdown),碰到中英文混输的情况,我用的是百度输入法,输入完中文,按 进入正常模式,进行指令操作的时候总是会弹出百度输入法的选词框,看起来特别不舒服,用起来也特别别扭,很多指令没法执行不说,还得去删除百度输入法输入框里的字,于是开始 Google 各种解决方法,找到两个靠谱的.

VimIM

Google Vim 中文,唰地一下出来的基本上全是 VimIM 的东西,看来这个插件的使用还是非常广泛的,广大程序猿对 VimIM 的评价也非常高

4129b85bgw1edekyswsorj20hn0claax

这是在豆瓣上大家们对 VimIM 们的评价,看的出来在它刚出来那会确实是火了好一阵.不过那都是 09 年了.

VimIM 的项目地址:GoogleCode,或者 Vim

VimIM 的安装,就跟所有 Vim 插件一样简单粗暴

github 将文件下载下来,然后将 plugin 下的文件放到 ~/.vim/plugin 中,如果 .vim 文件夹中没有 plugin,就自己创建一个,直接拖过去也行.

这里面包含的文件有插件文件和词库,.txt 结尾的两个文件一个是英文词库,一个是五笔词库,还有一个 vim.gbk.bsddb 我愣是没搞清楚是什么东西,不过网上有人提供了拼音词库,下载后放入 plugin 文件夹既可使用.

接下来是引用:

怎么用这个东西来在 Vim 中输入中文呢?

【经典动态模式】
1. :let g:vimim_static_input_style=0 (缺省).
2. 输入过程中一直出选择项目,或者说,每敲一个字母就蹦出一个选词菜单。
3. 空格键上汉字,回车键上英文。用数字键确认汉字。ESC 键输出英文并退出 VIM 插入模式。
4. 在中文输入模式时,自动开启中文标点,若想输入英文标点,可先按 CTRL+6 后再输入。

【Sexy 静态模式】
1. :let g:vimim_static_input_style=2
2. 包括〖点石成金〗全部功能.CTRL+开启,再按 CTRL+关闭,开启时光标是绿色的。
3. 空格键出选词菜单,数字或者字母选词,再空格键上词。
4. 英文标点之后,空格键出中文标点.
5. 回车键上英文,上英文后再按回车上空格。
6. 想回到英文输入状态,可按 CTRL+6.
7. 在我的电脑里面,在这个模式下输入编码后光标偶尔不会在最后一个字符后面,按空格后正常,如果你也有这样的情况,请按下空格键吧。

我自己试用了以后,认为具体操作是这样的:

  • 打开 Vim
  • 输入 gi 进入中文编辑模式
  • 按 进入动态输入模式(也就是输入字母出现候选框)
  • 选择文字

不过最后才发现的是,这玩意说白了是在 Linux 下折腾的东西,在 Mac 上折腾,有些水土不服,并且,这玩意于 09 年开发,到现在也没见更新什么的,在 Vim 上使用总是有很大的延迟,并且这个输入法并不好用,最终放弃了这个方法,转下下边的解决方案.

set noimdisable(力荐)

这也是 Google 到的,仅在 .vimrc 中添加一行配置既可完美解决

autocmd BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set noimdisable

autocmd 是一个自动监测命令,BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}则是设定为仅当打开的文本是 Markdown 的时候才执行,set noimdisable 则是切换输入法的指令.当然你可以设置任意你想设置的文件类型.

这样设置时,当你打开 Markdown 文件时,进入插入模式会自动切换到百度输入法(对我来说),按 进入正常模式的时候又会切换回系统默认英文输入法,而当打开其他类型的文件时,则不会执行这个操作.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s