获取emacs中所有标签的列表

时间:2011-03-15 02:04:02

标签: emacs etag

有没有办法从标签表列表中定义的文件中获取所有标签?我已经设置了我的标签文件:

(setq tags-table-list '("~/project/TAGS"))

我已尝试(tags-completion-table),但它不包含所有标记。

2 个答案:

答案 0 :(得分:1)

如果您只有一个TAGS文件,M-x visit-tags-table ~/project/TAGS(visit-tags-table "~/project/TAGS")应将TAGS表加载到缓冲区中,这意味着Emacs可以像使用它一样访问它for,M-x tags-search

如果您向项目添加更多TAGS文件或具有多个项目,(setq tags-table-list '("~/project1/TAGS" "~/Project2/TAGS" ...))并且(visit-tags-table-buffer t)每次调用时都应访问下一个表,直到列表末尾。< / p>

编辑:

(defvar buffer-in-string)
(defvar string-list)
(defun write-buffer-to-string ()
  (interactive)
  (setq buffer-in-string (buffer-substring (point-min) (point-max)))
  (kill-buffer) ;; If the buffer is big, it makes sense to kill it,
                ;; since its contents are copied into the string anyway
  (setq string-list (split-string buffer-in-string " "))
)

这应该将缓冲区变为字符串。应该有一种更优雅的方式,但目前,这是我用我非常有限的elisp流利度写的最多。

答案 1 :(得分:0)

函数tags-completion-table为您提供了要使用的完成表。从文档字符串:

Build 'tags-completion-table' on demand. The tags included in the completion table are those in the current tags table and its (recursively) included tags tables.

tags-lazy-completion-table为您提供了一个完成功能。它使用tags-completion-table