Emacs:将WriteeRoom模式设置为默认模式

Emacs:将WriteeRoom模式设置为默认模式,emacs,elisp,emacs24,Emacs,Elisp,Emacs24,我是emacs的新手,我想知道是否可以将WriteeRoom模式设置为始终打开。我希望它在我启动emacs和打开新缓冲区或在它们之间切换时打开 非常感谢您的帮助 如果write-room模式是全球化的次要模式,那么只需在init文件中打开它 如果write room模式是次要模式,并且没有全球化版本,则可以使用define globalized minor mode来定义此类全球化模式。然后在init文件中打开它 如果write room是一种主要模式,则您可以自定义选项自动模式列表,以便为任

我是emacs的新手,我想知道是否可以将WriteeRoom模式设置为始终打开。我希望它在我启动emacs和打开新缓冲区或在它们之间切换时打开

非常感谢您的帮助

  • 如果
    write-room
    模式是全球化的次要模式,那么只需在init文件中打开它

  • 如果
    write room
    模式是次要模式,并且没有全球化版本,则可以使用
    define globalized minor mode
    来定义此类全球化模式。然后在init文件中打开它

  • 如果
    write room
    是一种主要模式,则您可以自定义选项
    自动模式列表
    ,以便为任意数量的文件扩展名启用它

  • 如果
    write room
    是一个普通功能(不是主模式功能),那么您可以通过使用
    添加挂钩
    将其添加到您使用的主模式中来自动打开它


是的,如果您指定了什么是
write room
(用Lisp术语),那么回答您的问题就更容易了。

既然您已经提供了一个(尽管在中),我可以看到库提供了一个全局次要模式,它只为一组特定的可配置的主要模式启用

以下内容将重新定义做出该决定的函数,这样,如果
writeroom主模式
nil
(空列表),它将为任何主模式启用

我还更改了现有的测试,以检查派生模式匹配,而不是简单的精确匹配。这样一来,
'(文本模式)
的默认值将不仅匹配
文本模式
,而且匹配从
文本模式
派生的所有模式。与您的问题没有严格的相关性,但如果您发现“所有模式”方法过于苛刻,则可能会很有用

(加载后评估”写入eRoom模式
'(取消启用WriteeRoom模式()
“打开“WriteeRoom模式”。
如果出现以下情况,此函数将激活缓冲区中的“WriteeRoom模式”
缓冲区的主模式是“WriteeRoom主模式”的成员,
或者从这些模式中的一种派生出来。
如果“WriteeRoom主要模式”为零,请激活“WriteeRoom模式”
在所有缓冲区中。”
(当(或(非主要模式)
(应用“派生模式-p主模式”)
(写入eRoom模式1)
您是否需要显式加载/要求库取决于您如何安装它;但是,由于您已经在使用库,这可能已经得到了处理,这意味着它只是一个例子:

(全局写入eRoom模式1)
或者(对于上述所有模式),您可以忽略提供的全局模式,并创建自己的可选全局次要模式,如中所述


编辑:我对
WriteeRoom模式进行了一些尝试,似乎有很好的理由说明它的全局模式有点保守。您可能仍然会发现“派生模式”的改进很有用,但我怀疑尝试将此特定模式100%全局化并不能很好地发挥作用。

您可以单独启用WriteeRoom所做的每一件事情,因为它似乎被设计为打开和关闭,并且不支持所有主要模式。如果您解释了whiteroom是什么,您可能会得到更快的响应。如果有人只是想在您使用组织模式时打开WriteeRoom模式,请参阅此处以获取答案: