มีสองวิธีนี้สามารถทำได้วิธี vimscript บริสุทธิ์และwc
วิธีการ
วิธีที่เป็นกลุ่มบริสุทธิ์
คุณสามารถใช้การค้นหาและแทนที่คำสั่งเพื่อทำสิ่งนี้ ตัวอย่างเช่น:
:%s/\<\w\{-}\>//gn
สิ่งนี้ทำแทนการแทนที่รูปแบบที่กำหนดด้วยบางสิ่งมันเพียงนับการเกิดขึ้นของรูปแบบ นี่เป็นเพราะn
ธง หากต้องการนับคำในส่วนเฉพาะ (ในกรณีนี้บรรทัดที่ 5 ถึง 15) คุณสามารถทำสิ่งนี้:
:5,15s/\<\w\{-}\>//gn
สิ่งนี้ทำให้ไม่จำเป็นต้องดึงเนื้อหาของสิ่งที่เลือกลงในทะเบียน หากต้องการดูความเป็นไปได้มากขึ้นสำหรับสิ่งที่สามารถวางในตำแหน่งของอ่านหัวข้อความช่วยเหลือสำหรับ5-15
cmdline-ranges
หากคุณต้องการทำสิ่งนี้บ่อยครั้งอาจเป็นการดีที่จะสร้างการแมป (หรือคำสั่ง) ให้กับมัน นอกจากนี้หากคุณhlsearch
เปิดใช้งานคุณอาจต้องการเรียกใช้:nohlsearch
หลังจากนั้นเพื่อล้างการเน้นสี
wc
วิธี
wc
สิ่งเดียวที่สามารถทำได้ด้วย ในทำนองเดียวกันคุณสามารถใช้cmdline-ranges
เพื่อเลือกพื้นที่ด้วย:s
คำสั่งคุณสามารถใช้พื้นที่เหล่านั้นกับคำสั่งภายนอก ตัวอย่างเช่น:
:5,15!wc -w
สิ่งนี้รันบรรทัด 5 ถึง 15 ผ่านwc
คำสั่ง ข้อเสียของสิ่งนี้คือมันแทนที่ช่วงของบรรทัดนั้นด้วยเอาต์พุตของคำสั่ง u
คุณสามารถยกเลิกการเปลี่ยนแปลงนี้ได้โดยการกด นอกจากนี้โปรดทราบว่าโซลูชัน vimscript อาจไม่ทำงานกับภาษาที่แตกต่างกันเนื่องจาก\w
ไม่ตรงกับสิ่งที่ปกติจะเป็นอักขระคำในภาษาอื่น อาจจะดีกว่าที่กว่านี้wc
\w
นอกจากนี้ต่อไปนี้เป็นคำสั่งแฟนซีเพื่อให้ทำสิ่งนี้ได้เร็วขึ้น:
command -range=% -addr=lines WordCount execute '<count>!wc -w' | .y a | undo | echo @a
โปรดทราบว่าสิ่งนี้จะขัดขวางการa
ลงทะเบียน
บันทึก
ปรากฏว่าสิ่งนี้สามารถทำได้ในโหมดภาพด้วยการg<C-g>
รวมคีย์ ดูคำตอบของ Carpetsmoker สำหรับคำอธิบายนี้