Cegah Vim dari membersihkan terminal setelah keluar

15

Jika aku melakukan:

$ less file

Dan tekan quntuk keluar less, saya masih melihat teks yang sama seperti yang saya miliki di layar ketika lessmasih berjalan.

Namun, jika saya lakukan

$ vim file

Dan :q, terminal saya kosong ...

Tangkapan layar terminal saya setelah berhenti lessdan vim:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Bisakah saya mencegahnya? Ini hanya di sistem Linux saya. Sistem FreeBSD saya benar-benar bekerja seperti yang diharapkan (menggunakan perangkat lunak yang sama / pengaturan di sekitar, TERMadalah xterm-coloruntuk kedua, vim -u NONEtidak membuat perbedaan).

Contoh yang ingin saya miliki:

masukkan deskripsi gambar di sini

Martin Tournoij
sumber

Jawaban:

18

Secara default VIM, saat mengakhiri, mengirim string yang dikonfigurasikan dengan opsi t_teke terminal hosting untuk memerintahkannya untuk menghapus layar. Untuk menghindarinya hanya :set t_te=dengan mengirim apa pun ke terminal dan menghindari pembersihan layar. Lihat :help terminformasi lebih lanjut tentang kapabilitas terminal.

toro2k
sumber
2

Saat Anda menggunakan xterm, Anda dapat menggunakan buffer layar utama dan alternatif untuk bertukar layar, seperti pada bagian ini dari .vimrc saya

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

Catatan: ^[ini tidak teks literal, itu adalah karakter escape, penggunaan Ctrl+ vdiikuti dengan Escmemasukkannya.

Perintah vim ini menambahkan perintah yang relevan yang bisa hilang dari entri terminfo linux. Info lebih lanjut di

:help xterm-screens
jalanb
sumber
Hm, sepertinya masih tidak melakukan apa-apa? Ini berfungsi seolah-olah saya menggunakan set t_te=, tetapi itu seharusnya melakukan lebih banyak, saya pikir?
Martin Tournoij