August 08, 2009

vimでの文字数カウント方法

最近、なるほどと思ったvimの使い方を紹介する。

vimで次のコマンドを実行すると、
:%s/./&/g
編集中のテキストの文字数をカウントする事が出来る。

このコマンドにおける「.」は、正規表現で言うところの、「(改行文字以外の)任意の一文字にマッチ」であり、「&」は「マッチした文字列」を意味するので、結局上記のコマンドは、「各文字を、その文字自身で置換する」ということなる。その過程で、何箇所にマッチしたかが表示されるので、結果、テキストの中身を変えずに文字数のカウントが出来る、という訳だ。

「%」の代わりに、
:10,15s/./&/g 
のようにすれば、特定の行間でカウントすることも可能。置換における範囲指定のやり方を覚えておけば、そのまま応用できる。

もちろん日本語とアルファベットが混在しているテキストでもちゃんと動作する。 


les_paul_sp
posted at 19:29

トラックバックURL

この記事へのコメント

1. Posted by tyru   December 24, 2010 20:18
ノーマルモードで<C-g>やg<C-g>でも文字数確認できますよー。
もし部分的に調べたいならヴィジュアルモードで選択して上の :s/./&/g でできますね。
あと個数だけ表示して実際に置き換えを行わないnなんてフラグもあります。(置き換えを行わないので範囲が大きい場合も速い?詳しくは :help s_flags で)
:s/./&/gn

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