写了个在emacs中gnu global自动追加索引的扩展。

Vim、Emacs配置和使用
回复
emacs0921
帖子: 57
注册时间: 2008-09-13 23:53
送出感谢: 0
接收感谢: 0

写了个在emacs中gnu global自动追加索引的扩展。

#1

帖子 emacs0921 » 2008-12-27 21:59

不知道是不是火星了。反正我写这么个小函数,权当学lisp练手了。

把下面的代码添加到.emacs中,每当你保存当前文件之后,都会在你项目的根目录下执行"gtags -i"的操作,当然,前提是你首先安装了gnu global。

(add-hook 'after-save-hook 'my-gtags-append)

(defun my-gtags-append ()
(interactive)
(let (path buffer)
(save-excursion
(setq buffer (generate-new-buffer (generate-new-buffer-name "*rootdir*")))
(set-buffer buffer)
(setq n (call-process "global" nil t nil "-pr"))
(if (= n 0)
(setq path (file-name-as-directory (buffer-substring (point-min)(1- (point-max))))))
(kill-buffer buffer))
(if path
(progn
(setq path (format "%s." path))
(set-buffer (find-file-noselect path))
(start-process "gtags-name" "gtags-var" "gtags" "-i"))
(message "no gtags"))))
回复

回到 “Vim和Emacs”