vimでファイルを編集しながら、ファイル内の単語の数を数えるにはどうすればよいですか


21

コマンドラインwcでファイルの文字、単語、行をカウントするために使用できることを知っています。

vimで単語の数を数える方法はありますか?

回答:


22

独自のカウンターviを使用して、内部の単語と行をカウントできますvi

を押しg、次にCTRL-を押しgます。一番下の行は、たとえば次のようになります。

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

または、viのメソッドを使用してシェルコマンドを呼び出します。

:w !wc -w

これにより、:w最初にsave()コマンドが呼び出され、次にwc -w出力が表示されます。例:

:w !wc -w
344

Press ENTER or type command to continue

を押しEnterてに戻りviます。


実際には、:w !<cmd>構造の誤った説明です。コマンドに接続されているパイプに現在のバッファーを書き込みます。現在のバッファをファイルに個別に書き込むことはできません。それにもかかわらず、それは質問が求めたものを行います。
mcepl

1

:!wc %Vimで試すこともできますが、Vimのバッファーにあるものではなく、ディスク上のファイルのサイズをカウントします。これは、あなたが望んだことかもしれませんし、そうでないかもしれません。


これは、バッファにあるものではなく、ディスクにあるものをカウントします。したがって、最後の保存以降にバッファの内容を変更した場合、またはまったく保存しなかった場合、間違ったカウント(またはエラーファイルを作成しています)。
スティーブンキット

対照的に、これ「vimでファイルを編集しながらファイル内の単語の数を数える方法」に対する正しい解決策ですが、受け入れられた答えは厳密に言えばそうではありません(意味や意味が曖昧ですが) )。
マイケルホーマー

おもしろいのは-w、D_Bye(明らかに自己削除した)による2014年の回答の削除に似ている(出力を単語のみに制限するフラグを引いた)ことです。
ジェフシャラー

0

vim-airlineなどのプラグインは、ステータスバーの一部としてファイル(および選択)の単語数を提供できます。


この回答はリンクのみではありません。(おっしゃるように)特定のプラグインが古くなる可能性があるため、特定のプラグインの詳細は含めませんでした。
パトリックサナン

私は訂正します。ただし、今後は、提示しているソリューションを実装するための関連する手順を含めるようにしてください。ありがとうございました!
ケモテップ

0

特定のテキスト(ファイル全体ではない)内の単語数をカウントする場合は、\S\+regexpを使用します。

  1. 目的のテキストを選択します(視覚モード)
  2. :s/\S\+//gn

結果。Vimは次のようなものを表示します。10 matches on 1 line

:ビジュアルモードでヒットすると、vimはコマンドを先頭に追加します'<,'>。これにより、選択したテキストに対してコマンドが適用されます。

\S\+ 単語、つまり空白で区切られた文字のグループをキャプチャします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.