NB คำสั่งนี้ไม่ได้ซ้ำกับคำสั่ง "d3fg" อย่างไร โปรดอ่านก่อนลงคะแนนเพื่อปิด!
ฉันได้มาบิตของอับจนในของฉันการแสวงหาที่จะได้รับการลบการทำงานเล็ก ๆ เช่นคนใหญ่ ปัญหาที่ฉันมีคือฉันไม่สามารถหาวิธีการแมปคำสั่งd3dใหม่ได้ ที่จริงแล้วฉันไม่สามารถเข้าใจได้ว่าพวกเขาทำงานอย่างไรตั้งแต่แรกและไม่พบการกล่าวถึงพวกเขาในความช่วยเหลือของ Vim *
d3jตรงไปตรงมา: มันใช้d
กับการ3j
เคลื่อนไหว
3ddตรงไปตรงมา: มันรันdd
คำสั่งด้วย "count" ของ 3
d3d ดูเหมือนว่ามันควรจะตรงไปตรงมามันใช้d
โอเปอเรเตอร์กับ ... แต่อะไรนะ3d
? มันไม่ใช่การเคลื่อนไหว หากคุณพิมพ์3dด้วยตัวเอง Vim จะถือว่าเป็นนับตามด้วยโอเปอเรเตอร์และรออย่างอดทนสำหรับการป้อนข้อมูลเพิ่มเติม
และคุณไม่สามารถใช้โอเปอเรเตอร์กับผู้ให้บริการรายอื่นได้ ddไม่ได้อธิบายไว้ในความช่วยเหลือเป็นลำดับของผู้ให้บริการสองราย มันเป็นคำสั่งสองแป้นที่แยกต่างหาก (เปรียบเทียบdcซึ่งไม่ทำอะไรเลย)
นอกจากนี้ยังไม่ปรากฏว่าในกรณีที่การวางตำแหน่งการนับมีความยืดหยุ่นสำหรับคำสั่งที่ต้องใช้การกดแป้นสองครั้ง: 2gjเลื่อนเคอร์เซอร์ลงสองบรรทัดหน้าจอ แต่ละg2jทิ้งการกดปุ่มสองครั้งแรกทั้งหมดและเลื่อนเคอร์เซอร์ลงหนึ่งบรรทัด
แล้วมันทำงานอย่างไร นี่เป็นกรณีพิเศษในรหัสภายในของ Vim ใช่ไหม มีวิธีใดบ้างที่ฉันสามารถสร้างการd[count]d
แมปได้?
แก้ไข : มันเป็นวัตถุข้อความหรือไม่ :h text-objects
ไม่รวมไว้ในรายการ "คำสั่งการเลือกวัตถุข้อความ" แต่จะรวม dd ในรายการการลบ "จัดกลุ่มจากวัตถุขนาดเล็กไปจนถึงวัตถุขนาดใหญ่" และd2awจะลบคำที่อยู่ใต้เคอร์เซอร์และคำต่อไปนี้ ในทางกลับกันc2dไม่ทำอะไรเลย
* ฉันแน่ใจว่าต้องมีการกล่าวถึงบางอย่าง แต่ไม่สามารถหาได้ ฉันได้อ่าน:help deleting
, :help motion.txt
และพยายาม:helpgrep dNd
ทุกค่าของ N 1-9
dd
นำเคอร์เซอร์ไปที่ non-blank แรกบนบรรทัดที่( -1) th ลง แต่มัน linewise ดังนั้นเมื่อจับคู่กับโอเปอเรเตอร์มันจะทำงานบนทั้งบรรทัด ด้วยเหตุนี้จึงทำให้รู้สึกว่าการนับสามารถปรากฏระหว่างสองs d_
_
[count]
d
d
กระทำครั้งสุดท้ายเป็นการยืนยันd3<CR>
ดังนั้นจึงเป็นเช่นเดียวกับy3y
และใช้c3c
งานได้เหมือนกัน ... ฉันไม่สามารถหาเอกสารใด ๆ ได้ใน Vim: help, vi (1), nvi (1), หรือ POSIX spec ... มันทำงานเหมือนกันในvi
และnvi
btw .