ฉันใช้vi
บน Ubuntu 12.10 บางไฟล์ค่อนข้างยาวดังนั้นเมื่อฉันต้องการไปที่ตรงกลางของไฟล์ฉันต้องเลื่อนหน้าลงหรือเลื่อนลง
มีทางลัด VIM เพื่อไปยังหมายเลขบรรทัดที่แน่นอนหรือไม่?
ฉันใช้vi
บน Ubuntu 12.10 บางไฟล์ค่อนข้างยาวดังนั้นเมื่อฉันต้องการไปที่ตรงกลางของไฟล์ฉันต้องเลื่อนหน้าลงหรือเลื่อนลง
มีทางลัด VIM เพื่อไปยังหมายเลขบรรทัดที่แน่นอนหรือไม่?
คำตอบ:
:150
จะพาคุณไปที่บรรทัด 150 ใน vi
:1500
จะพาคุณไปที่บรรทัด 1500 ใน vi
ตามความคิดเห็นที่คุณอาจต้องการลอง
150G
เพื่อไปที่บรรทัด 150 ซึ่งเป็นจังหวะที่สำคัญน้อยกว่า :150Enter หากคุณไม่แน่ใจว่าคุณกำลังลองบรรทัดใด
:set nu!
สังเกต:
หากคุณต้องการดูบรรทัดเสมอให้พิจารณาแก้ไขโปรไฟล์กลุ่มของคุณ ส่วนใหญ่มักจะ
vi ~/.vimrc
และเพิ่ม
:set nu!
และเขียนและออก
:wq
#or you could use :x
สามารถทำได้ภายนอก vi ตัวอย่างเช่นหากฉันต้องการลบบรรทัด 5000 ในไฟล์ข้อความฉันสามารถใช้ภาษาสคริปต์ได้ ตัวอย่างเช่นการใช้ sed จะเป็นดังต่อไปนี้
sed -i '5000d;' inputFile.txt
หากต้องการลบบรรทัดที่ 10 ถึง 20 ก็จะเป็น
sed -i '10,20d;' inputFile.txt
สังเกตว่า -i จะแก้ไขไฟล์ในสถานที่ หากไม่มี -i มันจะไปที่ stdout ลองมัน. คุณสามารถเปลี่ยนเส้นทาง stdout ไปยังไฟล์
sed '5001,$d;' inputFile.txt >> appenedFile.txt
สิ่งนี้อาจเกิดขึ้นมากมายสำหรับคุณ สิ่งนี้จะลบบรรทัด 5001 ถึง $ โดยมี $ เป็นส่วนท้ายของไฟล์ >> จะต่อท้ายไฟล์ โดยที่> สร้างไฟล์ใหม่
หากคุณสงสัยว่ามีกี่บรรทัดในไฟล์คุณอาจต้องการพิมพ์ wc -l inputFile.txt
สิ่งนี้บางอย่างอาจดูเป็นเรื่องเล็กน้อย แต่ถ้าคุณกำลังพยายามแก้ไขไฟล์ที่มี 50,000 บรรทัดอาจต้องใช้เวลานานในการเปิดและสำรวจ โดยที่ถ้าคุณรู้ว่าคุณต้องการลบบรรทัดสุดท้ายคุณสามารถใช้ sed และทำได้ในช่วงเวลาสั้น ๆ
sed สามารถค้นหาและแทนที่ภายในไฟล์ได้เช่นกัน แต่บางที awk, perl หรือ python ก็อาจเป็นทางออกที่ใช้ได้เช่นกัน
แต่โดยรวมแล้วคุณอาจต้องการหาบทช่วยสอนที่ดีเกี่ยวกับ vi หลายพันอยู่ ฉันจะปรึกษา Google บางทีอาจพบว่าตัวเองเป็น VIM Cheatsheat
150G
จะทำเช่นเดียวกับ:150
. มันไม่เร็วกว่า แต่อาจจำง่ายกว่า
<CR>
ถึง
เคล็ดลับอื่น ๆ ในกลุ่ม: ในโหมดคำสั่ง
ใช้เวลาไม่กี่นาทีและเริ่มต้นการอ่านนี้เอกสาร เป็นการตอบแทนคุณในระยะยาวสำหรับประสิทธิภาพในการแก้ไขไฟล์ config โดยเฉพาะ
จากเทอร์มินัลที่เปิดอยู่ใน bash shell เพียงแก้ไขไฟล์ของคุณโดยเรียกใช้:
$ vi +N yourfile
N
หมายเลขบรรทัดอยู่ที่ไหน.
สำหรับการดู ( more
หรือless
;):
$ less +N yourfile
$ more +N yourfile
เข้าสู่ระบบ+
หมายถึงคำสั่งที่จะทำงานในช่วงเริ่มต้น ดังนั้นหากคำสั่งเป็นเพียงจำนวนแล้วvi
, less
และmore
จะกระโดดถึงนี้เป็นหมายเลขบรรทัดหมายเลขบรรทัด
แต่คุณยังสามารถใช้/regex
เพื่อค้นหาการเกิดขึ้นครั้งแรกของสตริงหรือนิพจน์ทั่วไป:
$ less +/Error logfile
$ less -i +/error logfile # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...