问题标签 [major-mode]

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 回答
95 浏览

emacs - 无法注册主模式

我在https://github.com/secondplanet/elixir-mode/blob/master/elixir-mode.el创建了一个主要模式,但是当我在我的 中需要它~/.emacs,然后尝试输入M-x elixir-mode时,有人告诉我该功能不存在。我究竟做错了什么?

0 投票
2 回答
155 浏览

regex - Emacs 将预处理器添加到主要模式

我正在尝试修改 fortran 主要模式以使用同事编写的预处理器。预处理器指令都以“。”为前缀。

例如:

类似于 C 的功能#define

到目前为止,我有:

不幸的是,这并没有突出显示“。” 这是可取的。此外,模式应该只在它出现在行首时才匹配。我试过了:

但这没有用。

任何有关如何进行此正则表达式匹配的帮助将不胜感激。

0 投票
2 回答
217 浏览

emacs - Emacs cc 主要模式在 Ubuntu 上没有显示颜色,但 lisp 模式显示

我该如何解决?

我打开 xemacs 并有可爱的颜色。我打开一个 .c 或 .cpp 文件并加载 cc 模式 - 可爱 - 但没有显示颜色。

安装的emacs,版本:

XEmacs 21.4 (patch 22) "Instant Classic" [Lucid] (x86_64-linux-gnu, Mule) of Mon Nov 21 2011 on allspice

0 投票
1 回答
341 浏览

emacs - 是否可以根据上下文更改 emacs 语法表?

我正在努力改进UnrealScript的 emacs 主要模式。(许多)怪癖之一是它允许使用这样的语法在虚幻编辑器中指定工具提示:

变量声明后的尖括号表示以管道分隔的 Key=Value 元数据对列表,元数据不加引号但可以包含引号——管道 ( |) 或右尖括号 ( >) 表示结束。

有没有办法让emacs语法表以一种有用的方式识别这种上下文相关的语法?我希望在这些变量元数据声明中以某种方式突出显示除了管道和直角括号之外的所有内容,但保留它们的正常突出显示。

现在,单引号字符被设置为引号分隔符(语法指示符"),因此 font-lock-mode 将这样的引号解释为开始一个带引号的字符串,它不在这个非常具体的实例中,所以它会错误地突出显示所有内容,直到它找到另一个据称匹配的单引号。

0 投票
2 回答
777 浏览

emacs - 如何编写像 dired 这样的 emacs 主模式

我找到了一堆关于为一种语言编写主要模式的信息(像这样),但是......我想沿着diredtetris- 使用缓冲区作为 GUI 的模式编写一个模式。

手册的“主要模式”部分,“基本主要模式”页面暗示它应该基于模式special-mode,但我找不到更多有用的信息

有没有关于编写special-mode派生模式的好教程?有什么好的基本“hello world”级别的例子吗?

0 投票
2 回答
482 浏览

emacs - 根据主要模式更改字体

有没有办法根据主要模式更改字体?如果是这样,怎么做?我通常使用比例字体,但只针对dired模式和shell模式,我想切换到非比例字体。这些模式没有特殊的面,只是使用默认的面,所以不能只通过设置字体来完成。我希望能够根据主要模式自动切换,也许使用钩子。

0 投票
1 回答
140 浏览

emacs - 主要模式挂钩配置影响其他缓冲区

首先让我说我对emacs很陌生。

我正在尝试为主要模式创建自定义。虽然我的设置正常运行,但我观察到当我打开一个新缓冲区时,该缓冲区主模式自定义正在应用于不同类型的其他缓冲区。

例如,如果我打开一个名为“Makefile”的文件,则会使用 makefile-mode 并应用我的自定义设置。如果我随后打开另一个文件,例如“test.c”,则使用 c-mode,但 makefile-mode 的自定义项与 c-mode 的自定义项合并。

我的 .emacs 文件的相关部分如下所示:

如何防止这些模式挂钩影响不同模式下的其他缓冲区?

谢谢!安德鲁

0 投票
3 回答
1934 浏览

emacs - 当前本地键盘映射的 Emacs 名称?

我正在编写一个 elisp 函数,它将给定键永久绑定到当前主要模式的键盘映射中的给定命令。例如,

命令和键序列从用户交互收集。但是,我无法生成与当前主要模式相对应的 KEYMAP 名称(例如“python-mode-map”)。

我试过这个函数(current-local-map),但是这个函数返回的是keymap对象本身,而不是它的名字。

我知道许多主要模式键映射是根据约定“主要模式名称”-模式映射“命名的,但是,情况并非总是如此(例如,python-shell-map),所以我宁愿我的代码不依赖这个约定。(我什至不确定如何访问当前主要模式的名称)。

(define-key ...)被添加到一个 init 文件中,所以虽然

(define-key (current-local-map) key command)

似乎工作,它不能作为初始化文件上的代码工作。

0 投票
3 回答
395 浏览

emacs - Emacs 键绑定在自定义主模式下不起作用

我正处于为 Emacs 创建主要模式以浏览 Stack Exchange 网络并与之交互的早期阶段。

涉及到几种主要模式,都具有类似于dired. 我查看了 的来源dired,并提取了我认为可行的内容:

但不幸的是,这似乎完全没有效果;像任何其他普通缓冲区一样简单地编辑缓冲区。如果不是这样,我如何实现单键键绑定?(顺便说一句,我敢肯定。这里肯定发生了其他事情。)

0 投票
2 回答
160 浏览

emacs - 如何获取 Emacs Lisp 中的所有段落?

我正在定义一种适用于以下性质段落的主要模式:

我想编写一个defun调用get-paragraphs,它将返回一个如下所示的列表:

如何在 Emacs Lisp 中像这样剪切文本:

是否有一个函数可以遍历它们(然后根据我的喜好将它们切碎)?我应该使用正则表达式吗?有没有更简单的方法?