问题标签 [defadvice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
150 浏览

emacs - isearch-search-fun-default 的 defadvice 错误

这是我上一篇文章的继续(是否可以在 Emacs 中的 isearch-forward 之前预处理输入字符串)。我正在尝试jpkotta使用变量来实现答案isearch-search-fun-function。与其编写我自己的函数,我只是建议isearch-search-fun-default包含我自己的函数(isearch-str-forward并且isearch-str-backward,只是为了演示的目的),这样每次我输入“abc”时,isearch 都会突出显示并搜索 regexp a[ ]*b[ ]*c[ ]*

问题是,当我建议函数然后对“abc”进行 isearch 时,它给了我I-search: abc [(void-function nil)]. 但是,如果我将代码defadvise放入原始isearch-search-fun-default函数中,它就可以工作!所以我很困惑。Elisp 手册中说ad-do-it的只是原始函数代码的占位符,因此这两种方法,建议函数或更改原始函数,最终应该生成相同的代码。为什么我建议时出现错误?

0 投票
2 回答
2182 浏览

emacs - org-mode 导出时获取 src 块的内容

这是我正在尝试做的事情:

我有一段 JavaScript 代码,我想在从 org 文档生成的 HTML 中显示它,并且我希望在 HTML 页面中执行该代码。对于一个简单的例子,让它像

但这抱怨 undefined symbol block-name

我发现了这个问题,它非常相似,但是那里给出的答案对我不起作用。在 Emacs org-mode 中将源代码从一个代码块输入到另一个代码块

引用块的内容/名称的语法是什么?

编辑:

我越来越近了,但还没有:

这有两个问题。script变量的值是nil并且脚本标签被转义(尖括号被替换为<and>规则(如果脚本中有小于或大于符号,它们将被替换)。

编辑1:

差不多好了!

建议org-babel-get-src-block-info让它在本地存储代码块的内容,如果它被命名为变量<name>-text,那么我以后可以得到它。

示例用法:

转义是用:results html选项处理的——这会导致 Org 逐字插入 HTML。


这是失败的最小示例。

但这将起作用并产生“预期”的结果:

<script>your script could be here</script>在 eLisp 代码块的注释中输出和 JavaScript 代码。

0 投票
1 回答
109 浏览

emacs - 是否以及如何在 defadvice 循环中避免 eval

在下面的代码中应该避免 eval 吗?如果是这样,怎么做?或者这是使用 eval 更好的特殊情况之一?

对于上述成语的真实示例:

0 投票
0 回答
89 浏览

emacs - 杀死包含正在执行进程的缓冲区时令人讨厌的延迟

每次我在 Emacs 中杀死一个包含正在执行进程的缓冲区时,我都会在交互继续之前得到一个令人讨厌的约 2 秒延迟。当这种情况发生时,我会收到消息

棘手的问题是它只发生在我的 Emacs 配置中,而不发生在 Vanilla Emacs 中。我猜测延迟的发生是因为在我加载的一个或一些模块中激活了额外的钩子或建议。

是否有人识别错误消息并知道可能导致此问题的钩子或建议?我试过在网上搜索没有任何运气。

0 投票
1 回答
99 浏览

elisp - 建议消息不起作用

advice-addto之后message,会发出错误Wrong type argument: sequencep, #<subr message>信号。问题是什么?

0 投票
1 回答
197 浏览

emacs - 用建议覆盖交互功能

如何使用defadviceelisp 覆盖交互式输入?

例如,我试图停止ansi-term提示输入以下内容:

但是,即使explicit-shell-file-name设置正确,它仍然会提示。

0 投票
1 回答
279 浏览

emacs - 使用建议更改 elisp 函数体中的表达式

添加建议时,如何在 elisp 函数的主体中匹配特定表达式?具体来说,在下面的示例中,我想建议使用该函数来find-file-noselect代替find-file,即。该行将(find-file path)生效(find-file-noselect path)

我宁愿把它当作ad-add-function,但我想先让它工作。

0 投票
1 回答
505 浏览

emacs - Emacs 26 flymake:自定义模式行格式

我正在考虑在 Emacs 26 重写后从 flycheck 切换回 flymake。关于 flymake 困扰我的一件事是它在模式线上占用了多少空间。它有一个字符串Flymake加上结果。这似乎是一件愚蠢的事情,但这是 80 字符帧上模式行的 10%,只是为了一个名字!我有很多重要的信息想在我的模式行上看到,所以我尝试删除对我没有帮助的东西——我知道在我的缓冲区中启用了哪些次要模式等,因为我配置了它们!就我个人而言,我宁愿根本看不到名字,只看到结果,或者最多For FM

我可以用来diminish完全摆脱模式行信息,但我当然不希望这样:我希望能够看到我的缓冲区的状态。

我看了一下flymake.eldefun flymake--mode-line-format,似乎这个字符串不是可配置的,或者根本不容易更改。

有人对此有任何想法吗?