Emacs下使用Stardict

如果你是一个希望生活在emacs中的一员,你肯定会希望在emacs中完成所有的东西。而在这里,我就简单介绍一下emacs下使用stardict的方法。

 

当你阅读文档的时候,如果遇到某些生涩的单词,可以讲光标停留在所在单词出,同时使用C-c-d调用stardict,此时stardict会在emacs下新建一个缓冲区显示查到的内容。该stardict.el是我改写的。下面是具体的安装过程。

 

1 安装Stardict


下面的命令直接安装Stardict.

sudo apt-get install stardict

 


2 添加词库


直接搜索“stardict 词库”,就能找到词库的主页,按照它的说明即可。

 


3 安装stardict命令行程序


这个命令可以在命令行下使用stardict查询单词。

sudo apt-get install sdcv

 


4 添加stardict.el


下面是stardict.el,你可以把它放到~/.emacs.d/下。

 

;; Author : pluskid
;; Modified By : lishuo
;;
;; 调用 stardict 的命令行程序 sdcv 来查辞典
;; 安装: sudo apt-get install stardict
;;      sudo apt-get install sdcv
;;
;; 如果选中了 region 就查询 region 的内容,否则查询当前光标所在的单词
;; 查询结果在一个叫做 *sdcv* 的 buffer 里面显示出来,在这个 buffer 里面
;; 按 q 可以把这个 buffer 放到 buffer 列表末尾,按 d 可以查询单词

;; 注意自己编写.el的时候必须加上开头和结尾
(require 'cl)

(defun view-stardict-in-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") 'view-stardict-in-buffer)
           (local-set-key (kbd "q") (lambda ()
                                      (interactive)
                                      (bury-buffer)
                                      (unless (null (cdr (window-list))) ; only one window
                                        (delete-window)))))
         (goto-char (point-min))))))))

(provide 'stardict)

 

 

5 启用stardict

在~/.emacs下启用stardict

 

(require 'stardict)
(global-set-key (kbd "C-c-d") 'view-stardict-in-buffer)

 

转载于:https://www.cnblogs.com/lishuo-os-ds/archive/2012/09/18/2691202.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值