ตัวอย่างเช่น
ฉันจะดึงและวางบรรทัด 4 เฉพาะกับบรรทัด 12 โดยไม่ต้องเลื่อนเคอร์เซอร์ไปที่บรรทัด 4 ได้อย่างไร
ตัวอย่างเช่น
ฉันจะดึงและวางบรรทัด 4 เฉพาะกับบรรทัด 12 โดยไม่ต้องเลื่อนเคอร์เซอร์ไปที่บรรทัด 4 ได้อย่างไร
คำตอบ:
หากเคอร์เซอร์อยู่ในบรรทัดที่ 12 แล้วง่าย
: 4Y P
ทำเพื่อฉัน
x
หรือไม่? เมื่อฉันพยายามที่ฉันได้รับ:4x
E140: Use ! to write partial buffer
ขอบคุณ!
:4d
แล้วเคอร์เซอร์จะอยู่ที่บรรทัดที่ 11 คุณอยู่ในโหมด "vi"
:4co.<return>
เห็นได้ชัดว่าคุณสามารถทำได้ด้วยลวดลาย:
:/^Yank/co.<return>
คุณสามารถใช้ "mo" (ย้าย) แทน "co" (คัดลอก) เพื่อเพิ่งย้ายเส้นแทนที่จะเป็นงัดและวาง
:4t.
ลองสิ่งนี้:
:4,4y
P
ลอง:
:4co11
คุณสามารถใช้อาร์กิวเมนต์ของการวางสาย0
1
สิ่งนี้จะทำงานกับช่วง:
:m,n co k
จะคัดลอกเส้นm
ผ่านไปยังเส้นn
k+1
นอกจากนี้มันไม่สำคัญว่าคุณจะอยู่ที่ไหนในบัฟเฟอร์ move
คำสั่งm
ทำงานในทำนองเดียวกัน
คนอื่น ๆ ได้กล่าวถึงวิธีที่ตรงที่สุดในการทำเช่นนี้:4y
แล้ว แต่ฉันต้องการเพิ่มโน้ตสองอันเกี่ยวกับเรื่องนี้ซึ่งอาจเป็นประโยชน์:
หนึ่งถ้าคุณพิมพ์:help range
คุณจะได้เรียนรู้เกี่ยวกับการใช้ช่วงเพื่อนำไปใช้กับคำสั่งสไตล์ Ex มีประโยชน์มากในหลายกรณีและหลากหลายกว่าการใช้หมายเลขบรรทัด ตัวอย่างเช่นถ้าคุณต้องการที่จะดึงเอาบรรทัดแรกเริ่มต้นด้วย "งัด" หลังจากที่เริ่มต้นของเอกสาร (แม้ว่าจะเป็นในบรรทัดแรก) :0/^yank/y
การใช้ ส่วนที่ทรงพลังที่สุดของช่วงคือความสามารถในการรวมพวกมันเช่น:./^Chapter/+50?Pete?d
หมายถึง "ค้นหาบรรทัดถัดไปเพื่อเริ่มต้นด้วยคำว่าบท (ค้นหาไปข้างหน้าจากบรรทัดปัจจุบัน) จากนั้นข้ามไปข้างหน้า 50 บรรทัดแล้วค้นหาย้อนหลังสำหรับคำว่าพีท และลบบรรทัดแรกที่คุณพบ " ยกเว้นว่ามันจะไม่ย้ายเคอร์เซอร์จริงๆมันแค่ทำในสิ่งที่คุณบอก
(ฉันใช้การกำหนดช่วงประเภทนี้เพื่อสร้างเอกสารที่เกี่ยวข้องกับการค้นหาชื่อฟังก์ชั่นใต้เคอร์เซอร์โดยอัตโนมัติจากนั้นค้นหาบรรทัดถัดไปซึ่งกล่าวว่า "คำอธิบาย" และส่งไปยังการลงทะเบียนที่ระบุ ... ฯลฯ )
เคล็ดลับอื่น ๆ คือคุณควรรู้เกี่ยวกับการกระโดด พิมพ์:help jump-motions
เพื่อเรียนรู้เกี่ยวกับสิ่งนี้อย่างสมบูรณ์ แต่วิธีที่เกี่ยวข้องคือคุณสามารถข้ามไปที่บรรทัดที่ 4 ดึงมันแล้วกลับมาใหม่ด้วย4Gyy''
(หรือใช้ backticks แทน apostrophes เพื่อกระโดดกลับสู่ตำแหน่งเริ่มต้นที่แน่นอนแทนที่จะเป็นสายเดียวกัน คุณเริ่มต้นที่.)
ที่สั้นที่สุด:
:1t.
คัดลอกบรรทัดแรกด้านล่างปัจจุบัน
ด้วยช่วง:
:1,4t.
คัดลอกบรรทัด 1 ถึง 4 (รวม) ด้านล่างปัจจุบัน
สามารถทำได้ด้วยหมายเลขบรรทัดสัมพัทธ์:
:-1t.
คัดลอกบรรทัดก่อนหน้าด้านล่างปัจจุบัน
ในตัวอย่างของคุณ:4t-1
จะคัดลอกบรรทัดที่สี่ด้านล่างบรรทัดที่ต้องการ
หมายเหตุ: :t
เป็นคำพ้องความหมายสำหรับ:co[py]
คำสั่ง