Bagaimana cara mengeluarkan kode sumber yang disorot ke dalam file untuk digunakan di luar vim

9

Di tempat kerja saya, saya ingin melakukan presentasi bahasa khusus yang saya kembangkan untuk menyelesaikan beberapa masalah yang kami miliki. Untuk pengembangan yang lebih mudah, saya membuat file sintaks vim saya sendiri untuk bahasa ini.

Sekarang, saya perlu mempresentasikannya di komputer lain, yang tidak akan memiliki file sintaks. Sejauh yang saya tahu, itu mungkin bahkan belum menginstal vim (tapi saya ragu).

Akan sangat sempurna jika saya dapat less -rfile untuk mendapatkan sintaks yang sama yang saya lakukan di komputer saya sendiri.

Namun, saya tidak tahu bagaimana cara menyalin & menempel sembari mempertahankan warna (di terminal dari gnome di Debian), atau bagaimana cara menghasilkan file dengan penyorotan sintaksisnya sebagai karakter kendali baku dari vim. Saya lebih percaya diri dalam menemukan solusi dari vim, tetapi saya tidak tahu apa yang harus dicari untuk melakukannya.

Apakah Anda tahu cara mengeluarkan file yang Anda buka dengan penyorotan sintaksinya sebagai ANSI raw-control-chars di file lain?

DainDwarf
sumber

Jawaban:

13

Anda dapat menggunakan :TOhtmlperintah yang dikirimkan bersama Vim untuk membuat representasi HTML dari buffer (yang disoroti) (atau bagian dari itu). Kemudian, satu-satunya persyaratan Anda pada sistem target adalah browser untuk menampilkan file yang diambil. Lihat :help :TOhtmldetailnya.

Jika Anda bersikeras mengeluarkan urutan pelarian ANSI, Anda mungkin dapat memodifikasi plugin untuk melakukan itu, tapi saya kira itu akan menjadi upaya yang tidak sepele.

Ingo Karkat
sumber
3
YA TUHAN! Itu sangat sempurna, saya berharap saya bisa menjawab lebih dari satu kali.
DainDwarf
2

Program vimpager menyertakan skrip yang disebut "vimcat". Ini dapat menampilkan file dengan highlighing sintaks vim yang dikonversi menjadi kode pelarian ansi.

(Promosi diri tambahan: Saya menulis garpu untuk neovim: nvimpager .)

Lucas
sumber
1

[EDIT]: Sekadar memperhatikan bahwa kucing tidak melakukan trik saat menggunakan vim dan skrip, Anda dapat menggunakan 'head'.

guest@demomachine$ head -c [terminalsize] demo.typescript

EXAMPLE: guest@demomachine$ head -c 3710 demo.typescript

Jika mesin presentasi memiliki terminal warna yang tersedia dan berbasis * nix, Anda dapat merekam skrip

you@yourmachine$ script -c "vim [sourcefile]" demo.typescript

dan kemudian

guest@demomachine$ cat demo.typescript

cat mungkin tidak bekerja dengan vim dan skrip untuk masalah ini, lihat edit di atas.

di mesin presentasi. PETUNJUK: perhatikan ukuran terminal selama perekaman, harus lebih kecil atau sama dengan ukuran mesin demo.

Script juga memungkinkan Anda untuk merekam seluruh sesi terminal, sehingga Anda dapat merekam dan memainkan demo menggunakan scriptreplay.

Batu
sumber