โดยค่าเริ่มต้นคำสั่งวางใช้"(“ชื่อ”) ลงทะเบียน ได้อย่างมีประสิทธิภาพคำสั่งใด ๆ ที่เขียนไปยังการลงทะเบียนยังเขียนไปยังการลงทะเบียนที่ไม่มีชื่อดังนั้น yanks ลบและการเปลี่ยนแปลงทั้งหมดที่มีผลต่อมัน นี่คือเหตุผลที่ลำดับ yank-delete-paste ของคุณวางข้อความที่ถูกลบแทนที่ข้อความ yanked
การ0ลงทะเบียนสามารถช่วยได้ที่นี่ คำสั่ง yank ใด ๆ ที่ไม่ได้ระบุรีจิสเตอร์จะใส่ข้อความ yanked ในรีจิสเตอร์0(นอกเหนือจาก") จะไม่ได้รับผลกระทบจากการลบหรือเปลี่ยนการดำเนินการดังนั้นคุณสามารถใช้มันเพื่อวางสาย yanked หลายครั้งแม้ว่าคุณจะลบหรือเปลี่ยนแปลงกลาง
yy: รีจิสเตอร์0และ"ทั้งคู่ตอนนี้มีสาย yanked
- ย้ายไปที่บรรทัดเพื่อแทนที่
dd: การลงทะเบียน"ตอนนี้มีบรรทัดที่ถูกลบ แต่การลงทะเบียน0ยังคงมีบรรทัดที่ถูกดึง
"0P: 0วางสายกระชากเดิมจากการลงทะเบียน
- ย้ายไปที่บรรทัดถัดไปเพื่อแทนที่
dd"0P (เหมือนด้านบน)
(เนื่องจากตำแหน่งเคอร์เซอร์ทำงานเมื่อเปลี่ยนบรรทัดสุดท้ายของบัฟเฟอร์คุณจะต้องการใช้"0pแทน"0P)
นี่ใกล้กับคำตอบของ Bruce Edigerมากยกเว้นว่าคุณไม่จำเป็นต้องระบุการลงทะเบียนเมื่อเริ่มเล่น การใช้รีจิสเตอร์ที่กำหนดชื่อตั้งแต่หนึ่งรายการขึ้นไปนั้นมีประโยชน์มากแม้ว่าคุณจะต้องการ (ตัวอย่าง) แทนที่บางบรรทัดด้วยAAAแต่บรรทัดอื่น ๆ ที่มีBBB(ใส่AAAในรีจิสเตอร์aและBBBในรีจิสเตอร์b(หรือทิ้งไว้ในรีจิสตรี0) )
นอกจากนี้คุณยังสามารถวางจาก0ในโหมดภาพเส้นที่ชาญฉลาด ( V) V"0pเพื่อบันทึกการกดแป้นพิมพ์:
หากคุณไม่ต้องการพิมพ์"0คุณอาจพบว่าการทำแผนที่สะดวกกว่า:
noremap <Leader>p "0p
noremap <Leader>P "0P
vnoremap <Leader>p "0p
วิธีอื่นคือการลบไป_(“ต้องห้าม”) ลงทะเบียน เมื่อคุณลบมันการ"ลงทะเบียนจะไม่ได้รับผลกระทบดังนั้นลำดับ yank-delete-paste ของคุณยังสามารถวางข้อความ yanked จากการลงทะเบียนที่ไม่มีชื่อ
yy: ลงทะเบียน0และ"ตอนนี้ทั้งคู่มีสาย yanked
"_dd: ไม่มีการเปลี่ยนแปลงทะเบียน
P: "วางข้อความกระชากเดิมจากการลงทะเบียน
อีกครั้งคุณอาจพบว่าการทำแผนที่สะดวกกว่า:
noremap <Leader>d "_d
yyS<C-r>0<Esc>มีข้อได้เปรียบในการทำซ้ำด้วย.คำสั่ง