ฉันสับสนเล็กน้อยว่าทำไมคำสั่งขีดล่าง_ซึ่งกระโดดไปที่จุดเริ่มต้นของบรรทัด (COUNT - 1) th ด้านล่างเคอร์เซอร์ได้รับรหัสของตัวเอง เมื่อผมจะใช้มากกว่านี้+หรือ^?
ฉันสับสนเล็กน้อยว่าทำไมคำสั่งขีดล่าง_ซึ่งกระโดดไปที่จุดเริ่มต้นของบรรทัด (COUNT - 1) th ด้านล่างเคอร์เซอร์ได้รับรหัสของตัวเอง เมื่อผมจะใช้มากกว่านี้+หรือ^?
คำตอบ:
คำถามที่ดี!
การเคลื่อนไหวด้วยตัวเองคุณพูด_ถูกไม่ใช่กุญแจที่มีประโยชน์โดยเฉพาะ:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
คำสำคัญที่นี่คือ "linewise" ดังนั้นถ้าเป้าหมายของคุณเป็นเพียงการเลื่อนเคอร์เซอร์ไปแล้ว^, jและทั้งหมดได้งานทำและมีไม่มากที่จะจุด+ _แต่เป็นอาร์กิวเมนต์ดำเนินการให้_มีประสิทธิภาพสุด
_จำนวนมากของทางลัดคู่สำคัญเป็นทางลัดจริงเพียงเพื่อ ตัวอย่างเช่น,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
ฯลฯ เนื่องจากเป็นการเคลื่อนไหวแบบ linewise โดยทั่วไปจะเลือกทั้งบรรทัดเพื่อดำเนินการโดยไม่คำนึงถึงตำแหน่งที่เคอร์เซอร์ของคุณเริ่มต้นในขณะที่^เพิ่งเปลี่ยนจากตัวละครของคุณไปเป็นแบบแรกที่ไม่ว่างเปล่า
มันช่วยฉันได้เมื่อคิดเกี่ยวกับการเคลื่อนไหว linewise vs blockwise เพื่อจินตนาการว่าฉันกำลังกดอย่างใดอย่างหนึ่งvหรือVขวาก่อนการเคลื่อนไหว ดังนั้นผมคิดว่าd^จะเป็นเทียบเท่ากับv^dและฉันคิดd_ที่จะเทียบเท่าหรือV_d V^dแน่นอนคุณยังสามารถแทนที่การเคลื่อนไหวเพื่อบังคับให้ linewise หรือ characterwise ดังนั้นdv_จริงๆแล้วเหมือนกันกับd^หรือv^dและdVwเหมือนVwdที่เหมือนd_กันทุกประการ
สาเหตุที่เป็นพิเศษคือ "count-1th" บรรทัดนั้นเพื่อให้1dd(ซึ่งจริงๆแล้วd1_) ลบหนึ่งบรรทัดทั้งหมด2dd(ซึ่งจริงๆแล้วd2_) ลบ 2 บรรทัดทั้งหมด3ddลบ 3 บรรทัดทั้งหมด ฯลฯ
ddอาจจะสะดวกสบายกว่าd_แต่เพราะเป็นเพียงการทำแผนที่ไปยังdd d_และยังมีประโยชน์ใน vimscript
gUUอะไร ฉันคิดว่ามันจะคุ้มค่าที่จะหาตัวอย่างจริงที่<operator>_จะใช้
ddจะง่ายกว่าd_และง่ายกว่า3yj4y_