有沒有人在編譯模式Emacs中添加了對ansi-color的支持?如果是這樣,顏色寫入程序必須檢查哪些屬性/屬性,以確保其活動終端支持ANSI轉義着色。編譯模式下的ANSI着色
回答
已經有一個將顏色應用到評論緩衝區的功能。你只需要啓用它在編譯緩衝區:
(require 'ansi-color)
(defun colorize-compilation-buffer()
(toggle-read-only)
(ansi-color-apply-on-region compilation-filter-start (point))
(toggle-read-only))
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
顏色寫程序應該檢查TERM
環境變量和terminfo數據庫來檢查終端支持的顏色。實際上,很多程序忽略了這一點,並依賴於用戶設置。 Emacs默認將編輯終端類型設置爲dumb
,但可以通過設置compilation-environment
變量覆蓋此類型。
它似乎並不完全工作。我使用'grep --color'進行測試,有時候較大的區域會變色,不應該是這樣。看起來Emacs並不總是檢測到禁用ANSI控制序列:( –
@Nordlöw,我已經解決了這個問題,並更新了該帖子。該函數試圖着色整個緩衝區,儘管它應該只過濾大塊雖然新版本更加強大和快速,但它仍然可能會被混淆,因爲它無法保證,一個進程不會在轉義序列中間切斷輸出。 – ivg
感謝您的幫助。 –
我的最佳解決方案不M-x grep
(僅適用於M-x compile
)污染:
(ignore-errors
(require 'ansi-color)
(defun my-colorize-compilation-buffer()
(when (eq major-mode 'compilation-mode)
(ansi-color-apply-on-region compilation-filter-start (point-max))))
(add-hook 'compilation-filter-hook 'my-colorize-compilation-buffer))
的
- 1. 着色器編譯錯誤
- 2. SharpDX編譯着色器
- 3. 着色器無法編譯
- 4. 着色器編譯錯誤
- 5. OpenGL 3.2:緩存編譯的着色器?
- 6. 條件編譯和編譯表達式時評價ANSI C
- 7. 編譯GLSL着色器打破其他着色器
- 8. 編譯-ansi -pedantic -Wall用gcc
- 9. Bash 4.4 vi模式着色
- 10. 編譯DirectX11着色器文件
- 11. 編譯着色器是否合適?
- 12. 着色器編譯器如何工作?
- 13. GLSL頂點着色器編譯錯誤
- 14. OpenGL編譯着色器被破壞
- 15. OpenGL着色器編譯優化?
- 16. 未能在swift中編譯着色器
- 17. 錯誤時,編譯着色器GLSL 3.30
- 18. GLSL片段着色器不會編譯
- 19. LWJGL GLSL着色器沒有編譯
- 20. 在PyQt中編譯着色器
- 21. GLFW - 無法編譯片段着色器
- 22. 發佈模式下的編譯錯誤
- 23. 黃瓜的ANSI顏色弄亂了emacs編譯緩衝區
- 24. iOS 4:在TCP模式下編譯PJSIP
- 25. 在vsReport模式下的ListView項目和行的着色
- 26. ANSI C編譯錯誤:「','令牌之前的預期表達式
- 27. 編譯C++的C模式
- 28. 在發佈模式下編譯時出錯但在調試模式下不能編譯
- 29. GLSL無法在沒有內插的情況下編譯着色器(平面)
- 30. ANSI C MultiPlatform編譯器和GUI
可能重複[黃瓜的ANSI顏色弄亂Emacs的編譯緩衝區(http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emacs-compilation-buffer) – legoscia