Apa yang dilakukan gerakan garis bawah di vim?

11

Saya tidak mengerti gerakan garis bawah dalam vim, setidaknya dalam konteks yank (y). Lembar cheat saya berbunyi

"soft" bol down

yang saya tidak mengerti. Jika saya menggunakan gerakan saja sepertinya sama dengan ^yang berarti pergi ke spasi non-spasi pertama di baris. Namun, jika saya menggunakan gerakan dengan ymaka itu menarik seluruh baris (seperti yy atau Y), tetapi y^tidak menarik seluruh baris, tetapi hanya untuk karakter non-spasi pertama, eksklusif, seperti yang Anda harapkan.

Jadi, apa sebenarnya yang harus dilakukan garis bawah?

Tyler Durden
sumber

Jawaban:

14

Tanpa hitungan, ^dan _memang setara, tetapi yang terakhir mendukung perhitungan:

  _  <underscore>         [count] - 1 lines downward, on the first non-blank
                          character |linewise|.

Ini linewisemenjelaskan pengamatan kedua Anda: ketika digunakan sebagai gerakan, itu tidak hanya mencakup teks antara posisi sebelumnya dan yang baru, tetapi seluruh rangkaian garis tertutup.

Bacalah dengan saksama dengan :helpmemberikan wawasan ini. Anda juga akan melihat (berdasarkan jarak), bahwa _perintah itu terkait erat dengan +dan -.

Ingo Karkat
sumber
Hmmm, ok, lalu apa perbedaan antara y2_ dan y2 +?
Tyler Durden
2
@ TylerDurden Perbedaannya adalah 1 (baris), seperti perbedaan antara [count] - 1dan [count]untuk nilai apa pun [count]. Seperti yang disebutkan Ingo, ada baiknya Anda membaca bantuan built-in vim yang cukup jelas.
jw013
4
Mengapa _perintah itu ada - mengapa seseorang lebih menyukainya +?
Aaron Thoma
Bukan untuk berdebat, tapi bantuannya agak membingungkan untuk yang satu ini. [count] - 1 lines downward- Bagi saya, itu berbunyi "hitung: 1 baris ke bawah" bukan interpretasi yang benar. Saya tahu, bahkan tidak masuk akal, tetapi ada sedikit ruang untuk kebingungan di sana.
André Chalella