Saya ingin melihat (dan / atau mengedit) teks berwarna di emacs, seperti output dengan ls -l --color=always
, tree...
, atau apa pun.
Teks yang saya rujuk ada dalam file. Ketika saya membuka file itu di emacs, saya ingin dapat melihatnya berwarna, atau beralih untuk menunjukkan urutan pelarian ANSI (SGR).
ansi-color.el
tampaknya menjadi apa yang saya butuhkan, tapi saya belum bisa membuatnya untuk mewarnai pewarnaan dari urutan pelarian ANSi , tapi saya melihat huruf tebal biru untuk masing-masing byte byte (mis. ^A
dan ^[
) ... Saya tidak yakin apakah itu fitur ansi-color
, tapi saya pikir itu.
Menurut komentar ansi-color.el , ini dapat bekerja dengan string dan wilayah, tetapi bahkan itu tampaknya tidak berfungsi .. Misalnya fungsi ansi-color-apply-on-region
tidak dikenali oleh M-x
. Dikatakan, "Tidak cocok"
Saya telah menambahkan file .emacs(require 'ansi-color)
saya dan bahkan . Saya tidak mendapatkan kesalahan atau peringatan saat emacs dimulai, jadi saya mandek. (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Bagaimana saya bisa mendapatkan fungsi standar untuk bekerja, dan dapatkah itu dibuat untuk diterapkan secara otomatis ketika membuka file yang namanya berakhiran .col
?
Solusi berikut memungkinkan untuk membaca (dan tidak menyimpan) file yang mengandung urutan warna ANSI. Nama file harus memiliki
.txt
ekstensi.Masukan perpustakaan tty format di
~/.emacs.d/site-lisp/
, kemudian tambahkan baris ini ke Anda~/.emacs
init file.sumber
ansi-color
dan membawanya selangkah lebih maju ke, sebagaimana tautan Anda mengatakan, "... Tujuan dari tty-format.el adalah hanya untuk membuat * file-file tersebut dapat dilihat." * .. " file-file semacam itu " adalah file-file yang mengandung pelarian ANSI SGR urutan dan backspacing .. Terima kasih ..tty-format
. Tampaknya lebih unggul daripada fungsi pembungkus saya atau 3-mode turunan. :) Emacs kesulitan menangani banyak overlay, yaitu bagaimana ansi-color melakukan pewarnaan. Ada peluang untuk pengoptimalan lebih lanjut di sini, karena kita tidak perlu mewarnai seluruh buffer, hanya bagian yang ditampilkan.Terima kasih banyak @enzotib untuk solusi Anda!
Sama seperti tambahan untuk solusi Anda, berikut adalah cara untuk membuatnya secara eksplisit dapat dipanggil oleh pengguna:
dan otomatis untuk file selain hanya * .txt atau README:
Dengan cara ini Anda dapat mengganti urutan pelarian Anda dengan warna tanpa mengubah file asli, tidak seperti solusi yang digunakan
ansi-color-apply-on-region
.sumber