Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8609370
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: LINUX

2009-04-15 11:37:39

测试环境: mandriva 2009.0 + emacs22
参考:
过程:
1).安装星际译王: sudo urpmi stardict
2).安装星际译王命令行工具: sudo urpmi sdcv
3).安装两套词典:中英和英中,当然你可以装的更多。
urpmi stardict-xdict-en-zh_CN
urpmi stardict-xdict-zh_CN-en
4).编辑~/.emacs文件,加入:
;; author: pluskid
;; 调用 stardict 的命令行程序 sdcv 来查辞典
;; 如果选中了 region 就查询 region 的内容,否则查询当前光标所在的单词
;; 查询结果在一个叫做 *sdcv* 的 buffer 里面显示出来,在这个 buffer 里面
;; 按 q 可以把这个 buffer 放到 buffer 列表末尾,按 d 可以查询单词
(global-set-key (kbd "C-c d") 'kid-sdcv-to-buffer)
(defun kid-sdcv-to-buffer ()
(interactive)
(let ((word (if mark-active
(buffer-substring-no-properties (region-beginning) (region-end))
(current-word nil t))))
(setq word (read-string (format "Search the dictionary for (default %s): " word)
nil nil word))
(set-buffer (get-buffer-create "*sdcv*"))
(buffer-disable-undo)
(erase-buffer)
(let ((process (start-process-shell-command "sdcv" "*sdcv*" "sdcv" "-n" word)))
(set-process-sentinel
process
(lambda (process signal)
(when (memq (process-status process) '(exit signal))
(unless (string= (buffer-name) "*sdcv*")
(setq kid-sdcv-window-configuration (current-window-configuration))
(switch-to-buffer-other-window "*sdcv*")
(local-set-key (kbd "d") 'kid-sdcv-to-buffer)
(local-set-key (kbd "q") (lambda ()
(interactive)
(bury-buffer)
(unless (null (cdr (window-list))) ; only one window
(delete-window)))))
(goto-char (point-min))))))))
测试: 进入emacs,C-c d,输入单词,就可以看到结果了。q键退出。

阅读(2329) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2009-09-03 17:07:52

请问你是怎么解决乱码问题的? 我的查出来是乱码,用了多种方法都没用。 vanjay23@163.com 谢谢