Bisakah Vim menafsirkan kode pelarian warna terminal?

29

Banyak program CLI menghasilkan teks yang disorot dengan baik. Sementara sebagian besar dari mereka memeriksa apakah output akan ke file, beberapa menyertakan kode pelarian terminal. Saya suka output dengan kode pelarian, tetapi melihat file-file ini di Vim menyakitkan.

Bisakah Vim mengartikan kode pelarian ini ke dalam warna yang diharapkan? Jika tidak, bisakah Vim disetel untuk mengabaikan kode pelarian ini?

hajar
sumber

Jawaban:

28

Ada berbagai plugin yang memungkinkan Anda untuk melihat warna ANSI melalui kode melarikan diri:


Jika Anda ingin menghapus semua kode pelarian, Anda dapat menggunakan:

:%s/<1b>\[[0-9;]*m//g

Catatan: <1b>ini tidak teks literal, itu adalah karakter escape, penggunaan Ctrl+ vdiikuti dengan Escmemasukkan itu (itu juga dapat muncul sebagai ^[, tergantung pada Anda displaysetting).

Atau Anda dapat menghapusnya dengan sed; sebagai contoh:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -
Martin Tournoij
sumber
0

Jika Anda memiliki vim modern yang cukup yang memiliki fitur + terminal, Anda dapat melakukannya :term cat somefiledan Anda akan mendapatkan buffer dengan semua kode terminal ditafsirkan.

Ini mungkin bekerja lebih baik pada file besar daripada misalnya Colorizer, yang membuat vim saya sangat lambat ketika saya melepaskannya pada file 6000-line.

Marius Gedminas
sumber