簡體   English   中英

Emacs:將 writeroom 模式設置為默認值

[英]Emacs: Set writeroom mode as default

我是 emacs 的新手,我想知道是否可以將 writeroom-mode 設置為始終打開。 我希望它在我啟動 emacs 以及打開新緩沖區或在它們之間切換時打開。

非常感謝所有幫助!

因此,既然您已經提供了一個鏈接(盡管在您的其他問題中),我可以看到該庫提供了一個全局次要模式,該模式僅針對一組特定的可配置主要模式開啟。

下面將重新定義做出該決定的函數,以便如果writeroom-major-modes nil (空列表),它將為任何主要模式打開。

我還更改了現有測試以檢查派生模式匹配,而不是簡單的精確匹配。 這樣, '(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)

或者(對於上述所有內容),您可以忽略提供的全局模式,並創建自己的替代全局次要模式,如如何在 emacs 啟動時默認啟用非全局次要模式中所述?

編輯:嗯,我玩過writeroom-mode ,似乎有很好的理由說明它的全局模式有點保守。 您可能仍然會發現“派生模式”改進很有用,但我懷疑嘗試使這種特定模式 100% 全局化根本不會奏效。

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

  • 如果write-room模式是次要模式並且沒有它的全球化版本,則可以使用define-globalized-minor-mode來定義這樣的全球化模式。 然后在您的 init 文件中打開它。

  • 如果write-room是主要模式,那么您可以自定義選項auto-mode-alist以針對任意數量的文件擴展名打開它。

  • 如果write-room是一個普通功能(不是主要模式功能),那么您可以通過使用add-hook將其添加到您使用的主要模式中來自動打開它。

是的,如果您指定了write-room是什么(用 Lisp 術語),那么回答您的問題會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM