Emacser  - 讨论区

标题:[分享]Emacs 之 星际译王篇

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号