August 08, 2009
vimでの文字数カウント方法
最近、なるほどと思ったvimの使い方を紹介する。
vimで次のコマンドを実行すると、
:%s/./&/g
編集中のテキストの文字数をカウントする事が出来る。
このコマンドにおける「.」は、正規表現で言うところの、「(改行文字以外の)任意の一文字にマッチ」であり、「&」は「マッチした文字列」を意味するので、結局上記のコマンドは、「各文字を、その文字自身で置換する」ということなる。その過程で、何箇所にマッチしたかが表示されるので、結果、テキストの中身を変えずに文字数のカウントが出来る、という訳だ。
「%」の代わりに、
:10,15s/./&/g
のようにすれば、特定の行間でカウントすることも可能。置換における範囲指定のやり方を覚えておけば、そのまま応用できる。
もちろん日本語とアルファベットが混在しているテキストでもちゃんと動作する。
vimで次のコマンドを実行すると、
:%s/./&/g
編集中のテキストの文字数をカウントする事が出来る。
このコマンドにおける「.」は、正規表現で言うところの、「(改行文字以外の)任意の一文字にマッチ」であり、「&」は「マッチした文字列」を意味するので、結局上記のコマンドは、「各文字を、その文字自身で置換する」ということなる。その過程で、何箇所にマッチしたかが表示されるので、結果、テキストの中身を変えずに文字数のカウントが出来る、という訳だ。
「%」の代わりに、
:10,15s/./&/g
のようにすれば、特定の行間でカウントすることも可能。置換における範囲指定のやり方を覚えておけば、そのまま応用できる。
もちろん日本語とアルファベットが混在しているテキストでもちゃんと動作する。