gpt4 book ai didi

emacs - Lisp : creating a macro to cycle through a created list per document

转载 作者:行者123 更新时间:2023-12-01 02:33:09 24 4
gpt4 key购买 nike

假设我想创建一个新文档,并在列表中快速循环。
如果只是一个“词”,我认为应该有一个通用的方法来做到这一点。

例如:

"blue orange red yellow black white"

有谁知道如何在我创建时循环浏览这些项目:
\begin{orange}

...我想按一个键来循环浏览这个列表,用列表中的下一个项目替换橙色(然后以相反的方向执行此过程并不难)?

我用宏尝试了许多不同的想法(将列表放在文档的顶部,并进行了大量的 i-search),但这并不能解决问题。

我愿意将列表放在一个 elisp 文件中,尽管我不知道如何从 elisp 中使用该变量,比如 LaTeX 文档 (.tex)。

最佳答案

嗯,这可能是可能的,但这取决于您愿意为编写 eLisp 代码付出多少努力以使其工作。仅通过某些配置选项是不可能的。我会考虑通过向它添加新源来扩展自动完成功能,例如:

(defvar tex-tag-ac-sources
'((init . tex-tag-ac-init)
(requires . 0)
(candidates . tex-tag-ac-candidates)
(document . tex-tag-ac-documentation)
(match . tex-tag-completion-filter)
(prefix . tex-tag-ac-prefix-matcher)
(symbol . "s"))
"The source generator for autocompletion needed for interaction
with auto-complete")

哪里 tex-tag-ac-candidates , tex-tag-ac-documentation , tex-tag-completion-filtertex-tag-ac-prefix-matcher是自动完成的函数。 IE。 init 函数在指定前缀的自动完成过程开始时调用一次。它被称为无参数。候选人是负责显示筛选后的候选人列表的函数,它被称为无参数,您将在过滤器函数中过滤候选人,使用到目前为止收集的前缀和迄今为止的候选人列表调用它。最后,在文件的文本上调用匹配器函数以查看是否需要完成。所以,如果它返回 t ,调用 init,然后在您键入时循环过滤候选对象。

虽然这有点复杂......你肯定会完成你想要的任何事情。显然,如果源代码中的那些函数是您定义的,那么,如果您愿意,您可以动态读取完成参数或以某种方式动态生成它们。

啊,您可以通过以下方式将源添加到自动完成:
(auto-complete (list tex-tag-ac-sources))

如果在每次通话的基础上进行,或者
(setq ac-sources (list tex-tag-ac-sources <other sources>))

您可以在这里找到更多信息: http://cx4a.org/software/auto-complete/manual.html#Using_Source

关于emacs - Lisp : creating a macro to cycle through a created list per document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802609/

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