เมื่อใดก็ตามที่คุณต้องการค้นหาข้อความเป็นกลุ่มคุณจะต้องพิมพ์/แล้วตามด้วยสตริงที่คุณต้องการ
อย่างไรก็ตามเมื่อสตริงมีความยาวและคุณต้องการทำหลาย ๆ ครั้งมีวิธีที่จะทำหรือไม่ไม่ต้องพิมพ์/andthisreallylongstring
มากกว่าหนึ่งครั้ง?
เมื่อใดก็ตามที่คุณต้องการค้นหาข้อความเป็นกลุ่มคุณจะต้องพิมพ์/แล้วตามด้วยสตริงที่คุณต้องการ
อย่างไรก็ตามเมื่อสตริงมีความยาวและคุณต้องการทำหลาย ๆ ครั้งมีวิธีที่จะทำหรือไม่ไม่ต้องพิมพ์/andthisreallylongstring
มากกว่าหนึ่งครั้ง?
คำตอบ:
กด "n" หลังจากคุณค้นหาเสร็จแล้วมันจะทำซ้ำการกระทำก่อนหน้า (ค้นหา)
N
จะไปยังผลลัพธ์ก่อนหน้า
/
จะเป็นการจดจำคำค้นหาล่าสุด
q/
จะแสดงหน้าต่างที่สามารถแก้ไขได้กับทุกคำค้นหาล่าสุด
/
และ Enter จะทำซ้ำการค้นหาก่อนหน้า การกดปุ่ม?
และ Enter จะทำซ้ำการค้นหาก่อนหน้านี้ย้อนหลัง
/Ctrl-F
เป็นอีกทางเลือกหนึ่งq/
ที่อาจช่วยในการจำได้ง่ายขึ้น (ctrl-f == find) เช่นเดียวกับ q มันยังใช้งานได้กับโหมดคำสั่ง
หากสตริงที่คุณค้นหาอยู่ใต้เคอร์เซอร์คุณสามารถพิมพ์*เพื่อค้นหามันไปข้างหน้าหรือ#เพื่อค้นหาย้อนกลับ
ฉันมักจะค้นหาสิ่งที่ชอบ;
Vim เก็บประวัติการค้นหาของคุณดังนั้นหากคุณต้องการการค้นหาก่อนหน้านี้คุณสามารถกด '/' และใช้ปุ่มขึ้นและลงหรือ <Ctrl-P> <Ctrl-N> เพื่อเรียกดูประวัติการค้นหา
คุณสามารถใช้ '?' แทนที่จะใช้ '/' เพื่อค้นหาย้อนหลัง
ฉันชอบที่จะใช้:
set ignorecase smartcase
ตอนนี้มันจะเป็นการค้นหาที่คำนึงถึงขนาดตัวพิมพ์หากคุณมีอักขระตัวพิมพ์ใหญ่ในสตริงการค้นหา
สองเคล็ดลับเพิ่มเติมที่สามารถทำให้การค้นหาของคุณมีประสิทธิภาพมากขึ้นและset hlsearch
set incsearch
set hlsearch
ดีเน้นผลการค้นหาของคุณ พิมพ์:noh
เพื่อปิดเมื่อคุณไม่ต้องการใช้อีกต่อไป
set incsearch
เปิดการค้นหาที่เพิ่มขึ้น
สกัดจาก :help incsearch
ในขณะที่พิมพ์คำสั่งค้นหาให้แสดงรูปแบบที่ตรงกับที่พิมพ์ สตริงที่ตรงกันจะถูกเน้น หากรูปแบบไม่ถูกต้องหรือไม่พบจะไม่มีสิ่งใดปรากฏขึ้น หน้าจอจะได้รับการอัปเดตบ่อยครั้งซึ่งมีประโยชน์เฉพาะกับเทอร์มินัลเร็ว
หากไม่มีincsearch
ผลลัพธ์ของคุณจะปรากฏหลังจากกด<CR>
คำค้นหาของคุณเท่านั้น
ตัวอย่าง:
คุณต้องการค้นหา wildignore
คุณพิมพ์/wild
และคู่แรกจะถูกเน้นโดยอัตโนมัติ
จากนั้นพิมพ์i
และไปยังการแข่งขันที่ถูกต้องต่อไป
เคล็ดลับอื่น ๆ ที่ยังไม่ครอบคลุม: การกดตัวอักษรq
จากนั้น/
จะแสดงรายการคำค้นหาก่อนหน้าของคุณ คุณสามารถแก้ไขได้เช่นเดียวกับบรรทัดอื่น ๆ ในเอกสารจากนั้นกด Enter เพื่อใช้งานซ้ำสำหรับการค้นหาใหม่
หลังจากกด/เพื่อเริ่มการค้นหาคุณสามารถลูกศรขึ้นเพื่อเลื่อนดูประวัติการค้นหาของคุณ
คุณสามารถป้อนนิพจน์ทั่วไปเพื่อหลีกเลี่ยงการพิมพ์ข้อความค้นหาทั้งหมด: and.*longstring
เพียงแค่กดปุ่ม / ไม่มีข้อโต้แย้งใด ๆ ที่ตามมาไม่เหมาะกับคุณหรือไม่? ในทุกระบบของเราที่ทำให้เกิดการทำซ้ำในสิ่งที่การค้นหาครั้งสุดท้าย
มีรูปแบบที่ดีที่คุณสามารถติดตามเพื่อค้นหาข้อความที่ถูกดึงได้ จากนั้นคุณไม่ต้องพิมพ์คำในตัวเองหากคุณสำรวจด้วยวิธีอื่นนอกเหนือจากการค้นหา โดยสรุปหากคุณใช้ตัวอักษรตัวแรกของคำที่คุณต้องการค้นหา:
v
e
y
/
Ctrl-r
0
Enter
(จากนั้นไปยังการแข่งขันถัดไปด้วย n หรือ N)
อย่างไรก็ตาม*
(หรือ#
) ทำสิ่งเดียวกันกับคำสั่งเหล่านี้ทั้งหมด ความแตกต่างเพียงอย่างเดียวคือคุณสามารถยืดหยุ่นได้ตามจำนวนคำที่คุณระบุ (แทนที่จะเป็น e ต่อท้ายคำคุณสามารถเลือกได้มากเท่าที่คุณต้องการเช่น 9l)
/string
- ค้นหาสายอักขระล่วงหน้า?string
- ค้นหาสตริงn
- ค้นหาอินสแตนซ์ถัดไปของสตริงN
- ค้นหาอินสแตนซ์ก่อนหน้าของสตริงaVeryLongVariableNameInTheProgram
จำนวนมากของเวลาที่ผมจะเขียนโปรแกรมต้องการค้นหา
ในกลุ่มคุณสามารถดึงข้อความได้อย่างง่ายดายในบัฟเฟอร์ / รีจิสเตอร์จากนั้นค้นหา:
"Byw
เพื่อดึงข้อความaVeryLongVariableNameInTheProgram
ลงในบัฟเฟอร์ B (เลือกรายการโปรดของคุณฉันใช้ B)/^RB
(สแลช, Ctrl-R, B) เพื่อวางบัฟเฟอร์ B บนบรรทัดค้นหาแน่นอนคุณยังสามารถงัดจนถึงจุดสิ้นสุดของสาย ฯลฯ แทนการใช้คำเพียงคำเดียว - ฉันเพิ่งจะใช้ลำดับข้างต้นตลอดเวลา
นอกจากนี้คุณยังสามารถวางเนื้อหาของการลงทะเบียนใด ๆ ในการค้นหาพรอมต์โดยการกดCtrl+ Rและจากนั้นชื่อของการลงทะเบียน e กรัม / Ctrl+ 0REnter
สตริงยาวที่คุณป้อนชื่อตัวแปรอยู่หรือไม่? หรือสายยาวที่อยู่ในข้อความของคุณ? จากนั้นกดปุ่ม*
เพื่อค้นหาคำ / สตริงที่อยู่ใต้เคอร์เซอร์ของคุณ