Bagaimana saya bisa menghitung jumlah kata dalam file saat mengedit file dalam vim

21

Saya tahu saya bisa menggunakan wcuntuk menghitung karakter, kata-kata dan baris file di baris perintah .

Apakah ada cara saya dapat menghitung jumlah kata saat vim ?

Michael Durrant
sumber

Jawaban:

22

Anda dapat menghitung kata dan garis di dalam vimenggunakan vipenghitung sendiri:

Tekan glalu CTRL- g. Maka intinya lihat contohnya seperti ini:

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

Atau gunakan vimetode untuk memanggil perintah shell:

:w !wc -w

Ini memanggil perintah save ( :w) terlebih dahulu dan kemudian wc -wdan menampilkan output. Contoh:

:w !wc -w
344

Press ENTER or type command to continue

Tekan Enteruntuk kembali ke vi.

kekacauan
sumber
Ini sebenarnya deskripsi yang salah tentang :w !<cmd>konstruk. Itu menulis buffer saat ini ke pipa yang terhubung ke perintah. Tidak ada tulisan terpisah dari buffer saat ini untuk file yang dijanjikan. Namun demikian, ia melakukan apa yang ditanyakan.
mcepl
1

Anda juga dapat mencoba :!wc %di Vim, meskipun itu menghitung ukuran file pada disk, bukan apa yang ada di buffer Vim. Ini mungkin atau mungkin bukan yang Anda inginkan.

Pranav Suri
sumber
Ini menghitung apa yang ada di disk (jika ada), bukan apa yang ada di buffer - jadi jika Anda telah mengubah konten buffer sejak penyimpanan terakhir, atau tidak disimpan sama sekali, Anda akan mendapatkan hitungan yang salah (atau bahkan kesalahan jika Anda sedang membuat file).
Stephen Kitt
Contra Stephen, ini adalah solusi yang tepat untuk "Bagaimana saya bisa menghitung jumlah kata dalam file saat mengedit file dalam vim", sedangkan jawaban yang diterima secara tegas tidak (meskipun ambigu apa yang dimaksud atau apakah itu penting ).
Michael Homer
Lucu bahwa itu mirip (minus -wbendera untuk membatasi output hanya kata-kata) untuk jawaban hapus dari 2014 oleh D_Bye (yang tampaknya menghapusnya sendiri).
Jeff Schaller
0

Plugin seperti vim-airline dapat memberikan jumlah kata untuk file (dan pilihan) sebagai bagian dari bilah status.

Patrick Sanan
sumber
Jawaban ini bukan hanya untuk tautan. Saya tidak memasukkan spesifikasi plugin tertentu, karena (seperti yang Anda katakan) plugin tertentu mungkin sudah usang.
Patrick Sanan
Saya berdiri dikoreksi. Namun saya akan mengatakan di masa depan Anda harus mencoba memasukkan langkah-langkah yang relevan untuk mengimplementasikan solusi yang Anda sajikan. Terima kasih!
kemotep
0

Bagi mereka yang ingin menghitung jumlah kata dalam bagian teks tertentu (bukan seluruh file), gunakan \S\+regexp.

  1. Pilih teks yang diinginkan (mode visual)
  2. :s/\S\+//gn

Hasil. Vim akan menunjukkan kepada Anda sesuatu seperti ini:10 matches on 1 line

Saat Anda menekan :dalam mode visual, vim menambahkan perintah Anda '<,'>yang berarti menerapkan perintah terhadap teks yang dipilih.

\S\+ menangkap kata, yaitu kelompok karakter yang dipisahkan oleh spasi.

Yuriy Pozniak
sumber