2010年06月05日 星期六 16:56
打开一个 buffer 来显示查询结果
首先现装
*sdcv*
这个是星际译王的字符版,自己下载安装,
sudo apt-get install sdcv
我用的fedora 无法yum install sdcv我就直接在网上下了个安装包自己安装。。
安装完成后把这段代码加入.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 (defaul t %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-confi guration))
(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-lis t))) ; only one window
(delete-window)))))
(goto-char (point-min))))))))
这段代码来自:http://lifegoo.pluskid.org/wiki/EmacsStardict.html
这样就可以启动它了C-c d就打开新BUFFER 显示你查询的单词
2010年06月06日 星期日 07:02
出了个问题,不论查什么单词都显示(比如查hello)
对不起,没有发现和 hello 相似的 :(
这个哪里出了问题,如何解决呢?
2010年06月06日 星期日 10:28
赞呀!!
2010年06月06日 星期日 12:28
1楼,你装词典没啊!?
2010年06月06日 星期日 12:38
@#3:必须的啊
Zeuux © 2024
京ICP备05028076号