emacs之配置etags

emacsConfig/etags-setting.el

 1 (require 'auto-complete-etags)
 2 
 3 (setq ac-sources (append '(ac-source-etags) ac-sources))
 4 
 5 ;定义全局变量
 6 (defvar etags-src-dir nil)
 7 (defvar etags-saved-tagfile-name nil)
 8 (defvar etags-language-type nil)
 9 
10 
11 (defun etags-update ()
12   "Make ETAGS incremental update"
13 
14   (if 
15       (
16        and(null etags-src-dir)
17           (null etags-saved-tagfile-name)
18           (null etags-language-type)
19       )
20      (message "no tags updated for etags")
21      (with-temp-buffer
22       (shell-command
23        (concat "ctags" " " "--languages=" etags-language-type " " "-e -R -f" " " etags-saved-tagfile-name " " etags-src-dir)
24        (buffer-name))
25      )
26   )
27 )
28 
29 (add-hook 'after-save-hook 'etags-update)
30 
31 ;etags生成函数
32 (defun generate-etags ()
33   "Generate tag tables."
34   (interactive)
35   (let
36       (
37        (language-type "")
38        (src-dir "")
39        (saved-tagfile-name "")
40       )
41 
42     (setq 
43           src-dir
44           (read-from-minibuffer "source directory:" )
45     
46           language-type
47           (read-from-minibuffer "language type:")
48 
49           saved-tagfile-name
50           (read-from-minibuffer "tags save path:")
51     )
52  
53     ;设置全局变量保存起来
54     (setf etags-src-dir src-dir)
55     (setf etags-language-type language-type)
56     (setf etags-saved-tagfile-name saved-tagfile-name)
57     
58     (with-temp-buffer
59       (shell-command
60        (concat "ctags" " " "--languages=" etags-language-type " " "-e -R -f" " " etags-saved-tagfile-name " " etags-src-dir)
61        (buffer-name)))))
62 
63 ;加载etags
64 (defalias 'load-etags 'visit-tags-table)

 

ctags支持etags的模式

你可能感兴趣的:(emacs)