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และnvibtw .