ฉันคุ้นเคยกับคำสั่ง "dd" และ "d {motion}" แต่ไม่พบ "dap" ใน help.txt ของ vim "dap" ทำอะไรในโหมดปกติและเพราะอะไร (อีกวิธีหนึ่งฉันจะค้นหาสิ่งนี้ได้ด้วยตัวเองอย่างไร)
ฉันคุ้นเคยกับคำสั่ง "dd" และ "d {motion}" แต่ไม่พบ "dap" ใน help.txt ของ vim "dap" ทำอะไรในโหมดปกติและเพราะอะไร (อีกวิธีหนึ่งฉันจะค้นหาสิ่งนี้ได้ด้วยตัวเองอย่างไร)
คำตอบ:
"dap" ไม่ได้ลบทุกอย่าง ตัวอย่างเช่นลองใส่สิ่งนี้ลงในบัฟเฟอร์ของคุณ:
1
1
2
2
3
3
จากนั้นวางเคอร์เซอร์บน '2' และพิมพ์ "dap" มันจะออกจาก '1 และ' 3
เพราะนี่คือ "DAP" ลบวรรค อันที่จริงแล้วนั่นเป็นตัวช่วยจำ: "(D) elete (A) (P) ย่อหน้า" คุณสามารถดูได้ในความช่วยเหลือภายใต้:h ap:
*v_ap* *ap*
ap "a paragraph", select [count] paragraphs (see
|paragraph|).
Exception: a blank line (only containing white space)
is also a paragraph boundary.
When used in Visual mode it is made linewise.
สิ่งนี้เรียกว่า "วัตถุข้อความ" คุณสามารถอ่านเกี่ยวกับสิ่งเหล่านี้ภายใต้: :h text-objectsหรือคุณสามารถอ่านบทความสุดเจ๋งนี้บนวัตถุข้อความ
ไม่ว่าจะด้วยวิธีใดแนวคิดพื้นฐานของวัตถุข้อความคือคุณกำลังกำหนดขอบเขตของวัตถุแล้วใช้คำสั่งกับวัตถุทั้งหมดแม้ว่าคุณจะอยู่ตรงกลาง ตัวอย่างเช่นฉันแน่ใจว่าคุณรู้ว่าคุณสามารถใช้dwลบคำได้ แต่ถ้าคุณอยู่ในสถานการณ์นี้
Hello world
Cursor: ^
หากคุณพิมพ์dwคุณจะยังwoเหลืออยู่ ถ้าคุณพิมพ์diwที่จะลบภายในของคำว่าbdwดังนั้นส่วนใหญ่ก็เทียบเท่ากับการพิมพ์
ฉันจะหาของแบบนี้ให้ตัวเองได้อย่างไร
คุณมีความคิดพื้นฐานลงไป! การตรวจสอบความช่วยเหลือเป็นการเริ่มต้นที่ดีเสมอ ในกรณีนี้คุณอาจตระหนักว่าdเป็นผู้ดำเนินการดังนั้นความช่วยเหลือที่คุณมองหาจริงๆคือข้อโต้แย้งของผู้ดำเนินการในกรณีapนี้
diwและbdeยังคงไม่เหมือนกัน: หากเคอร์เซอร์ของคุณอยู่ที่จุดเริ่มต้นของคำ ในทำนองเดียวกันหากเคอร์เซอร์ของคุณอยู่ในช่องว่างระหว่างคำจากนั้นbdwจะลบคำทางด้านซ้ายในขณะที่dawจะลบคำทางด้านขวา ฉันคิดว่าคำตอบดั้งเดิมของคำว่า "ส่วนใหญ่ ... " น่าจะดีที่สุดที่เราจะได้ในแง่ของการเทียบเคียงเหล่านี้