在 VIM 中如何提高中文编辑效率

2021-02-24 22:12:54 +08:00
 Liler

在 VIM 中编辑中文时出现的问题:

编辑中文时需要经常切换输入法,影响编辑体验与效率,怎样才能提高在 VIM 中的中文编辑效率呢?

我想到的方法是自动切换输入法。 从其他模式下进入到中文编辑情时设置不同的快捷键( linux,iBus,假设第一个输入法是英文,第二个是中文)。

 " Change input method automatically
 let englishInputMethod='gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"'
 let chineseInputMethod='gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"'

 let editStrings = ['i', 'I', 'a', 'A', 's', 'S', 'o', 'O', 'gi', 'gI', 'c', 'C', 'R', 'gR', 'r', 'gr']
 for str in editStrings
     exec 'noremap <silent> <Leader>' . str . ' ' . ':call system(chineseInputMethod)<CR>' . str
 endfor
 let searchStrings = ['/', '?']
 for str in searchStrings
     exec 'noremap <silent> <Leader>' . str . ' ' . ':call system(chineseInputMethod)<CR>' . str . '<Down>'
 endfor
 inoremap <silent> <Esc> <Esc>:call system(englishInputMethod)<CR>

请问还有更好的方法吗? 在编辑中文时还会遇到什么问题,怎么解决的?

4927 次点击
所在节点    Vim
36 条回复
f165af34d4830eeb
2021-02-24 22:19:41 +08:00
这边建议换 vs code remote 。换 vsc remote 后,腰不酸了,腿也不疼了,腰椎间盘突出也好了!
Liler
2021-02-24 22:36:17 +08:00
@f165af34d4830eeb 提出问题不是太大,而且有了简单的解决方法了,并不影响继续使用 Vim 。

对 Vim 比较熟悉了,没有必要换成 vs code,感觉建议。
imkerberos
2021-02-24 22:43:49 +08:00
Plug 'CodeFalling/fcitx-vim-osx'
Liler
2021-02-24 22:46:08 +08:00
一个开发工具而已,没有那么神奇吧,使用了就“腰不酸了,腿也不疼了,腰椎间盘突出也好了!”,夸张太多了。
Liler
2021-02-24 22:54:15 +08:00
@imkerberos 用的是 linux,这个工具好像只适用于 osx
f165af34d4830eeb
2021-02-24 22:56:42 +08:00
@Liler 老梗啦。不过 vsc remote 感觉确实挺好用的,除了代码编辑功能,文件管理、git 集成、端口转发功能都挺实用的,适合我这种不太喜欢命令行但是又需要 linux 环境的人。
jdhao
2021-02-24 22:57:02 +08:00
linux 也有 vim 插件可以控制输入法状态,离开插入模式直接切换到英文模式,自己找找
newbieRenew
2021-02-25 07:26:52 +08:00
如果你熟练 86 五笔的话,可以用装个 VimIM 这个插件,提高切换效率。
dongyx
2021-02-25 08:19:55 +08:00
中文编辑是我用 Vim 唯一的痛点,相关插件几年前用过,但各有各的问题。后来自己思想发生了转变,不用任何插件,尽量原生默认,方便迁移。导致一度因为中文编辑问题想换 Emacs 。现在我写中文文档乖乖 Typora, Pages 。写代码,配置文件才用 Vim 。
lululau
2021-02-25 08:24:23 +08:00
用英文先写好,然后用 Google 翻译一下
itgoyo
2021-02-25 08:58:21 +08:00
老王好像出过个教程,老王呢,老王过来解答一下
hanxiV2EX
2021-02-25 09:08:43 +08:00
好像有个 vim 拼音输入法插件,不用使用系统输入法。
wjh876531738
2021-02-25 09:25:20 +08:00
可以考虑下增加类似 Emacs 的前后左右,在 insert 模式下也能便捷移动。

```
inoremap <C-f> <Right>
inoremap <C-b> <Left>
inoremap <C-a> <ESC>I
inoremap <C-e> <ESC>A
inoremap <C-d> <DEL>
```

关于中文的问题,个人觉得倒是还好,习惯输入完中文之后都会按下 shift 重置会英文。
tankb52
2021-02-25 09:56:07 +08:00
@newbieRenew
VimIM 支持很多输入方案,不光是 86 五笔。
zhuisui
2021-02-25 10:14:16 +08:00
yuancoder
2021-02-25 10:38:41 +08:00
无解,建议换个编辑器或者直接使用英文
darksword21
2021-02-25 10:58:51 +08:00
可以换成 emacs 然后用 emacs-rime .... 🐕️
jdhao
2021-02-25 11:01:29 +08:00
@dongyx https://github.com/ZSaberLv0/ZFVimIM
这是新出来的一个用 vim 实现的输入法,也是一种方式,可以试试。
lancelock
2021-02-25 11:15:51 +08:00
我的选择是,不输入中文

说实话我现在输入完中文后会立刻下意识切换成英文,已经形成肌肉记忆了
MaxTan
2021-02-25 11:17:54 +08:00
输入法问题不大,vim 写中文最痛苦的还是 e b 这些跳光标的操作吧,没有中文分词,习惯性点下 e 就跳到行尾了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755992

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX