ฉันคุ้นเคยกับคำสั่ง "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
จะลบคำทางด้านขวา ฉันคิดว่าคำตอบดั้งเดิมของคำว่า "ส่วนใหญ่ ... " น่าจะดีที่สุดที่เราจะได้ในแง่ของการเทียบเคียงเหล่านี้