Pokoknya untuk menavigasi persentase-bijaksana di vim?


25

Saya sering membuka file besar, mencari log untuk mencari info. Karena semua baris memiliki stempel waktu dalam kasus saya dan saya yakin di bagian mana dari seluruh file info ini hadir yang saya tertarik. Misalnya,

  • di bagian bawah isi file (50% atau lebih) atau
  • sekitar 10% lebih menjelang akhir file atau
  • gulir ke bawah lebih banyak 20% dari file asli.

Jadi, untuk menavigasi dengan cepat dengan cara ini yaitu dengan persentase-bijaksana - Apakah ada fungsi yang sudah tersedia vim?


@stephane Ada cara lain untuk mendapatkan lebih dari 10% dari jalur saat ini? Tidak melihat apa pun yang dirujuk untuk menavigasi dalam bantuan ini:h N%
mtk

Saya baru saja mencoba persentase relatif + 50% Tidak berhasil, jadi tidak. Saya telah memperbarui jawaban saya untuk menampilkan informasi bantuan.
X Tian

Jawaban:


45

Maaf untuk jawaban singkat, tetapi

ketik saja 50%

                                                        *N%*
{count}%                Go to {count} percentage in the file, on the first
                        non-blank in the line |linewise|.  To compute the new 
                        line number this formula is used:
                            ({count} * number-of-lines + 99) / 100
                        See also 'startofline' option.  {not in Vi}

3
Jawaban ini sempurna. Dan itu bisa menjadi lebih dari itu jika Anda bisa membuat gerakan relatif juga: yaitu, bergerak misalnya 10% ke depan, terlepas dari melihat di mana Anda berada. Perhatikan juga bahwa Anda tidak: boleh masuk ke mode perintah akses.
nilon

3

Ada [count]%perintah (betapa intuitif!) Untuk navigasi absolut. Untuk navigasi relatif, Anda harus menghitung sendiri jumlahnya. Misalnya gulir ke bawah 33%:

:exe 'normal!' 33 * line('$') / 100 . 'j'

(Anda mungkin ingin membuat pemetaan yang digunakan v:countuntuk ini.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.