นี่เป็นปัญหาที่ฉันเพิ่งพบเมื่อไม่นานมานี้ ฉันมีไฟล์ที่มีข้อความหลายร้อยบรรทัด ฉันจะค้นหาสตริงระหว่างหมายเลขบรรทัดสองหมายเลขได้อย่างไร เช่นฉันต้องการค้นหาระหว่างหมายเลขบรรทัด 100 และ 325
นี่เป็นปัญหาที่ฉันเพิ่งพบเมื่อไม่นานมานี้ ฉันมีไฟล์ที่มีข้อความหลายร้อยบรรทัด ฉันจะค้นหาสตริงระหว่างหมายเลขบรรทัดสองหมายเลขได้อย่างไร เช่นฉันต้องการค้นหาระหว่างหมายเลขบรรทัด 100 และ 325
คำตอบ:
:100,235g/foo/#<CR>
จากนั้นกด:147<CR>
เพื่อข้ามไปยังบรรทัดที่ต้องการ
คุณยังสามารถใช้:ilist
:
:100,235il foo<CR>
ดู:help range
, และ:help :global
:help :ilist
มีวิธีการค้นหาระหว่างบรรทัดเฉพาะ
/%>{linenumber}l\%<{linenumber}{pattern}
ตัวอย่าง:
/%>199l\%<300lgood
สิ่งนี้จะค้นหาจากบรรทัด 200 ถึง 299 สำหรับรูปแบบ 'ดี'
%>199l - l is for line, >199 denotes the lines greater than 199
100GV325G<esc>
/\v%Vpattern
100GV325G<esc>
มองเห็นเส้นที่เลือกได้ตั้งแต่ 100 ถึง 325 กลับไปที่normal
โหมด/\v%Vpattern
ใช้:h /\%V
เพื่อ จำกัด ช่วงการค้นหาไปยังพื้นที่ภาพล่าสุดหากรูปแบบของคุณมีการขึ้นบรรทัดใหม่คุณต้องเพิ่มอีกอัน\%V
เพื่อ จำกัด การสิ้นสุดของรูปแบบในพื้นที่ภาพ:
100GV325G<esc>
/\v%Vpattern%V
:h /\%V
บางครั้งคุณต้องค้นหาสัญลักษณ์ที่กำหนดภายในฟังก์ชัน / วิธี
void f(bool b)
{
b;
b;
}
void g(bool b)
{
b;
b;
b;
b;
}
เพื่อที่จะค้นหาb
ในf()
เท่านั้น:
{
ของf()
V
f()
ด้วย '%'il b
เพื่อรับ
:'<,'>il b
หลังจาก<CR>
(Enter) คุณจะได้รับ
b.cpp
1: 15 b;
2: 16 b;
Press ENTER or type command to continue
%
และโหมดภาพสามารถพบว่ามีประโยชน์ ประการที่สองไม่จำเป็นต้องใส่ช่วงของเส้นอย่างชัดเจน
ilist