vim中支持stardict取词

来源:岁月联盟 编辑:exp 时间:2011-09-14

1.安装,主要是安装插件sdcv
sudo apt-get install sdcv stardict stardict-tools
2.添加脚本
gvim下的挺完美的,因为vim里没有calltip的功能所以只能分割窗口了……
具体如下:
在~/.gvimrc中加入这些:
function Mybln()
let expl=system('sdcv -n ' .
/ v:beval_text .
/ '|fmt -cstw 40')
return expl
endfunction
set bexpr=Mybln()
set beval
效果如下,鼠标放在单词上显示!
在~/.vimrc中加入这些:
function! Mydict()
let expl=system('sdcv -n ' .
/ expand("<cword>"))
windo if
/ expand("%")=="diCt-tmp" |
/ q!|endif
25vsp diCt-tmp
setlocal buftype=nofile bufhidden=hide noswapfile
1s/^//=expl/
1
endfunction
nmap F :call Mydict()<CR>
在单词上使用Shift+f ,效果:
作者是在左边打开临时窗口的。如果大家想在右边打开临时窗口的话,将函数中 25vsp diCt-tmp 一句
更改成 botright vertical 25split diCt-tmp
 

nnoremap ,l ma"*yiw`a
使用:在用VIM编辑文件时,光标移动到想要翻译的单词上,按,l两键即可。
优点:1、stardict几乎所有桌面linux用户的必备工具,一般情况下都会开启。此种方法不用安装其他cli的翻译程序,也可以避免捕获重定向输出所造成的界面切换等等带来的不便。2、不需要鼠标取词,满足VIM用户双手不离键盘的使用习惯。
缺点:1、依赖于GUI,要求在本地或者是启用了X11 Forwarding远程SSH会话上完成,而且远程时需要配置远程的VIM的设置。2、stardict取词窗口出现的位置,依然是鼠标光标的位置,而不是终端中当前单词的位置。
====

作者“逆水行舟不进则退-敏少”