Bagaimana cara membuat Vim selalu menampilkan beberapa baris setelah EOF?

15

Di Vim, saya tidak suka bagaimana ketika Anda mencapai ujung file itu menempatkan baris terakhir di bagian bawah layar.

Apakah ada cara untuk membuat baris terakhir seperti 10 baris di atas bagian bawah layar dan hanya membuat garis kosong di bawahnya?

Miguel Vera
sumber
2
Ketika kursor Anda mencapai baris terakhir file, jika Anda zzmenekannya akan menggambar ulang layar dan memposisikan garis saat ini di tengah jendela yang akan menampilkan beberapa ~baris setelah EOF.
user9433424
ya, tetapi jika Anda memindahkan kursor lagi memposisikannya di bagian bawah lagi.
Miguel Vera
3
Sepertinya Anda memiliki scrolloffopsi yang ditetapkan. Coba :set scrolloff=0dan perilaku itu harus berubah.
Tumbler41
1
Anda dapat membaca jawaban Anda di sini: stackoverflow.com/questions/7406814/... Ada lebih banyak jawaban untuk ini, pada dasarnya itu tidak mungkin, hanya dengan solusi.
mike
Memang tingkah lakunya telah diperbaiki! terima kasih
Miguel Vera

Jawaban:

16

Anda dapat menggunakan ctrlEuntuk menggulir ke bawah file Anda, ketika Anda berada di akhir file itu akan menambahkan baris "virtual" sehingga baris terakhir file tidak di bagian bawah jendela.

Selain itu Anda dapat menggunakan opsi scrolloffuntuk selalu membiarkan beberapa baris setelah kursor Anda, tambahkan ini ke .vimrc:

set scrolloff=10

Untuk lebih jelasnya lihat :h 'scrolloff'dan :h CTRL-E.

statox
sumber
1
Sayangnya, pengaturan scrolloffke 10 masih tidak akan menampilkan garis SETELAH EOF seperti OP inginkan.
Tumbler41
Memang, itu sebabnya saya menyarankan menggunakan CTRL-Edan scrolloffhanya "tambahan". Sekarang ini adalah solusi parsial, OP bebas untuk tidak menerimanya karena tidak sepenuhnya menjawab pertanyaan.
statox
1
Meskipun itu hanya solusi parsial saya pikir CTRL-Eadalah apa yang saya cari. Saya akan senang jika ada cara untuk menampilkan garis setelah EOF secara otomatis.
Miguel Vera
@Miguel Saya senang ini sesuai dengan kebutuhan Anda. Saya pikir itu mungkin untuk membuat pemetaan yang akan memanggil <C-e>ketika Anda gulir ke bawah tapi saya benar-benar tidak yakin itu akan berfungsi dengan benar ... Saya akan mencoba dan melihat apa yang mungkin dilakukan tetapi saya tidak yakin saya ' Saya akan dapat membuat sesuatu yang nyaman.
statox
2

Solusi termudah, menurut pendapat saya, itu menambahkan zzuntuk jdan k. Ini memiliki efek samping utama memusatkan kursor Anda. Saya tidak keberatan dan lebih suka menjulurkan leher saya. Saya mencoba scrolloffdan CTRL-Etidak nyaman.

Ketik yang berikut ini di :atau .vimrc

nnoremap j jzz

nnoremap k kzz

Bersumber: http://vim.wikia.com/wiki/Keep_your_cursor_centered_vertically_on_the_screen

Carlos Vigil
sumber