[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: Word Count?
- X-ml-count: 2008
- Subject: Re: Word Count?
- From: YAMAMOTO Kouji 山本晃治 <kouji@xxxxxxxxx>
- Date: Sat, 18 Mar 2000 01:56:23 +0900 (JST)
- User-agent: T-gnus/6.14.0 (based on Gnus v5.8.2) (revision 12) SEMI/1.13.7 (Awazu) PGPGPG CLIME/1.13.5 (加賀福岡) Emacs/20.6 (i386-unknown-freebsdelf3.3) MULE/4.0 (HANANOEN)
山本と申します.
In message <uu2i57kmo.wl@xxxxxxxxxxxxxxxxxxxxxxxx>,
Mito <mit@xxxxxxxxxxxxxxx> writes:
> 瀧山> 例えば
> 瀧山> -----
> 瀧山> abstract{
> 瀧山> This paper descrive foo is dummy.
> 瀧山> But, How funny it is.
> 瀧山> }
> 瀧山> このペーパーは、テストです。
> 瀧山> でもfooって一体だれが言い出したんだろう。
> 瀧山> うーん???
> 瀧山> -----
>
> 瀧山> アブストラクトは何word、日本語部分は何文字、と言った具合です。
>
> これで 11 word になればいいんですよね?
> こちらでは M-x how-many RET \w+ RET で 11 になりますが...。
context-free のような単語は 1 word でしょうから,
M-x how-many RET [-\w]+ RET
などとすれば word 数のカウントになるでしょうか.
なんにしても,word 数や字数を数える状況は,精神的に追い詰められてい
るときが(ぼくの場合)多いので,疑心暗鬼になってしまって,カーソルを
左に動かしながら数えていました.アブストラクトの修正のたびにそれを
やるのが疲れてしまって,emacs にカーソルを動かして数えてもらうこと
にしたのが,つぎの恥ずかしい emacs-lisp です.
リージョンを指定して,M-x wc-region で line 数, word 数,字数を数え
ます.ただしリージョンの最後が改行またはスペースである必要がありま
す.
(defun wc-region (start end)
(interactive "r")
(save-excursion
(save-restriction
(let ((c 0) (l 0) (w 0) (in-word nil) c-after)
(goto-char start)
(while (< (point) end)
(setq c-after (char-after (point))) ; no need (point) if emacs 20
(if (= c-after ?\n)
(setq l (1+ l)))
(if (or (= c-after ?\n) (= c-after ? ) (= c-after ?\C-i))
(if in-word
(setq w (1+ w) in-word nil))
(setq c (1+ c) in-word t))
(forward-char))
(message (format "%d lines, %d words, %d characters" l w c))))))
# 一つのファイルやバッファにたくさんの修正バージョンのアブストラク
# トを並べているので,リージョン内のみの word 数を数えることができ
# ることは必須でしょう.
--
kouji