在 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>

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

4976 次点击
所在节点    Vim
36 条回复
knightdf
2021-02-25 11:31:36 +08:00
这不就是按一下 shift 的事么?
namelosw
2021-02-25 11:53:53 +08:00
用集成 VIM 的 Emacs
northisland
2021-02-25 11:55:17 +08:00
厉害了
Liler
2021-02-25 11:56:06 +08:00
@knightdf 如果对写代码或者英文熟悉了,写中文时有的时候会忘记按 shift,这时会多按几个按键,除非形成习惯。
以前我也是这么做的,但是感觉有点麻烦,想找个更好的方法
northisland
2021-02-25 11:56:44 +08:00
@darksword21 看起来很复古
Liler
2021-02-25 12:03:02 +08:00
@dongyx 原生的功能几乎可以满足编辑需求了,有些不能满足的可以写点脚本,虽然安装了一些插件,经常使用的就那么几个,还是少用插件好。

中文编辑我还是用 vim,对它熟悉了,越用越熟练,效率就会越来越高
Liler
2021-02-25 12:04:33 +08:00
@wjh876531738 以前我就是这样做的,感觉繁琐,就想法找个更好的方案
Liler
2021-02-25 12:07:12 +08:00
@zhuisui 昨天试用了下,总体还好,就是查找中文时需要切换输入法,还有个问题,推出编辑模式后者进入到 shell,想切换到英文输入法,需要按两次切换按键
mascteen
2021-02-25 12:18:53 +08:00
emacs evil
ooops
2021-02-25 12:26:12 +08:00
Rime 输入法的 asciimode 和 vimmode 就是解决这个问题的,不知道 Linux 上加了没,我当时只给 Squirrel 提了 PR
taogen
2021-02-25 12:29:02 +08:00
szzhiyang
2021-02-25 13:18:29 +08:00
换用 Power Keys 的「空格编辑」功能,早换早受益:

https://PowerKeys.GitHub.io/space
nightwitch
2021-02-25 13:31:54 +08:00
https://github.com/lilydjwg/fcitx.vim
回到 normal 模式的时候自动切英文,仅适用于 fctix
dongyx
2021-02-25 15:01:59 +08:00
@Liler MacBook 用 Caps Lock 切换输入法之后我就基本能忍了。以前是外接显示器 + HHKB Pro 2,写中文就太难受了。
hengstchon
2021-03-02 16:05:29 +08:00
你需要的是 https://github.com/brglng/vim-im-select 这个 vim 插件,完美解决你的需求,在中文输入法状态下进 normal 模式自动切成英文,进 insert 模式又回中文。
tensor1014
2023-01-14 07:52:31 +08:00
https://github.com/VSCodeVim/Vim#input-method
如果用 vscode 的话,可以直接哟能 vscode-vim 的配置

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

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

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

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

© 2021 V2EX