vim & warna dari ANSI Escape Sequences: cara menampilkan dalam vim warna yang sama yang ditampilkan dengan perintah cat

8

Inilah yang saya lakukan: Saya menggema melalui warna Php seperti ini:

warna shell

php membuat output yang mengandung urutan pelarian ANSI yang menampilkan teks berwarna ketika ditampilkan melalui shell pada terminal saya. Anda dapat menemukan kelas php dan penjelasannya di sini .

Tetapi jika saya mengirim output saya ke file, dan mencoba untuk membacanya dengan vim itu tidak "berwarna", saya hanya dapat melihat karakter khusus. Apakah ada cara untuk menampilkan warna seperti yang ditampilkan di shell?

Olivier Pons
sumber
Mungkin membantu jika Anda bisa menyebutkan bagaimana dan dengan program apa Anda membuat file dengan teks berwarna, dan bagaimana Anda kemudian mencoba untuk menampilkannya.
John S Gruber
Maaf jika saya tidak cukup tepat. Kutip pertanyaan saya: Saya menggema melalui Php . Yaitu " php -f filename" dan saya bergema menggunakan kelas ini di sini: if-not-true-then-false.com/2010/…
Olivier Pons
Kemungkinan duplikat lintas situs: superuser.com/questions/358409/…
Ciro Santilli 冠状 病毒 审查 六四 事件 事件

Jawaban:

8

Output terminal akan diwarnai jika konten file akan dikirim "apa adanya" ke terminal, tanpa modifikasi apa pun. Namun, vim dan beberapa editor lain akan lolos dari meta karakter dalam teks dan sebagai gantinya mungkin menambahkan beberapa kode warna lain untuk penyorotan sintaksisnya, jadi ini tidak berfungsi.

Cobalah membuang file ke terminal dengan cat, ini harus bekerja. Beberapa editor atau pager seperti lessmungkin juga berfungsi.

Sunting: Saya belum menemukan cara untuk membiarkan vim "pass-through" semua kode escape, tetapi saya telah menemukan jawaban ini yang menghubungkan ke skrip vim ini, yang mem-parsing kode escape dan menggunakan sintaks vim highlighting untuk membuat ulang kode warna dalam output. Menurut deskripsinya, itu harus melakukan apa yang Anda inginkan (tapi saya belum mengujinya).

Philipp Wendler
sumber
Apakah ada cara untuk melakukan ini dengan vim (= tepat untuk tidak melarikan diri)?
Olivier Pons
@OlivierPons lihat hasil edit saya
Philipp Wendler
Itu tidak bekerja dengan lebih sedikit tetapi bekerja dengan lebih banyak: cat ~ / myfile.txt | lebih
wranvaud
Script semacam itu berfungsi. Ini adalah vimball, jadi untuk menginstalnya, tembak di suatu tempat, lalu di vim ': source ansi.vba'. Ini menangani banyak pelarian tetapi tidak semua - Solusi lain adalah 'kurang -R nama file'.
matiu
0

Saya baru saja menemukan bahwa ada plugin Vim untuk menangani karakter pelarian ASCI. Ini disebut 'Ansi Highlighting'. Jika Anda tertarik, harap kunjungi http://www.drchip.org/astronaut/vim/index.html#ANSIESC

Oh, Anda harus menggunakan 'Vimball' untuk membongkar ANSIESC.

Wawrzek
sumber