1

我正在org-mode为新的 emacs 模式编写自述文件(in ),在安装说明中,我们介绍了如何基于每个文件启用该模式:

or at the end of your file:

#+BEGIN_SRC emacs-lisp
  ! Local Variables:
  ! mode: f90-namelist
  ! End:
#+END_SRC

问题是这会将 README.org 文件放入我们的 newf90-namelist-mode而不是org-mode. 将另一个局部变量列表放在文件末尾# mode: org不起作用,尽管放

# -*- enable-local-variables: query -*-

让我接受或拒绝所有局部变量,然后 emacs 从.org文件扩展名中确定主要模式。这排除了我可能想要包含的任何其他局部变量。

有没有更优雅的方式在文本中包含文字局部变量列表?

4

2 回答 2

2

引用Emacs 手册

局部变量列表的开始距离文件末尾不超过 3000 个字符,如果文件被分成页,则必须在最后一页。

因此,为了确保您的 in text 局部变量将被忽略,请在局部变量的实际列表之前或在文件末尾添加一个分页符(C-q C-l)(如果您没有局部变量):

or at the end of your file:

#+BEGIN_SRC emacs-lisp
  ! Local Variables:
  ! mode: f90-namelist
  ! End:
#+END_SRC
^L

这将适用于所有局部变量,而不仅仅是主要模式。

如果您不想导出分页符,请按照@lunaryorn 的建议对其进行评论

于 2013-08-07T11:12:49.293 回答
0

iostream 标头如下所示:

// Standard iostream objects -*- C++ -*-
...

这是不仅在 Emacs 中,而且在整个 Linux 上,为所有选择解析它的编辑器指定模式的标准方法。我建议你走这条路。

此外,在我看来,启用局部变量是一种失礼,因为它可能导致 Microsoft Word 与 VBA 的混乱:病毒无处不在。源代码或文档不应自行执行。

于 2013-08-07T09:29:14.937 回答