gpt4 book ai didi

emacs - 你在你的标准 etags --regex=.. 调用中放了什么?

转载 作者:行者123 更新时间:2023-12-01 12:44:45 26 4
gpt4 key购买 nike

当我为新的 Emacs“foo-mode”编写一些 elisp 代码时,其中包含如下一行

(fset 'foo (if safe-mode 'fast-over-open-gently 'fast-over-open-everything-and-not-care)))

然后使用 etags foo-mode.el 索引代码,etags 将不会索引 foo 的定义。这很烦人,因为 (fset ... 实际上是用来在这里定义一个函数,也是一个交互式函数。

etags 的手册页建议我可以使用一些 regex 参数来解决我的问题。最终,我设法偶然发现了正确的参数语法和顺序

etags --regex='{lisp}/(fset.*/' foo-mode.el

我现在正在考虑开发和维护我自己的用户相关的 etag 正则表达式扩展列表。可以开始并改进上面的正则表达式,使其匹配更少的 (fset .. 行。

我现在的问题是:对于 lisp 和 elisp 代码,您通常希望 etags 索引哪些其他模式?分享好点子!在网络上找到的大多数示例都在 etags 手册页中,它们不包括一个 lisp 示例:-(

PS:在这台机器上 etags --version 说“etags (GNU Emacs 22.1)”。

最佳答案

我在以下位置找到了一些示例: https://stuff.mit.edu/afs/athena/astaff/source/src-9.0/third/librep/Makefile.in

这是我正在使用的:

   --regex='/[ \t]+([ \t]*defun[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'        
--regex='/[ \t]+([ \t]*define[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'
--regex='/[ \t]+([ \t]*defmacro[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'
--regex='/[ \t]+([ \t]*defconst[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'
--regex='/[ \t]+([ \t]*defvar[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'

或者,只捕获“def”的一个非常有用:

   --regex='/[ \t]+([ \t]*def[ \t]+(?[ \t]*\([^ \t)]+\)/\1/'

关于emacs - 你在你的标准 etags --regex=.. 调用中放了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com