Làm cách nào tôi có thể đếm số lượng từ trong một tệp trong khi chỉnh sửa tệp trong vim


21

Tôi biết tôi có thể sử dụng wcđể đếm các ký tự, từ và dòng tệp trong dòng lệnh .

Có cách nào tôi có thể đếm số lượng từ trong vim không?

Câu trả lời:


22

Bạn có thể đếm các từ và dòng bên trong vibằng cách sử dụng bộ viđếm riêng của mình:

Nhấn gvà sau đó CTRL- g. Sau đó, dòng dưới cùng tìm ví dụ như thế này:

Col 1 of 11; Line 1 of 106; Word 1 of 344; Byte 1 of 2644

Hoặc sử dụng viphương thức của để gọi các lệnh shell:

:w !wc -w

Cái này gọi lệnh save ( :w) trước rồi sau đó wc -whiển thị đầu ra. Thí dụ:

:w !wc -w
344

Press ENTER or type command to continue

Nhấn Enterđể quay lại vi.


Nó thực sự là mô tả không chính xác của :w !<cmd>xây dựng. Nó ghi bộ đệm hiện tại vào một đường ống kết nối với lệnh. Không có ghi riêng biệt của bộ đệm hiện tại vào một tập tin được hứa hẹn. Tuy nhiên, nó làm những gì câu hỏi yêu cầu.
mcepl

1

Bạn cũng có thể thử :!wc %trong Vim, mặc dù nó tính kích thước của tệp trên đĩa chứ không phải trong bộ đệm của Vim. Điều này có thể hoặc không thể là những gì bạn muốn.


Điều này sẽ tính những gì trên đĩa (nếu có), không phải những gì trong bộ đệm - vì vậy nếu bạn đã thay đổi nội dung của bộ đệm kể từ lần lưu cuối cùng hoặc không lưu lại, bạn sẽ nhận được số sai (hoặc thậm chí là lỗi nếu bạn đang tạo một tập tin).
Stephen Kitt

Contra Stephen, đây một giải pháp chính xác cho "Làm cách nào tôi có thể đếm số lượng từ trong một tệp trong khi chỉnh sửa tệp trong vim", trong khi câu trả lời được chấp nhận nghiêm túc không nói (mặc dù nó mơ hồ có nghĩa là gì hoặc có vấn đề gì không ).
Michael Homer

Thật buồn cười là nó tương tự (trừ -wcờ để hạn chế đầu ra thành các từ) cho câu trả lời xóa từ năm 2014 bởi D_Bye (người dường như tự xóa nó).
Jeff Schaller

0

Các plugin như vim-air có thể cung cấp số lượng từ cho một tệp (và các lựa chọn) như một phần của thanh trạng thái.


Câu trả lời này không chỉ liên kết. Tôi không bao gồm các chi tiết cụ thể của bất kỳ plugin cụ thể nào, bởi vì (như bạn nói) các plugin cụ thể có thể trở nên lỗi thời.
Patrick Sanan

Tôi đứng sửa. Tuy nhiên tôi sẽ nói trong tương lai bạn nên cố gắng bao gồm các bước có liên quan để thực hiện giải pháp bạn đang trình bày. Cảm ơn bạn!
kemotep

0

Đối với những người muốn đếm số lượng từ trong một đoạn văn bản nhất định (không phải toàn bộ tệp), hãy sử dụng \S\+regrec.

  1. Chọn văn bản quan tâm (chế độ trực quan)
  2. :s/\S\+//gn

Kết quả. Vim sẽ cho bạn thấy một cái gì đó như thế này:10 matches on 1 line

Khi bạn nhấn :trong chế độ trực quan, vim sẽ điều chỉnh lệnh của bạn có '<,'>nghĩa là áp dụng lệnh đối với văn bản đã chọn.

\S\+ nắm bắt các từ, đó là các nhóm ký tự được phân tách bằng khoảng trắng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.