有没有办法从标签表列表中定义的文件中获取所有标签?我已经设置了我的标签文件:
(setq tags-table-list '("~/project/TAGS"))
我已尝试(tags-completion-table)
,但它不包含所有标记。
答案 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
。