基于扩展的 Emacs auto-minor-mode

2024-05-26

I found 这个问题 https://stackoverflow.com/questions/1299193/in-emacs-how-to-automatically-enable-a-minor-mode-based-on-buffer-name有点关于这个主题,但是有没有一种方法[在 emacs 中]可以基于以下设置设置次要模式(或其列表)扩大?例如,很容易发现主要模式可以像这样操纵

(add-to-list 'auto-mode-alist '("\\.notes\\'" . text-mode))

我最希望能够做的是

(add-to-list 'auto-minor-mode-alist '("\\.notes\\'" . auto-fill-mode))

链接问题的接受答案提到了钩子,特别是temp-buffer-setup-hook http://www.gnu.org/savannah-checkouts/gnu/emacs/manual/html_node/elisp/Temporary-Displays.html#Temporary-Displays。要使用它,您必须像这样向钩子添加一个函数

(add-hook 'temp-buffer-setup-hook #'my-func-to-set-minor-mode)

我的问题有两个:

  1. 有没有更简单的方法来做到这一点,类似于主要模式?
  2. If not, how would one write the function for the hook?
    1. 它需要根据正则表达式检查文件路径。
    2. 如果匹配,则激活所需的模式(例如auto-fill-mode).

解决方案的尝试是微弱且有缺陷的:

;; Enables the given minor mode for the current buffer it it matches regex
;; my-pair is a cons cell (regular-expression . minor-mode)
(defun enable-minor-mode (my-pair)
  (if buffer-file-name ; If we are visiting a file,
      ;; and the filename matches our regular expression,
      (if (string-match (car my-pair) buffer-file-name) 
      (funcall (cdr my-pair))))) ; enable the minor mode

