建立在Getting Emacs to untabify when saving certain file types (and only those file types)上,我想運行一個鉤子來解開我的C++文件,當我開始修改緩衝區時。我嘗試添加鉤子來加載緩衝區,但是這樣會使emacs啓動時自動加載的所有可寫入文件變得無法識別。 (對於那些想知道爲什麼我這麼做的人,這是因爲我工作的地方強制使用文件中的標籤,我很高興遵守這些標籤。問題是我標記了我的文件以告訴我當行太長時,但是正則表達式匹配行中的字符數,而不是行佔用多少空間。行中的4個製表符可以將它推到遠遠超過我的132個字符的限制,但行不會被標記。適當因此,我需要一種方法來tabify和untabify自動)如何修改緩衝區時運行Emacs鉤子?
3
A
回答
1
這是我加入到我的emacs文件untabify負載:
(defun untabify-buffer()
"Untabify current buffer"
(interactive)
(untabify (point-min) (point-max)))
(defun untabify-hook()
(untabify-buffer))
; Add the untabify hook to any modes you want untabified on load
(add-hook 'nxml-mode-hook 'untabify-hook)
+0
就像我在問題中所說的那樣,我不想要這樣的東西,因爲當emacs啓動時,我經常會加載數十個文件,即使我不需要它們,它也會通過並消除它們。當我關閉emacs時,所有的緩衝區都很髒,我需要保存它們。謝謝,不過。 – user45425 2008-12-12 16:28:36
3
以一個LO確定變量「before-change-functions」。
沿着這條線也許東西(警告:代碼未測試):
(add-hook 'before-change-functions
(lambda (&rest args)
(if (not (buffer-modified-p))
(untabify (point-min) (point-max)))))
0
0
和另一個切向的答案。
您提到您的正則表達式不足以說明何時滿足了132個字符限制。也許是一個更好的正則表達式...
此規則表達式將與行的時候有超過132個字符,假設標籤寬度4,(我覺得我得到了數學右)
"^\\(?: \\|[^ \n]\\{4\\}\\)\\{33\\}\\(.+\\)$"
最後加括號的表達式是超過限制的字符集合。第一個加括號的表達式是shy。
相關問題
- 1. EMACS緩衝區等於文件時如何重置緩衝區修改標誌
- 2. 如何修改輸出緩衝區?
- 3. Emacs erlang緩衝區
- 4. Markdownize Emacs緩衝區
- 5. 跟蹤緩衝區更改並在Emacs事件後觸發一個鉤子
- 6. 嘗試寫入只讀緩衝區時Emacs掛鉤
- 7. 如何恢復emacs緩衝區列表中的緩衝區?
- 8. Emacs/Python:在線緩衝區與塊緩衝區模式下運行python-shell
- 9. 錯誤運行ensime源緩衝加載鉤 - OSX與ENSIME和Emacs
- 10. 「re-replace-region:通過緩衝區修改掛鉤匹配數據」
- 11. Emacs意外地將緩衝區切換到臨時緩衝區
- 12. 當emacs啓動時,如何殺死* GNU Emacs *緩衝區?
- 13. 如何創建Emacs SQL緩衝區?
- 14. Cocoa Emacs打印緩衝區
- 15. Emacs緩衝區組/標籤
- 16. emacs:非連續緩衝區
- 17. 在Emacs小緩衝區
- 18. 所有emacs緩衝區中的行號
- 19. Emacs:不保存修改的緩衝區時不創建#這些#文件
- 20. 如何更改Emacs中的緩衝區編碼系統?
- 21. Ocaml緩衝區修改特定位置
- 22. 快速修改OpenGL VAO緩衝區
- 23. Vim緩衝區已被修改
- 24. 無法從Emacs shell緩衝區運行mysql
- 25. 關閉緩衝區後顯示Emacs緩衝區
- 26. 讓emacs grep緩衝區使用特定的emacs緩衝區來顯示命中
- 27. vim:每次緩衝區更改時運行一些代碼
- 28. 如何在啓動emacs/spacemacs時自動啓動shell緩衝區
- 29. 如何說服emacs在更改緩衝區時保留在同一幀上?
- 30. 爲什麼修改緩衝區片修改原始?
似乎更好的正則表達式可以解決您的問題。 – 2008-12-12 20:20:06