ตัวอย่างเช่น

ฉันจะดึงและวางบรรทัด 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]คำสั่ง