Pilih visual dari kursor ke baris kosong berikutnya?

11

Bagaimana cara seseorang memilih dari baris saat ini ke baris kosong berikutnya?

Saya mengetahui SHIFT+ Vtetapi kemudian saya harus melompat ke baris kosong berikutnya atau menekan tombol bawah beberapa kali. Saya tahu bagaimana melakukan ini dengan baik ketika ada karakter yang cocok seperti }tetapi saya tidak tahu bagaimana melakukan ini untuk baris kosong.

Leandand00
sumber

Jawaban:

19

Vim memahami konsep "paragraf". Definisi Vim tentang paragraf adalah blok teks yang dikelilingi oleh baris kosong * . Ada beberapa gerakan dan objek teks untuk bekerja dengan ini.

  • [count]}- Pindahkan [count]paragraf ke depan. Anda dapat menggunakan <S-v>}untuk memilih semua baris dari baris saat ini ke baris kosong berikutnya. Ini akan menyertakan baris kosong, jadi Anda mungkin ingin menggunakannya <S-v>}k.
  • [count]ip- Pilih [count]paragraf. Ini seperti iw(kata dalam) kecuali untuk paragraf. Menggunakan vipakan memilih semua paragraf, bukan dari baris saat ini ke akhir paragraf.
  • [count]ap- seperti ip, kecuali bahwa ini akan termasuk baris kosong di sekitar paragraf.

Satu peringatan di sini adalah bahwa Vim tidak menganggap garis dengan hanya spasi putih sebagai "garis kosong". Jadi pastikan untuk memeriksa ini (misalnya dengan :set list) jika tampaknya tidak berfungsi.


Ingat juga Anda selalu dapat mencari pola yang Anda inginkan. Anda bisa mendapatkan garis kosong dengan /^$; atau jika Anda tidak ingin memilih baris kosong itu sendiri, Anda dapat menggunakan \n\nuntuk meletakkan kursor di akhir baris sebelum baris kosong pertama:

  • <S-v>/^$<CR>
  • <S-v>/\n\n<CR>

* Ada beberapa pengecualian, lihat :help paragraphlogika lengkapnya. Tetapi untuk sebagian besar maksud dan tujuan definisi ini berfungsi dengan baik.

Martin Tournoij
sumber
12

Pintasan untuk baris kosong berikutnya adalah }. Jadi, Anda mungkin ingin menggunakan SHIFT+v}

Marderh
sumber
1

Cukup menekan Shift + }akan membawa ke baris kosong berikutnya tanpa pemilihan teks.

Dengan Sift + v + }, vim memilih teks dari posisi kursor saat ini ke baris kosong berikutnya dan Anda harus menekan ESCuntuk keluar dari mode pemilihan

Junaid
sumber
Mengapa Shift + }? Sederhana }bergerak. Lihat jawaban lain.
Ralf
@Ralf Sift + }untuk memanggil / memasukkan braket keriting }kecuali keyboard Anda secara langsung mendukung memasukkan }tanpa menekanShift
Junaid