Bagaimana cara menempatkan baris saat ini di atas / tengah / bawah layar di vim?

118

Trik navigasi apa pun yang lebih cepat untuk menempatkan garis tempat kursor berada pada saat itu

  • di atas layar?
  • tengah layar?
  • bagian bawah layar?
mtk
sumber

Jawaban:

153

z<CR>atau zt menempatkan garis saat ini di atas layar ( <CR>== Enter)

z.atau zz menempatkan garis saat ini ke tengah layar

z-atau zb menempatkan garis saat ini ke bawah layar

( z<CR>, z., Dan z-menempatkan kursor di kolom non kosong pertama. zt, zzDan zbmeninggalkan kursor di kolom saat ini)

Info lebih lanjut tentang menggulir di http://vimdoc.sourceforge.net/htmldoc/scroll.html atau
dalam tipe vim:help scroll-cursor

mtk
sumber
14
Anda juga dapat menggunakan zzsebagai gantiz.
evilsoup
2
Saya belum pernah mendengar z.sebelumnya. Saya pikir saya lebih suka memiliki dua tombol yang berbeda untuk menekan daripada menekan dua kali. Anda dapat membuat penekanan tombol paralel bersamaan, selama mereka mendarat dalam urutan yang benar, dan waktu di antara hit bisa sangat singkat, menjadikan ini pilihan yang sangat cepat. The zdan .kunci adalah cermin satu sama lain (setidaknya pada saya Keyboard en-GB). Anda dapat lebih memilih tap ganda z, dan itu bagus kami memiliki kedua opsi.
Drew Noakes
15 tahun vim dan saya tidak tahu hal kecil yang berguna ini! Suara positif!
PnotNP
14

Output dari :help scroll-cursor@mtk menyebutkan. Perhatikan bahwa ada perbedaan antara zzdan z..


Menggulir relatif ke kursor (scroll-cursor)

Perintah berikut memposisikan ulang jendela edit (bagian dari buffer yang Anda lihat) sambil menjaga kursor pada baris yang sama:

z<CR>                   Redraw, line [count] at top of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zt                      Like "z<CR>", but leave the cursor in the same
                        column.  {not in Vi}

z{height}<CR>           Redraw, make window {height} lines tall.  This is
                        useful to make the number of lines small when screen
                        updating is very slow.  Cannot make the height more
                        than the physical screen height.

z.                      Redraw, line [count] at center of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zz                      Like "z.", but leave the cursor in the same column.
                        Careful: If caps-lock is on, this command becomes
                        "ZZ": write buffer and exit!  {not in Vi}

z-                      Redraw, line [count] at bottom of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zb                      Like "z-", but leave the cursor in the same column.
                        {not in Vi}

Menggulir secara horizontal (scroll-horizontal)

Untuk empat perintah berikut kursor mengikuti layar. Jika karakter yang dihidupkan kursor dipindahkan dari layar, kursor dipindahkan ke karakter terdekat yang ada di layar. Nilai 'sidescroll' tidak digunakan.

z<Right>    or
zl                      Move the view on the text [count] characters to the
                        right, thus scroll the text [count] characters to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

z<Left>      or
zh                      Move the view on the text [count] characters to the
                        left, thus scroll the text [count] characters to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

zL                      Move the view on the text half a screenwidth to the
                        right, thus scroll the text half a screenwidth to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

zH                      Move the view on the text half a screenwidth to the
                        left, thus scroll the text half a screenwidth to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

Untuk dua perintah berikut kursor tidak dipindahkan dalam teks, hanya teks yang bergulir di layar.

zs                      Scroll the text horizontally to position the cursor
                        at the start (left side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}

ze                      Scroll the text horizontally to position the cursor
                        at the end (right side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}
Drew Noakes
sumber