读者来稿:VIM 也玩取词翻译
感谢读者 lerosua 与我们分享在 VIM 中取词翻译的技巧:
本人当然不只是用 vim 来编辑文件,也有很多时候用来看英文文件的,如各种源码包里的 README、INSTALL、TODO 等。这里面就有许多不认识的单词了,用星际译王当然可以翻译了,只是运用了鼠标,效率差许多了。于是想到在 vim 里取词翻译。这其实没什么技术含量的。
- 安装一个字符下的翻译软件。 星际译王的子项目 sdcv、找个你装得上的版本装。源码装也只不过是 ./configure ; make ; sudo make install 三步而已。一些特定的发行版可能不能编译通过。所以说是找个你装得上的版本装。本人 Redhat AS 4 编译 0.40 通过。最新的 0.42 通不过。glibc 要求的太高了。然后安装词典。如果是已经安装过星际译王的,sdcv 会默认使用它的词典。都是同一作者嘛。
- 配置 vim。
在你的 ~/.vimrc 里加上这句。注意快捷键是 ctrl + \ ,如果你配置文件已经用过了,请选择另外的键。
nmap <C-\> :!sdcv “<cword>” <C-R>=expand(”<cword>”)<CR><CR>
现在在 vim 里读 README,遇到不会的单词就按 Ctrl + \ ,它就调用 sdcv 来翻译。爽!呵呵!:)
Read More:
- No related posts
方法不错, vim插件的设置应该为: nmap :!clear;sdcv =expand("") 我写了个py的翻译脚本,不用装sdcv就可以在vim上翻译了,
请问在终端中,sdcv如何显示音标呢?我用的桌面环境是kde,终端:konsole. 我按照本文中的设置,在vim中取词不成功.经过查找,正式设置如下:
""快捷键+"\"来翻译vim中的词. "nmap :!sdcv "" "=expand"("") "nmap :!sdcv ""=expand("") " "" use +F to translate function! Mydict() let expl=system('sdcv -n ' . \ expand("")) windo if \ expand("%")=="diCt-tmp" | \ q!|endif "25vsp diCt-tmp botright vertical 25split diCt-tmp setlocal buftype=nofile bufhidden=hide noswapfile 1s/^/\=expl/ 1 endfunction nmap F :call Mydict()
用konsole我不知道如何能正常显示sdcv的音标,但我用rxvt-unicode实现了.呵呵,在rxvt-unicode中较容易更改字体.