读者来稿: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 + \ ,如果你配置文件已经用过了,请选择另外的键。
[php]nmap
:!sdcv “ ” =expand(” ”) [/php] 现在在 vim 里读 README,遇到不会的单词就按 Ctrl + \ ,它就调用 sdcv 来翻译。爽!呵呵!:)
方法不错,
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中较容易更改字体.