เพื่อให้ทราบว่ามีรูปแบบอยู่ในบัฟเฟอร์ปัจจุบันกี่ครั้งฉันจึง:
:%s/pattern-here/pattern-here/g
ให้จำนวนครั้งของรูปแบบ แต่เห็นได้ชัดว่ายุ่งยากและยังมีผลข้างเคียงจากการตั้งค่าสถานะ 'เปลี่ยนแปลง'
มีวิธีที่สวยหรูกว่าในการนับหรือไม่?
เพื่อให้ทราบว่ามีรูปแบบอยู่ในบัฟเฟอร์ปัจจุบันกี่ครั้งฉันจึง:
:%s/pattern-here/pattern-here/g
ให้จำนวนครั้งของรูปแบบ แต่เห็นได้ชัดว่ายุ่งยากและยังมีผลข้างเคียงจากการตั้งค่าสถานะ 'เปลี่ยนแปลง'
มีวิธีที่สวยหรูกว่าในการนับหรือไม่?
คำตอบ:
เพื่อหลีกเลี่ยงการแทนที่ให้ปล่อยรูปแบบที่สองว่างไว้และเพิ่มแฟล็ก“ n”:
:%s/pattern-here//gn
nnoremap <leader>n :%s///gn <CR>
เพื่อนับจำนวนการค้นหาครั้งล่าสุด
:help count-items
ใน VIM 6.3 นี่คือวิธีที่คุณทำ
:set report=0
:%s/your_word/&/g # returns the count without substitution
ใน VIM 7.2 นี่คือวิธีที่คุณจะทำ:
:%s/your_word/&/gn # returns the count, n flag avoids substitution
:!cat %| grep -c "pattern"
ไม่ใช่คำสั่ง vim แต่จะให้สิ่งที่คุณต้องการจาก vim
คุณสามารถแมปกับคำสั่งได้หากจำเป็นต้องใช้บ่อยๆ
:!grep -c "pattern" %
vimscript IndexedSearchช่วยเพิ่มคำสั่งการค้นหา Vim เพื่อแสดง "ตรงกับ #N จาก M ที่ตรงกัน"
วางเคอร์เซอร์บนคำที่คุณต้องการนับและดำเนินการดังต่อไปนี้
:%s/<c-r><c-w>//gn
ดู :h c_ctrl-r_ctrl-w
vimgrep เป็นเพื่อนของคุณที่นี่:
vimgrep pattern %
แสดงให้เห็นว่า:
(1 of 37)