ฉันกำลังคิดโดย "วาง" คุณหมายถึงทะเบียนที่ไม่มีชื่อ (ดึง / ใส่ / เปลี่ยนแปลง / ลบ / แทนที่) ใช่ไหม (เนื่องจากเป็นคำสั่งที่ถูกเขียนทับโดยคำสั่ง change)
ลงทะเบียนถูกกำหนดโดยการพิมพ์โดยทั่วไป"
แล้วชื่อ (ตัวเดียว) ของการลงทะเบียนเช่น"ay
นั้น"ap
จะงัดเข้าไปลงทะเบียนแล้วใส่เนื้อหาของการลงทะเบียนa
a
เช่นเดียวกันกับคำสั่งเปลี่ยนแปลง ในกรณีนี้ถ้าคุณไม่ต้องการให้ข้อความที่คุณเอามีคำสั่งเปลี่ยนแปลงไปทุกที่คุณสามารถใช้การลงทะเบียนของหลุมดำ:"_
"_cw
จากนั้นเมื่ออยู่ในโหมดแทรกคุณสามารถกด ctrl-R ตามด้วยรีจิสเตอร์ที่คุณต้องการ (อาจ"
) เพื่อใส่เนื้อหาของรีจิสเตอร์นั้น
"*
- การลงทะเบียนการเลือก (วางปุ่มกลาง)
"+
- ลงทะเบียนคลิปบอร์ด (อาจเข้าถึงได้ด้วย ctrl-shift-v ผ่านเทอร์มินัล)
""
- ค่าเริ่มต้นของกลุ่ม (ไม่มีชื่อ) ดึง / ใส่ / เปลี่ยนแปลง / ลบ / แทนที่ลงทะเบียน
คำตอบสั้น ๆ : "_cw^R"
แก้ไข: ตามที่คนอื่นแนะนำแน่นอนคุณสามารถใช้การลงทะเบียนอื่นสำหรับการดึง (หรืออะไรก็ได้) ที่ทำให้ข้อความของคุณอยู่ในการลงทะเบียนเริ่มต้น คุณไม่ได้คิดถึงสิ่งนั้นเป็นอันดับแรกเสมอไปดังนั้นจึงเป็นการดีที่จะทำคำสั่งเปลี่ยนแปลงเพียงครั้งเดียวโดยไม่ทำให้มันหายไป แม้ว่ามันจะไม่ปลิวไปเลยก็ตาม มีการลงทะเบียนหมายเลข"0
ผ่าน"9
:
กลุ่มเติมลงทะเบียนเหล่านี้ด้วยข้อความจากคำสั่งดึงและลบ
รีจิสเตอร์หมายเลข 0 มีข้อความจากคำสั่ง yank ล่าสุดเว้นแต่ว่าคำสั่งจะระบุรีจิสเตอร์อื่นด้วย ["x]
รีจิสเตอร์หมายเลข 1 มีข้อความที่ลบโดยคำสั่งลบหรือเปลี่ยนแปลงล่าสุดเว้นแต่คำสั่งจะระบุรีจิสเตอร์อื่นหรือข้อความน้อยกว่าหนึ่งบรรทัด (ใช้รีจิสเตอร์ลบขนาดเล็กแล้ว) ยกเว้นจะทำสำหรับผู้ประกอบการที่มีคำสั่งลบการเคลื่อนไหวเหล่านี้: %
, (
, )
, `
, /
, ?
, n
, N
, และ{
}
ลงทะเบียน "1 จะถูกใช้เสมอ (ซึ่งเข้ากันได้กับ Vi)" - register ถูกใช้เช่นกันหากการลบอยู่ในบรรทัด
ด้วยการลบหรือการเปลี่ยนแปลงแต่ละครั้ง Vim จะเปลี่ยนเนื้อหาก่อนหน้าของรีจิสเตอร์ 1 เป็นรีจิสเตอร์ 2, 2 เป็น 3 และอื่น ๆ โดยจะสูญเสียเนื้อหาก่อนหน้าของรีจิสเตอร์ 9
12yl
ดึงอักขระ 12 ตัวและ"_cw^r0
เพื่อแทนที่คำ จากนั้นฉันก็สามารถใช้.
คำสั่งเพื่อทำการแทนที่ซ้ำตลอดทั้งไฟล์