Vim untuk mencetak file di terminal dan keluar

12

Saya ingin vim untuk melakukan ini untuk memiliki sintaks yang ditetapkan sebagai diatur dalam vim (atau tanpa perlu alat tambahan). Jadi alih-alih menggunakan cat file | <some_sh_tool>saya akan menggunakan vim +"some_opts" +"..." +q file. Masalahnya adalah bahwa vim mengembalikan layar sebelumnya saat keluar, tetapi menggunakan beberapa alat akses jarak jauh ini tidak terjadi sehingga pada dasarnya berfungsi sebagai kucing dengan highlight sintaks.

Jadi, apakah ini mungkin?

EDIT

Memikirkan lebih lanjut tentang ini saya pikir ini adalah hal yang hebat untuk dimiliki. Terlepas dari sintaks yang menyoroti fitur vim lainnya dapat digunakan saat menampilkan konten file, seperti nomor baris, spasi putih, pembungkus, dll ... terutama di dalam skrip dan karena vim ada di mana-mana.

majkinetor
sumber
2
gunakan layar GNU.
jordanm
1
itu tidak persis sama, Anda tidak dapat menggunakannya dalam skrip, selain itu, kadang-kadang Anda tidak dapat memilih.
majkinetor
1
Kemungkinan rangkap: stackoverflow.com/questions/13408134/…
echristopherson

Jawaban:

9

Anda dapat menonaktifkan layar alternatif, dengan mengatakan bahwa kode untuk mengaktifkannya untuk terminal ini adalah string kosong seperti:

vim --cmd 'set t_ti= t_te=' ...

Tetapi Anda akan menemukan Anda membutuhkan lebih banyak. Mencoba:

vim --cmd 'set t_ti= t_te=' +redraw +q file

sebagai permulaan.

Stéphane Chazelas
sumber
Mungkin membayar untuk menjelaskan cara membuat alias untuk perintah terakhir.
cjh
@ cjh: itu tergantung pada shell pengguna.
Bananguin
1
alias catx='vim --cmd "set t_ti= t_te=" +redraw +q'kemudian jalankancatx infile
Rahul Patil
Anda mungkin juga ingin menambahkan +"colo colorscheme"sebelum +redraw.
peterph
2
Tidak baik. Ini akan menampilkan halaman pertama dan keluar. Saya membutuhkannya untuk menunjukkan semua baris. Menambahkan + $ sebelum menggambar ulang hanya menampilkan halaman pertama dan terakhir.
majkinetor
2

Anda mungkin ingin melihatnya enscript- ia memiliki gaya penyorotan sintaks untuk beberapa bahasa dan dimaksudkan untuk digunakan sebagai filter, dan hasilnya tidak terbatas hanya pada urutan pemformatan pelarian ANSI saja - ia juga dapat menampilkan PostScript, HTML atau RTF.

peterph
sumber
1
Saya memiliki pengaturan vim seperti yang saya inginkan - warna, bahasa dll ... beberapa fitur sh untuk bahasa langka adalah kustom - Csound, AutoHotKey, dll ... Saya tidak ingin menulis file konfigurasi untuk alat lain lagi.
majkinetor
@majkinetor yakin, itu semua tergantung pada apa tepatnya yang ingin Anda gunakan.
peterph
2

Saya menemukan apa yang saya butuhkan dalam sebuah paket bernama vimpager .

Ini dikirimkan dengan utilitas vimcat.

majkinetor
sumber