it-swarm-vi.tech

Đếm số lần xuất hiện trong Vim mà không đánh dấu bộ đệm đã thay đổi

Để biết số lần một mẫu tồn tại trong bộ đệm hiện tại, tôi thực hiện:

:%s/pattern-here/pattern-here/g

Nó đưa ra số lần xuất hiện của mẫu, nhưng rõ ràng là cồng kềnh và cũng có tác dụng phụ là thiết lập trạng thái 'thay đổi'.

Có cách nào thanh lịch hơn để đếm?

110
Paul Oyster

Để tránh sự thay thế, hãy để trống mẫu thứ hai và thêm cờ của Nv:

:%s/pattern-here//gn

Điều này được mô tả là một mẹo chính thức .

165
Bruno De Fraine
:help count-items

Trong VIM 6.3, đây là cách bạn thực hiện.

:set report=0
:%s/your_Word/&/g    # returns the count without substitution

Trong VIM 7.2, đây là cách bạn thực hiện:

:%s/your_Word/&/gn   # returns the count, n flag avoids substitution
8
konyak
:!cat %| grep -c "pattern"

Đó không phải là lệnh vim chính xác, nhưng nó sẽ cung cấp cho bạn những gì bạn cần từ vim.
[.__.] Bạn có thể ánh xạ nó tới lệnh nếu bạn cần sử dụng nó thường xuyên.

5
Ilya

Vimscript IndexedSearch tăng cường các lệnh tìm kiếm Vim để hiển thị "Tại trận đấu #N trong số M khớp".

2
redacted

Đặt con trỏ trên Word bạn muốn đếm và thực hiện như sau.

:%s/<c-r><c-w>//gn

Xem :h c_ctrl-r_ctrl-w

1
Sagar Jain