广告激活有什么作用?

2024-01-08

In an answer https://stackoverflow.com/a/8129994/357313, 我注意到:

;; Align with spaces only
(defadvice align-regexp (around align-regexp-with-spaces)
  "Never use tabs for alignment."
  (let ((indent-tabs-mode nil))
    ad-do-it))
(ad-activate 'align-regexp)

This sounds http://www.gnu.org/software/emacs/manual/html_node/elisp/Around_002dAdvice.html有前途,但是...它有什么作用?

I tried eval-region在代码块上。但对我来说,它所做的只是将以下内容添加到align-regexp docs:

建议使用此功能。

周围建议“align-regexp-with-spaces”:
切勿使用制表符进行对齐。

我似乎无法实际使用align-regexp-with-spaces,如果这就是效果......我错过了什么?

我使用 GNU Emacs 版本 24.0.96.1 (i386-mingw-nt6.1.7601)。


当我问这个问题时,我意识到我只是不明白咨询职能 http://www.gnu.org/software/emacs/manual/html_node/elisp/Advising-Functions.html.

我清楚地意识到:

  • align-regexp-with-spaces不是函数也不是变量,而只是一个名称(用于启用/禁用单个建议)
  • 自从(ad-activate 'align-regexp), align-regexp只是做了我“建议”它的事情:不要使用制表符

So: ad-activate激活建议,有效地改变原始函数的行为。伟大的!

我不明白为什么这比定义一个函数“更好”align-regexp尽管。但话又说回来,我对 Emacs Lisp 不太了解。

恐怕额外的文档行只会增加混乱......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

广告激活有什么作用? 的相关文章

  • 在 Emacs 中,如何更改迷你缓冲区完成列表窗口?

    我想为迷你缓冲区完成列表设置一个特定的窗口 目前 我有 3 个窗口采用此配置 在这种情况下 我想使用左下窗口作为迷你缓冲区完成列表 目前 它似乎是随机的一个窗口 大多数时候它喜欢使用最右边的窗口 它太薄了 无法在我不必水平滚动的情况下显示完
  • ido-mode 绑定被全局设置键屏蔽

    堆栈溢出 在过去的几天里 我试图稍微定制一下我的 emacs 但我遇到了我不知道如何解决的问题 我想做的是定义一个全局键绑定和一个 ido 模式键绑定 它们将使用相同的键来做不同的事情 Ido 模式键绑定定义如下 defun ido my
  • 在 Slime 中复制/猛拉整个 Lisp 表单

    有没有办法在 Slime Emacs 中复制 猛拉整个表单 例如 如果我有以下功能 myfunc lst myotherfunc lst 我想复制 复制 myotherfunc lst 当我的光标位于该表单的左括号或右括号时 在 Slime
  • Emacs 是否具有单词和行补全功能(如 Vim 的插入模式补全功能)?

    Vim 完成单词和行CTRL X P and CTRL L 有一个名为 Company mode 的 Emacs 插件 但该插件会干扰 Emacs 中的许多内容并导致冲突 与全局 linum 和 yasnippets 我知道我可以在 Ema
  • Emacs:导航目录和打开文件的好策略是什么?

    上周 由于必须应对 R 和 Perl 的不同 IDE 我再次感到愤怒 我不喜欢这两种 IDE 也没有使用它们来真正适应 所以我决定尝试 Emacs 我做出这个决定并非没有一定的恐惧 我的主要用途是使用 cperl 来使用 Perl 以及使用
  • 对齐 emacs lisp 中的正则表达式

    我正在尝试使用以下 elisp 函数来对齐文本 defun align Align lines by interactive align regexp region beginning region end 我正在尝试对齐以下文本 offe
  • 我可以在 Emacs 的 shell 模式下使用 PowerShell 吗?

    我可以在 emacs 的 shell 模式下使用 powershell 作为 shell 吗 How 请参阅 Jeffrey Snover 的博客文章在 Emacs 内运行的 PowerShell http blogs msdn com p
  • 如何使用 Emacs Lisp 检查文件是否存在?

    我希望 emacs 将打开时生成的文件标记为只读 我所缺少的难题部分是如何检查文件是否 存在 我目前有以下内容 get file extension defun get ext file name car cdr split string
  • 要求 Emacs 更清楚地突出显示哪个窗口(窗格)具有焦点(光标)

    假设我将 Emacs 窗口分成多个图块 例如 When I switch between tiles aka windows in Emacs to edit my files e g using C x o I can see on wh
  • emacs 中用于 plink (putty) 的新 comint mod:符号的函数定义无效

    我想对 plink putty 使用新的 comint 模式 我将代码放在 init el 中 但是如果 M x run plink 我收到以下错误 let 符号的函数定义为 void comint check proc path defv
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色
  • Emacs 键绑定为“\C-'”

    如何将函数设置为 C 当我尝试这样做时 global set key C myfunct 它给了我 字符串中的修饰符无效 What is C 您希望在输入反斜杠 c 引号时发生一些事情吗 或者你的意思是C 控制 引号 如果是后者 我猜是 那
  • Emacs org-mode:使用 goto 界面重新归档

    我经常使用组织模式的捕获 重新文件 归档结构 但我对重新归档的工作方式有疑问 我使用 IDO 补全 这样当我重新归档树时C c C w我将所有可能的树重新归档到迷你缓冲区中 然而 这会导致大量可能的补全 而这些补全实际上可读性不太好 如果您
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • 用于将 PCRE 正则表达式转换为 emacs 正则表达式的 Elisp 机制

    我承认对喜好有很大的偏见PCRE http www pcre org regexps 比 emacs 好得多 如果没有其他原因 当我输入 时 我几乎总是想要一个分组运算符 当然 w 和类似的比其他等价物方便得多 但当然 期望改变 emacs
  • Emacs java 模式:malabar、jdee 还是 eclim?

    我想使用 emacs 进行 java 编码 但我对使用什么模式进行 java 编码感到困惑 有 jdee 看起来像 ide malabar 据说他比 jdee 更精通 java 1 5 结构 和 emacs eclim 它是 emacs 的
  • 在 Emacs 中追逐标签后切换到原始缓冲区

    I use M 跳转到类 函数的定义 有时有多个类具有相同的标签 所以我需要使用C u M 跳转到多个文件 因此有多个缓冲区 现在我的问题是 如何快速回到原来的缓冲区 我知道C x b 但是您需要输入缓冲区名称 或者它只是默认为您提供您访问
  • 向上移动箭头不突出显示文本 emacs iterm2

    我最近有人帮忙修复M left等等 终端元箭头键绑定中的 emacs https stackoverflow com questions 10867199 emacs in terminal meta arrow keybindings 但
  • Emacs中跳转到声明的快捷键是什么?

    在 Visual Studio 中 编辑 C C 代码时 按 F12 按钮可以更轻松地跳转到函数或变量的声明 emacs 有快捷键可以做到这一点吗 嗯 事情比这更复杂一些 默认情况下 Emacs 不 了解 C 或 C 代码的函数声明 首先
  • Emacs 如何确定要撤消的工作单元

    When you enter the command C Emacs undoes some part of your recent changes to a buffer When you enter C again it undoes

随机推荐