ฉันจะใช้หมายเลขบรรทัดเพื่อคัดลอกบรรทัดไปยังตำแหน่งที่เคอร์เซอร์อยู่ได้อย่างไร


20

หลายครั้งที่ฉันอยู่ในสถานการณ์แบบนี้:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

ทางออกที่ง่ายคือmm:1<CR>yy`mp- ทำเครื่องหมายที่บรรทัดที่ 4 ไปที่บรรทัดที่ 1 คัดลอกกลับไปที่เครื่องหมายและวาง

มีวิธีแก้ปัญหาของเหลวสั้นลงหรือมากขึ้นสำหรับเรื่องนี้? ฉันทำสิ่งนี้บ่อยพอที่ฉันจะทำแผนที่สำหรับมัน

คำตอบ:


23

ดูเหมือนว่าเป็นกรณีสำหรับการคัดลอกอดีต ( :help :coหรือ:help :t):

:1t4

หรือใช้ตำแหน่งเคอร์เซอร์ของคุณ:

:1t.

สิ่งนี้ไม่ได้คัดลอกบรรทัดไปยัง yank register ซึ่งอาจเป็นหรืออาจไม่ใช่สิ่งที่คุณต้องการ


ฉันไม่ใช้คำแนะนำที่ดีพอ
jecxjo

10

คุณสามารถย่อให้สั้นลงโดยไม่ใช้เครื่องหมายและงัดสายโดยตรง

:1y<CR>p

เวอร์ชันคำสั่งของ yank ใช้เวลา{range}เลือกบรรทัดหรือกลุ่มของบรรทัด

นอกจากนี้ค่าช่วงสามารถเป็นได้ทั้งแบบสัมบูรณ์หรือแบบสัมพัทธ์ เส้นที่อยู่เหนือเคอร์เซอร์คือระยะลบและด้านล่างเป็นบวก ดังนั้นลากสองบรรทัดข้างต้นเป็นและลากสองบรรทัดด้านล่างเป็น:-2y:+2y

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.