分页: 1 / 1

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

发表于 : 2008-12-27 21:59
emacs0921
不知道是不是火星了。反正我写这么个小函数,权当学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"))))