เริ่มต้นจากกระดานชนวนว่างเปล่าฉันจะขอรับเอกสารที่มีได้อย่างไร
1
2
3
4
5
6
7
8
9
10
…
100
เพื่อความชัดเจนฉันไม่ต้องการให้ตัวเลขเหล่านี้แสดงในระยะขอบ ฉันต้องการให้พวกเขาแทรกลงในเอกสารของตัวเอง
เริ่มต้นจากกระดานชนวนว่างเปล่าฉันจะขอรับเอกสารที่มีได้อย่างไร
1
2
3
4
5
6
7
8
9
10
…
100
เพื่อความชัดเจนฉันไม่ต้องการให้ตัวเลขเหล่านี้แสดงในระยะขอบ ฉันต้องการให้พวกเขาแทรกลงในเอกสารของตัวเอง
คำตอบ:
ใช้:put
และrange()
:
:put =range(1,100)
เพื่อหลีกเลี่ยงบรรทัดว่างที่ด้านบน ( รุ่งโรจน์เพื่อ romainl ) ใช้:0put
:
:0put =range(1,100)
นอกเหนือจาก Pure-vim ของ Undo :put =range(1,100)
(ซึ่งทำให้คุณว่างเปล่าขึ้นบรรทัดบนสุด) คุณสามารถใช้คำสั่งอย่างใดอย่างหนึ่งทั้งนี้ขึ้นอยู่กับระบบปฏิบัติการของคุณ เช่นในกล่อง Unix / Linux:
%!seq 1 100
การทำงานข้างต้นโดยการไพพ์บัฟเฟอร์ (ว่าง) ทั้งหมดไปseq
ที่ซึ่งละเว้นอินพุตและเพิ่งส่งออกตัวเลข 1 ถึง 100 จากนั้น Vim จะแทนที่บัฟเฟอร์ทั้งหมดด้วยseq
เอาต์พุตของ
มีประโยชน์เมื่อคุณคุ้นเคยกับวิธีสั่งบรรทัดคำสั่งเพื่อให้ได้สิ่งที่คุณต้องการ
สำหรับบันทึกและไม่ใช่วิธีที่สั้นที่สุด (ดูวิธีแก้ปัญหาที่ยอดเยี่ยมของ @ Undo) แต่การเรียงลำดับการกดแป้นก็จะทำเช่นกัน:
i1EscqaYpCtrl+aq98@a
ให้ฉันทำลายมันลงเพื่อคุณ:
i1<Esc>
- ใส่หมายเลข 1 จากนั้นกลับสู่โหมดคำสั่งqa
- เริ่มบันทึกแมโครในการลงทะเบียน "a"Y
- คัดลอกบรรทัดปัจจุบันp
- วางบรรทัดปัจจุบัน (เคอร์เซอร์จะย้ายไปที่บรรทัดที่วาง)<Ctrl>a
- เพิ่มตัวเลขถัดไปในบรรทัดทำให้เป็น 2q
- หยุดการบันทึกแมโคร (ลงทะเบียน "a")98@a
- เล่นซ้ำแมโครในรีจิสเตอร์ "a" 98 ครั้งนี่คือแนวทางที่แตกต่างที่ต้องการ Vim ที่ใหม่กว่า (บางอย่างเช่น 7.4.800)
สิ่งนี้จะถือว่าบัฟเฟอร์ว่างเปล่าและ '1' อยู่ในการลงทะเบียน ก่อนอื่นให้ป้อน 100 1 ลงในบัฟเฟอร์ของคุณ, "a100P.
จากนั้นเลือกบรรทัด 2 จนถึง 100 :2EnterVGด้วยสายตา
ตอนนี้กด+gCtrlA
อ่านความช่วยเหลือได้ที่ :h v_g_CTRL-A
:h g_CTRL-A
ฉันรู้ว่าคำถามนี้เก่ามาก แต่ก็มีวิธีอื่นที่คุณสามารถทำได้ ลองสิ่งนี้:
99o<esc>:%s/^/\=line('.')<cr>
99o<esc>
จะเปิดขึ้น 100 บรรทัดว่าง จากนั้นเราเรียกใช้คำสั่งทดแทน:
:% " On every line
s/ " substitute
^/ " the start of the line. (This will always match no matter what)
\= " Evaluate:
line('.') " The current line.
<C-r>=range(1,100)
หรือในโหมดแทรกด้วย