我有一個Emacs擴展,它創建一個名爲*erl-output*
的緩衝區。默認情況下,此緩衝區僅由fundamental-mode
創建。有沒有辦法在緩衝區上自動啓用compilation-minor-mode
?在Emacs中,如何根據緩衝區名稱自動啓用次要模式?
回答
自動改變主要模式,你可以添加以下到您的.emacs文件:
(add-to-list 'auto-mode-alist '("^\\*erl-output\\*$" . my-major-mode))
這不會爲你工作;這是爲主要模式選擇,你在次要模式選擇。
相反,你可以嘗試Hook。該手冊說:
一個鉤子是一個Lisp變量,其中包含一個函數列表,將在一些定義良好的場合調用。
因此,您應該能夠編寫一個函數,在需要時設置次要模式。看着List of Standard Hooks我想你應該試試temp-buffer-setup-hook
or temp-buffer-show-hook
。
你必須寫一個檢查緩衝區名,並設置(如果需要)模式的功能,並使用類似在.emacs
下將其添加到鉤:
(add-hook 'temp-buffer-setup-hook 'my-func-to-set-mode)
是的,這正是我所遇到的問題。 :-) –
@Adam - 我已經更新了我的答案,涵蓋了Hooks以及auto-mode-alist;希望他們會爲你工作。 –
我嘗試啓用主要模式沒有成功。在.emacs中我寫了: '(add-to-list'auto-mode-alist'(「^ \\ * erl-output \\ * $」。compilation-mode))' 它不是用'編譯-mode'。如果我用'(get-buffer-create「* erl-output *」)手動創建一個緩衝區,那麼該模式仍然沒有設置 –
由於您的分機創建緩衝,爲什麼不只是添加:
(compilation-mode)
(或(compilation-minor-mode)
如果你真的設置未成年人思想模式)在商建立*erl-output*
緩衝區的代碼。您可以編輯該模式的源代碼,或者使用有關創建例程的建議...
'編譯模式'似乎使緩衝區只讀。擴展偶爾寫入緩衝區。 –
啊,這是一個很好的理由,謝謝。 –
- 1. 如何根據文件名製作emacs自動名稱緩衝區?
- 2. 如何在啓動emacs/spacemacs時自動啓動shell緩衝區
- 3. 獲取Emacs中任何緩衝區的模式名稱
- 4. 如何在emacs中自動關閉自動加密模式緩衝區?
- 5. 如何在emacs中禁用tramp緩衝區的自動保存?
- 6. 的Emacs Lisp,如何獲得緩衝區的主要模式?
- 7. 當emacs啓動時,如何殺死* GNU Emacs *緩衝區?
- 8. 如何爲emacs中的ssh緩衝區提供名稱
- 9. ido模式區分直接模式緩衝區名稱
- 10. 啓動任何Emacs的緩衝區.c擴展與模板
- 11. 如何避免在Emacs中自動切換(只讀)緩衝區
- 12. emacs編譯緩衝區自動關閉?
- 13. 緩衝區本地覆蓋Emacs中的次要模式密鑰綁定
- 14. 如何恢復emacs緩衝區列表中的緩衝區?
- 15. 用於跟蹤緩衝區中變化的次要模式
- 16. Emacs + R:緩衝區名稱*/usr/local/bin/R *對於R緩衝區太長
- 17. 如何自動終止Emacs中終端出口的緩衝區
- 18. 在Emacs中使用js2模式緩衝區的正確縮進
- 19. 在模式行中更改緩衝區名稱的顏色
- 20. Emacs/Python:在線緩衝區與塊緩衝區模式下運行python-shell
- 21. 如何更改Emacs中主要模式的緩衝區局部變量?
- 22. Markdownize Emacs緩衝區
- 23. Emacs erlang緩衝區
- 24. VimL:如何通過緩衝區名稱知道Vim在哪個緩衝區中
- 25. 在Emacs小緩衝區
- 26. Emacs熱鍵用於從文件中區分緩衝區而不讀取(確認)緩衝區名稱
- 27. 如何在使用SML模式時清除Emacs中的SML緩衝區。
- 28. Emacs - 當我進入主要模式時,如何自動進入次要模式?
- 29. 如何將文件加載到緩衝區並在Emacs啓動時切換到緩衝區
- 30. 讓emacs grep緩衝區使用特定的emacs緩衝區來顯示命中
使用源代碼luke。 – jrockway
我看了'compile.el',但沒有發現任何有用的東西。 –
你爲什麼要'編譯小模式'?爲什麼不是主要模式? –