ฉันต้องการดึงหลายบรรทัดใน register เดียวในกลุ่มเพื่อวางเทมเพลตข้อความต่าง ๆ ในเอกสารได้อย่างง่ายดาย
ตัวอย่างเช่น "iyy yanks เฉพาะบรรทัดปัจจุบันถ้าฉันพยายามเลือกหลายบรรทัดในโหมดภาพมันไม่ได้เขียนลงทะเบียน
ข้อเสนอแนะใด ๆ
ฉันต้องการดึงหลายบรรทัดใน register เดียวในกลุ่มเพื่อวางเทมเพลตข้อความต่าง ๆ ในเอกสารได้อย่างง่ายดาย
ตัวอย่างเช่น "iyy yanks เฉพาะบรรทัดปัจจุบันถ้าฉันพยายามเลือกหลายบรรทัดในโหมดภาพมันไม่ได้เขียนลงทะเบียน
ข้อเสนอแนะใด ๆ
คำตอบ:
ใช้3Yเพื่อดึง 3 บรรทัดลงในการลงทะเบียนเริ่มต้น; "i3Yสำหรับ yanking ลงทะเบียน i
นอกจากนี้วิธีที่ฉันชอบคือไม่นับบรรทัดที่ฉันต้องการดึง แต่เพื่อเลือกพวกเขาในโหมดภาพผ่านVคำสั่งและย้ายแล้วกดyเพื่อดึงมันหรือ"_yดึงลงทะเบียน
นอกจากนี้ฉันเพิ่งลองเลือกหลายบรรทัดในโหมด Visual Line และ yanking เป็นการลงทะเบียนที่ไม่ใช่ค่าเริ่มต้นเช่นVjjj"oy- และใช้งานได้
Vเป็นโหมดvภาพจริงคือโหมดภาพ
%)
จากที่ใดก็ได้ภายในไฟล์คุณสามารถใช้สิ่งต่อไปนี้
:2,5y a
Yank lines 2 - 5. ลงทะเบียน a
:7pu a
วางลงทะเบียนใต้บรรทัด 7
ใช้mเพื่อทำเครื่องหมายจุดเริ่มต้นพร้อมชื่อบัฟเฟอร์ (ดังนั้นคุณอาจพิมพ์mx) เลื่อนเคอร์เซอร์ของคุณไปยังตำแหน่งที่คุณต้องการหยุดคัดลอกและพิมพ์y'x(หรือd'xถ้าคุณกำลังตัดและวาง) pจากนั้นย้ายไปยังจุดที่คุณต้องการวางและประเภท
vไม่m?
คุณนำหน้าคำสั่งด้วยตัวเลขเพื่อรับจำนวนบรรทัดที่จะใช้งาน คุณสามารถใช้ 'text-object' (เช่น ']' สำหรับ block และ ')' สำหรับย่อหน้า) - สิ่งนี้จะทำงานในหลาย ๆ บริบทตามบริบท - ค่าเริ่มต้นมักจะเป็นบรรทัดเดียว ตัวอย่างเช่น"r5yyจะดึงห้าบรรทัดเริ่มต้นที่เคอร์เซอร์ในการลงทะเบียน 'r' (หรือคุณสามารถพิมพ์:.,+4y rเพื่อทำสิ่งเดียวกันในโหมด ex) คุณสามารถรวมตัวเลขกับวัตถุข้อความได้เช่นกัน "r10y).
เป็นไปได้ที่จะดึงหลายบรรทัดในกรณีที่เป็นการค้นหาครั้งล่าสุด
ตัวอย่างเช่นกำหนดรูปแบบที่ไม่ใช่ความโลภหลายบรรทัดต่อไปนี้:
/start\_.\{-}end/norm gn"iy
จากนั้นคุณจะมีรูปแบบหลายบรรทัดที่ถูกดึง (ระหว่างstartและend) ในการ@iลงทะเบียนของคุณ(พิมพ์โดยecho @i)
ที่เกี่ยวข้อง: วิธีพิมพ์การจับคู่หลายบรรทัดได้อย่างไร ที่ Vi