Vim 上面的翻译插件,我最开始用的是这个 ,他可以直接回显翻译内容,简单明了,而且还用了job不阻塞当前编辑
ianva/vim-youdao-translatergithub.com![adf2eb2d67ea92e8ad596e56884407e6.png](https://i-blog.csdnimg.cn/blog_migrate/abf23d547e5637192113c4cffa488a0e.jpeg)
后来发现了这个,它除了在底部回显之外,还可以在窗口中显示,而且还加了语法高亮和翻译替换功能,于是我又切换到了这个
iamcco/dict.vimgithub.com![3258e376093ab807570ea5c1b831621b.png](https://i-blog.csdnimg.cn/blog_migrate/018a5f3e2a51989544d6f372a8dacd59.jpeg)
用着用着发现这个插件没有支持异步,有时网络慢的时候会严重阻塞编辑行为。大概作者太忙了,插件也好久没有更新。
再后来,今年三月份 Neovim 开发版加入了悬浮窗口特性,我就想能不能把异步和悬浮窗口一并加入到第二个插件里面。问了下作者的意向,他说现在这个不怎么维护了,不过可以提PR。
于是我就去看 floating windows 和 job-control 的文档,简单看完发现要在原插件基础上改的话,很多地方都要改,而且原插件是在 Vim 里面调 Python 之后又在 Python 里面调 Vim,要加异步比较复杂。所以我就试着从重写了一个,加了插件支持异步和浮动窗口,另外在原来有道翻译的基础上增加了Bing,谷歌翻译的接口,可以一次用多个翻译引擎。
食用指南
首先确保你的电脑安装了 Python(2或3),然后使用 vim-plug 安装
Plug 'voldikss/vim-translator'
安装完成后需要配置一些变量,如果不想再自定义,使用默认的也可以。
快捷键示例
" <Leader>t 翻译光标下的文本,在命令行回显
nmap <silent> <Leader>t <Plug>Translate
vmap <silent> <Leader>t <Plug>TranslateV
" Leader>w 翻译光标下的文本,在窗口中显示
nmap <silent> <Leader>w <Plug>TranslateW
vmap <silent> <Leader>w <Plug>TranslateWV
" Leader>r 替换光标下的文本为翻译内容
nmap <silent> <Leader>r <Plug>TranslateR
vmap <silent> <Leader>r <Plug>TranslateRV
其它具体用法,可以去 GitHub 查看 README 或者 插件的文档,地址在
voldikss/vim-translate-megithub.com![0ecdc12a45ec52578651f4be4ed4e844.png](https://i-blog.csdnimg.cn/blog_migrate/6c4efc1aa39574db7d637bb475e2cc31.jpeg)