; used as
(add-hook 'temp-buffer-setup-hook
          (lambda ()
            (enable-minor-mode '("\\.notes\\'" . auto-fill-mode))))

Trey Jackson 的答案似乎是一个非常强大且可扩展的解决方案,但我一直在寻找更简单的东西。以下代码将启用虚构的hmmm-mode编辑时.hmmm files:

(add-hook 'find-file-hook
          (lambda ()
            (when (string= (file-name-extension buffer-file-name) "hmmm")
              (hmmm-mode +1))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于扩展的 Emacs auto-minor-mode 的相关文章

  • 如何在 emacs 中自动回答是或否

    I binded function semantic symref to key C c C r like this global set key kbd C c C r semantic symref everytime I presse
  • SLIME 和 SWANK 入门:Lisp 连接意外关闭:连接被远程对等点断开

    我试图使用 slime connect 函数通过 sbcl 访问远程服务器 我遵循了 slime mov 电影中的所有步骤马可 巴林格 http www guba com watch 30000548671但在为 slime 创建 ssh
  • 基于扩展的 Emacs auto-minor-mode

    I found 这个问题 https stackoverflow com questions 1299193 in emacs how to automatically enable a minor mode based on buffer
  • 如何让Emacs显示与实际存储的不同的字符?

    我想使用Elisp为Emacs实现动态文本替换 仅替换显示 不替换实际存储的文件 例如 在 LaTeX 文档中 我想输入 alpha 然后让 Emacs 将其显示为 因此更容易阅读 但在结果中 tex文件 我还想要 alpha 代替 被拯救
  • 使用 emacs24 通过 smtp 使用 gnutls 和额外参数发送电子邮件

    我在使用 posteo 电子邮件帐户从 emacs24 发送电子邮件时遇到了一个相当奇怪的问题 但使用 gmail 和 gmx 似乎一切正常 这是我当前 emacs 配置的相关部分 感觉就像我将其排列了一百万次 结果始终相同 require
  • ess-rdired:我收到此错误“现在没有 ESS 进程与此缓冲区关联”

    To use ess rdired为了浏览对象 我按照 ESS 手册并将以下内容添加到我的 emacs autoload ess rdired ess rdired View R objects in a dired like buffer
  • 为什么 clojure-mode 用一些卷曲的 f 字符替换 fn ?

    我刚刚开始使用 emacs 入门套件和 clojure 模式 现在 当我输入或粘贴 fn 在 Clojure 模式下进入缓冲区 fn 字符在窗口中被替换为稍微卷曲的小写字母 f 缓冲区已正确保存 但这非常烦人 尤其是当我以艰难的方式发现该功
  • 将文本粘贴到 Macintosh 上的 emacs 中

    我使用的是 Macintosh 并且使用 终端 作为我的 shell 当我从任何窗口复制文本 通过鼠标拖动 然后鼠标右键菜单 gt 复制 然后将文本 鼠标右键 gt 粘贴 粘贴到运行 emacs 的终端中时 它不会充当粘贴 相反 它就像输入
  • 如何为 C# 模式配置 Emacs speedbar?

    我正在使用 EmacsC Mode http mfgames com linux csharp mode当我打开速度栏时 默认情况下不会显示任何文件 我可以在速度栏模式下选择 显示所有文件 但每个 cs 文件都会在名称旁边显示 如何正确配置
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi
  • Emacs 键绑定为“\C-'”

    如何将函数设置为 C 当我尝试这样做时 global set key C myfunct 它给了我 字符串中的修饰符无效 What is C 您希望在输入反斜杠 c 引号时发生一些事情吗 或者你的意思是C 控制 引号 如果是后者 我猜是 那
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • Emacs org-mode:使用 goto 界面重新归档

    我经常使用组织模式的捕获 重新文件 归档结构 但我对重新归档的工作方式有疑问 我使用 IDO 补全 这样当我重新归档树时C c C w我将所有可能的树重新归档到迷你缓冲区中 然而 这会导致大量可能的补全 而这些补全实际上可读性不太好 如果您
  • 如何更改 ESS 中的智能分配键(“_”到“<-”)绑定

    在 emacs ESS 中 如何正确更改 ess smart S assign 的键绑定 我尝试的是添加 custom set variables ess smart S assign key to my emacs 但这让奇怪的事情发生了
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • 用于将 PCRE 正则表达式转换为 emacs 正则表达式的 Elisp 机制

    我承认对喜好有很大的偏见PCRE http www pcre org regexps 比 emacs 好得多 如果没有其他原因 当我输入 时 我几乎总是想要一个分组运算符 当然 w 和类似的比其他等价物方便得多 但当然 期望改变 emacs
  • 如何显示在 Emacs 中 hippie-expand 命令创建的所有可能的补全?

    我想列出所有项目hippie expand创建 然后通过移动光标并按 RET 键从中进行选择 有什么办法可以做到这一点吗 这是我为此目的使用的 global set key kbd M i complete with helm requir
  • 我把 IPython 配置文件放在哪里?

    我已经尝试将 edit 编辑器设置为 Emacs 一段时间了 但进展非常缓慢 IPython 0 13 文档不清楚如何实际配置它 它告诉我通过添加将 EDITOR 设置为所需的编辑器 在我的例子中为 emacsclient c get co
  • 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

随机推荐

  • 将存储库移至另一台计算机

    我已将存储库从计算机 A 移至计算机 B 我已验证等待推送的提交仍在 B 上 但整个存储库 每个文件 均未暂存 我不想添加它们并将它们作为提交推送 因为从复制存储库到粘贴它 我没有更改每个文件 当我移动存储库时 它只有等待推送的提交 而不是
  • 新编译的应用程序需要 UAC/elevation?

    我有一个系统 我将其设置为普通的 UAC 并在我的 delphi 环境中编译名为 ka exe 的项目 并为其创建一个 installshield 项目 设置完毕 一切顺利 但每当我开始我的程序时 它都需要提升 而我不知道为什么 为了确保
  • Oracle 时间戳数据类型

    不带参数的时间戳数据类型和带参数 0 的时间戳数据类型有什么不同 timestamp VS timestamp 0 括号中的数字指定要存储的小数秒的精度 所以 0 意味着不存储任何一小部分秒 而仅使用整秒 如果未指定 则默认值为小数点分隔符
  • Java检测音频文件(mp3)

    我有这段代码可以读取 mp3 文件 import java io File import java io IOException import javax sound sampled AudioSystem import javax sou
  • “google.maps.event.addDomListener(窗口,'加载',初始化);”是什么意思意思是? [复制]

    这个问题在这里已经有答案了 这是什么意思 google maps event addDomListener window load initialize 我有函数 initialize 但我还添加了两个参数 经度和纬度 所以它是这样的 fu
  • Excel宏-将逗号分隔的条目拆分为新行[重复]

    这个问题在这里已经有答案了 我目前在一张纸上有这些数据 Col A Col B Col C 1 A angry birds gaming 2 B nirvana rock band 我想要做的是将第三列中的逗号分隔条目拆分并插入新行 如下所
  • NumPy:linalg.eig() 和 linalg.eigh() 之间的区别

    在 Python 3 应用程序中 我使用 NumPy 来计算对称实矩阵的特征值和特征向量 这是我的演示代码 import numpy as np a np random rand 3 3 generate a random array sh
  • 无法安装 JDK 9,因为“另一个 Java 安装正在进行中”

    我已经在 Windows 10 x64 上使用 JDK 9 一段时间了 但是当我去安装最新的早期版本 b174 时 我首先卸载了以前的版本 像往常一样 然后运行新的安装程序 它失败并显示一个消息框 显示 另一个 Java 安装正在进行中 您
  • 如何在公共交通中记录失败的消息?

    我正在寻找一个好的解决方案来在超出重试限制后立即记录失败消息 而无需处理错误队列 到目前为止我发现了什么 我可以继承InMemory入站消息跟踪器并覆盖是否超出重试限制 但此时除了 id 之外 没有关于消息本身的信息 我可以实施IInbou
  • 如何在 android 中的 facebook、whatapp、instagram 和其他平台上分享推荐代码

    我有一个屏幕 用户可以通过该屏幕在 Facebook WhatsApp Twitter 和 Instagram 上分享推荐代码 我已经有一个 API 来生成推荐代码 现在我正在浏览branch io 文档 但我能找到的只是深层链接 我无法理
  • 无法上传大于 8MB 的文件

    我正在尝试制作一个文件上传脚本 并且我已经为这个问题苦苦挣扎了一段时间 我已阅读并尝试了与此相关的所有答案 但无济于事 这是我在 php 中尝试过的 文件名 file uploads On upload max filesize 100M
  • 按共同日期对数组数据进行排序

    我有一个包含许多行和 3 列的 csv 文件 日期 代表和销售额 我想使用 Python 生成一个新数组 该数组按日期对数据进行分组 并且对于给定日期 按销售额对代表进行排序 例如 我的输入数据如下所示 salesData 201703 B
  • 使用 Click 在 python 中创建命令行应用程序

    我正在使用 Python 创建一个命令行应用程序Click http click pocoo org 接受名称作为输入的库 但如果未输入名称 则返回默认值 这是我到目前为止的代码 hello py import click click ve
  • 如何从窗体单元外部访问delphi控件?

    我试图从如下定义的过程中调用计时器的 Enabled 属性 procedure Slide Form TForm Show Boolean 并且没有固定的形式名称 例如 Form2 Timer 将表单的单位放入使用列表后 这可以工作 For
  • 当你不继承Rails 4中的ApplicationController时,如何包含respond_to?

    我在 Rails 4 1 2 应用程序中有一个 API 控制器 它不继承自应用程序控制器 我试图包含 respond to 方法并得到一个方法未定义的错误 所以然后我需要在顶部的操作包 如下所示 require action pack cl
  • 模态转换风格就像邮件应用程序中一样

    我试图实现模态呈现效果 其中呈现的视图仅部分覆盖父视图 如下图所示 我知道我可以通过使用实现自定义转换来实现这一点UIPresentationController 我不想重新发明轮子 所以在继续开发之前我想问一下 API 中是否有对这种转换
  • 如何只修改记录的一个字段而不完全重写它? [复制]

    这个问题在这里已经有答案了 It s the second time I m tackling this problem And for the second time this is while working with the Stat
  • 如何拥有在标准输出上更新的就地字符串

    我想输出到标准输出并让输出 覆盖 以前的输出 例如 如果我输出On 1 10 我想要下一个输出On 2 10覆盖On 1 10 我怎样才能做到这一点 stdout是一个流 io Writer 您无法修改已写入其中的内容 什么can更改的是该
  • 与 Array 相比,使用 Ruby NArray 有哪些优点?

    我刚刚遇到了 Ruby 的 NArray 库 请原谅我在问这个问题时的无知 与标准 Ruby Array 实现相比 使用 NArray 库有哪些优点 我已经看到 NArray 是面向数值计算的 但是看看 API 看起来好像只有一些针对数值的
  • 基于扩展的 Emacs auto-minor-mode

    I found 这个问题 https stackoverflow com questions 1299193 in emacs how to automatically enable a minor mode based on buffer