我正在编写自述文件(在org-mode
中)以获取新的emacs模式,在安装说明中我们有如何基于每个文件启用模式:
or at the end of your file:
#+BEGIN_SRC emacs-lisp
! Local Variables:
! mode: f90-namelist
! End:
#+END_SRC
问题是,这会将README.org文件放入我们的新f90-namelist-mode
而不是org-mode
。使用# mode: org
将另一个局部变量列表放在文件的末尾不起作用,尽管使用
# -*- enable-local-variables: query -*-
让我接受或拒绝所有局部变量,然后emacs从.org
文件扩展名中确定主要模式。这样就排除了我想要包含的任何其他局部变量。
是否有更优雅的方法在文本中包含文字局部变量列表?
答案 0 :(得分:2)
引用Emacs manual:
局部变量列表的开头不应超过3000 文件末尾的字符,如果是,则必须在最后一页上 该文件分为几页。
因此,要确保忽略文本局部变量,请在真实的局部变量列表之前添加page break( Cq Cl ),或者在文件末尾添加comment it( Cq Cl )没有局部变量:
or at the end of your file:
#+BEGIN_SRC emacs-lisp
! Local Variables:
! mode: f90-namelist
! End:
#+END_SRC
^L
这适用于所有局部变量,而不仅仅是主要模式。
如果您不想按照@lunaryorn的建议导出分页符,只需导出{{3}}。
答案 1 :(得分:0)
以下是iostream标题的样子:
// Standard iostream objects -*- C++ -*-
...
这是不仅在Emacs中指定模式的标准方法, 但是在整个Linux上,对于所有选择解析它的编辑来说。 我建议你这样走。
此外,从我的观点来看,启用局部变量是 faux pas , 因为它可能导致Microsoft Word与VBA混乱:到处都是病毒。 源代码或文档不应自行执行。