我在一些主要模式下有一個緩衝區,而在另一個緩衝區有一個模式文件本身(* .el)。編輯* .el文件後,我想查看第一個緩衝區中反映的更改,而無需重新啓動emacs。我試圖運行-mode函數,但它並沒有改變緩衝區。 謝謝如何重新加載emacs主模式?
回答
當您編輯模式的源代碼時,您必須確保您評估您更改的功能 - 將它們單獨保存到文件是不夠的,因爲內部Emacs仍將使用舊代碼。例如,您可以跳到使用M-C-e處理的函數定義的末尾,並使用C-x C-e評估函數。從那時起,Emacs將使用當前的定義。
這也適用於模式定義,但是通常情況下,使用Mx模式名稱調用模式的操作實現爲切換:您只需調用一次,即可激活該模式,再次調用該模式,取消激活該模式。所以你可能必須做兩次M-x模式名稱。
M-x load-file your-mode.el
或
M-x eval-buffer
然後打開和關閉的緩衝行爲,大概是通過這樣
M-x your-mode
M-x your-mode
或者,如果你的模式可識別的前綴參數
C-u 1 M-x your-mode
注意:當你lo在defvar
不會覆蓋現有值,因此如果您將呼叫中的值更改爲defvar
,則需要通過執行CMx來確定這些值是否爲devfar
表達式,或者使用devfar
表達式Mx:並在表達式中輸入。有關評估Emacs中的lisp的文檔,請參閱this page。使用(provide 'foo-mode)
那麼你可以
M-x unload-feature RET foo-mode RET
,然後再加載模式爲正常(使用foo-mode
如果你有一個適當的自動加載,或使用load-library
而不是切換模式,您也可以做'Mx正常模式' – scottfrazer 2010-12-06 02:15:46
如果你的模式提供了一個功能(因爲它應該!)或否則爲load-file
)。
我以前沒見過這個。該文檔指出,如果存在需要該功能的其他加載代碼,則會引發錯誤,但您可以使用前綴arg強制卸載。 – phils 2010-12-06 02:58:47
- 1. 如何僅以Emacs Haskell模式重新加載當前文件
- 2. emacs自動加載模式
- 3. 灰燼重新加載卸載模式
- 4. emacs如何應用主模式?
- 5. Emacs:添加主機名到模式行?
- 6. 重新加載emacs中的Clojure文件
- 7. VSCode。如何在編輯樣式後重新加載主題
- 8. 如何重新加載python子模塊?
- 9. Emacs c模式自動加載失敗
- 10. Emacs加載路徑scala模式
- 11. 重新加載模式確認功能
- 12. 如何讓Emacs自動重新加載標籤文件?
- 13. 如何在Emacs次要模式下重新綁定TAB和RET?
- 14. 如何在Emacs中重新設置CUA模式的密鑰集?
- 15. 重新加載配置而不重新啓動Emacs
- 16. 如何加速Emacs DocView模式?
- 17. 如何讓emacs停止加載毒蛇模式?
- 18. 重新加載Python模塊
- 19. grails emacs模式 - 「無法打開加載文件」「項目模式」
- 20. emacs如何加載包?
- 21. 如何重新加載TreeStore?
- 22. 如何重新加載UIView?
- 23. 如何重新加載JCarousel
- 24. 如何重新加載div
- 25. 如何重新加載NSFetchedResultsController?
- 26. 如何重新加載DataContext?
- 27. 如何重新加載UIWebView?
- 28. 如何重新加載recycleview?
- 29. 如何重新加載UIView?
- 30. NSManagedObject如何重新加載
對於(重新)評估elisp的所有不同方式,請參閱http://www.masteringemacs.org/articles/2010/11/29/evaluating-elisp-emacs/ – phils 2010-12-06 03:01:38