it-swarm-id.com

Bagaimana cara membuat warna tampilan Vim seperti yang ditunjukkan oleh kode warna?

Singkatnya, saya berupaya mengganti less dengan vim (vimpager). Saya memiliki pengaturan untuk skrip untuk memuntahkan warna (dan tebal dan semuanya bagus) kapan saja mereka bisa. less memahami kode warna dan menampilkannya dengan baik. Bagaimana saya bisa membuat vim mengurai kode dan menampilkan warna/tebal seperti yang dilakukan less?

62
phunehehe

Dua jawaban:

Yang singkat: Anda ingin menggunakan skrip vim AnsiEsc.vim . Ini akan menyembunyikan urutan pelarian ANSI yang sebenarnya dalam file Anda, dan menggunakan penyorotan sintaks untuk mewarnai teks dengan tepat. Masalah dengan menggunakan ini dalam pager adalah Anda harus membuat vim mengenali kapan harus menggunakan ini. Saya tidak yakin apakah Anda selalu dapat memuatnya, atau apakah itu akan bertentangan dengan file sintaks lainnya. Anda harus bereksperimen dengannya.

Sebuah jawaban panjang: Yang terbaik yang dapat Anda harapkan adalah solusi parsial non-portabel. Kurang benar-benar tidak memahami urutan pelarian terminal, karena ini sebagian besar tergantung terminal, tetapi sedikit yang bisa mengenali (subset dari) ini, dan akan tahu untuk meneruskannya ke terminal, jika Anda menggunakan -r (atau -R) pilihan. Terminal akan menginterpretasikan urutan keluar dan mengubah atribut teks (warna, tebal, garis bawah ...). Vim, menjadi editor daripada pager, tidak hanya meneruskan karakter kontrol mentah ke terminal. Perlu menampilkannya dalam beberapa cara, sehingga Anda benar-benar dapat mengeditnya. Anda dapat menggunakan fitur vim lainnya, seperti penyembunyian dan sintaks untuk menyembunyikan urutan dan menggunakannya untuk mengatur warna teks, namun, ia akan selalu menangani hanya sebagian dari urutan terminal, dan mungkin tidak akan bekerja pada beberapa terminal .

Ini benar-benar hanya satu dari banyak masalah yang akan Anda hadapi ketika Anda mencoba menggunakan editor teks sebagai pager.

45
Jan Hlavacek

Sekarang dengan vim 8 Anda dapat menggunakan mode terminal :terminal dan kemudian di terminal itu lakukan cat myfile dan kembali ke mode normal dengan Ctrl-w N. Ini akan menampilkan kode warna ANSI dengan benar. Dengan mengotomatiskan langkah-langkah ini dan membaca dari input standar alih-alih file, seharusnya dimungkinkan untuk menggunakan vim untuk menggantikan yang lebih sedikit.

4
rubystallion