有时我会将配置选项从Internet复制到我的.emacs
。有时他们不工作。
(add-hook 'laTeX-mode-hook 'turn-on-flyspell)
不起作用:
(add-hook 'LaTeX-mode-hook 'turn-on-flyspell)
(注意Latex中的大写字母)。但是,
(add-hook 'flyspell-mode-hook 'flyspell-buffer)
是对的。虽然Emacs在下方栏中显示“Fly”,但 M - : major-mode
显示乳胶模式而不是乳胶模式。
我如何知道如何编写emacs模式名称?
答案 0 :(得分:3)
听起来你实际上对模式的名称更感兴趣' 钩子变量而不是模式本身。
您有几种选择。我将根据发现flyspell-mode-hook
:
M-x apropos-variable RET flyspell RET
,然后在结果缓冲区中搜索hook
C-h v flyspell-
,然后制表符完成
M-x find-function flyspell-mode RET
会打开flyspell
的源代码,然后您可以搜索hook
如果您已配置Emacs以完成Emacs Lisp的完成,则只需输入
即可(add-hook 'flyspell-
进入.emacs
缓冲区并让Emacs建议有效完成
使用find-function
技术和latex-mode
(我完成标签),我发现我的Emacs版本调用了LaTeX模式函数latex-mode
。搜索LaTeX-
向我显示LaTeX-mode
是latex-mode
的别名。
答案 1 :(得分:1)
您使用 M - : major-mode
是好的,并为您提供正确的主要模式名称(即模式功能的符号名称)。
我不相信有一个标准功能可以列出当前缓冲区启用的次要模式的符号名称,但是你可以看到所有(已加载)次要模式带有 Ch v minor-mode-list
的模式符号,因此如果您发现需要,则验证名称并不难。
模式 hook 的符号名称实际上是模式的符号名称,后缀为-hook
。
次要模式还(另外)还有-on-hook
和-off-hook
。
钩子变量在不使用时不一定存在,但是这个命名在标准宏中是硬编码的,用于定义模式(并在适当的时间运行它们的钩子);并且不使用这些宏的模式总是遵循相同的约定,以确保一致性。