【问题标题】:Emacs: Set writeroom mode as defaultEmacs:将 writeroom 模式设置为默认值
【发布时间】:2015-01-06 17:08:46
【问题描述】:

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

非常感谢所有帮助!

【问题讨论】:

  • 您可以改为单独启用 writeroom 所做的每件事,因为它似乎被设计为可以打开和关闭,并且不支持所有主要模式。
  • 如果您解释了什么是白色房间,您可能会得到更快的响应。
  • 如果有人只想在您使用 org-mode 时将 writeroom-mode 置于 just 上,请在此处查看答案:emacs.stackexchange.com/a/52667/24053

标签: emacs elisp emacs24


【解决方案1】:
  • 如果write-room 模式是一个全球化的次要模式,那么只需在你的初始化文件中打开它。

  • 如果write-room 模式是次要模式并且没有它的全球化版本,您可以使用define-globalized-minor-mode 来定义这样的全球化模式。然后在你的初始化文件中打开它。

  • 如果 write-room 是主要模式,那么您可以自定义选项 auto-mode-alist 以针对任意数量的文件扩展名打开它。

  • 如果write-room是普通函数(不是主模式函数),那么你可以通过add-hook自动开启它,将其添加到你使用的主模式中。

    李>

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

【讨论】:

    【解决方案2】:

    既然您已经提供了link(尽管在your other question 中),我可以看到该库提供了一个全局次要模式,该模式仅在一组特定的可配置主要模式下打开。

    以下将重新定义做出该决定的函数,这样如果writeroom-major-modesnil(空列表),它将在任何主要模式下打开。

    我还更改了现有测试以检查派生模式匹配,而不是简单的完全匹配。这样'(text-mode) 的默认值不仅匹配text-mode,还匹配从text-mode 派生的每个模式。与您的问题不严格相关,但如果您发现“所有模式”方法过大,可能会有用。

    (eval-after-load 'writeroom-mode
      '(defun turn-on-writeroom-mode ()
         "Turn on `writeroom-mode'.
    This function activates `writeroom-mode' in a buffer if that
    buffer's major mode is a member of `writeroom-major-modes',
    or derived from one of those modes.
    
    If `writeroom-major-modes' is nil, activate `writeroom-mode'
    in ALL buffers."
         (when (or (not writeroom-major-modes)
                   (apply 'derived-mode-p writeroom-major-modes))
           (writeroom-mode 1))))
    

    您是否需要显式加载/要求该库取决于您的安装方式;但是由于您已经在使用该库,所以这可能已经被处理了,这意味着它只是以下情况:

    (global-writeroom-mode 1)
    

    或者(对于上述所有),您可以忽略提供的全局模式,并创建自己的替代全局次要模式,如How to enable a non-global minor mode by default, on emacs startup?中所述

    编辑:好吧,我玩过writeroom-mode,似乎有很好的理由说明它的全局模式有点保守。您可能仍然会发现“派生模式”改进很有用,但我怀疑尝试使这种特定模式 100% 全局化根本不会很好地工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      相关资源
      最近更新 更多