[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: Word Count?
- X-ml-count: 2007
- Subject: Re: Word Count?
- From: chiyu <ma11092c@xxxxxxxxxxxxxxxxx>
- Date: 17 Mar 2000 21:58:22 +0900
- User-agent: Nana-gnus/6.13.9 SEMI/1.13.5 (Meihō) FLIM/1.13.2 (Kasanui) Emacs/20.4 (i386-*-windows98.1998) MULE/4.1 (AOI) Meadow/1.10 (TSUYU)
こんにちは。chiyu@W3で掲示板に書き込む時はDOS改行の設定を(汗)、
といいます。
# mule-retrieval-coding-systemを変更すればいいみたいです。
# cashe使用時はメニューバーからOption内の
# Use Cashe Only をオフにしましょう(^^;;。
Takeshi TAKIYAMA <takiyama@xxxxxxxxxxxxxxxxxxxxxxx> writes:
> 複数行にわたるとき、M-=は改行コードまでカウントしてしまいますが
> これは、仕方がないですか?
M-x describe-key <Enter> M-= <Enter>
で、M-= が count-lines-region にバインドされていることがわかり、
M-x describe-function <Enter> count-lines-region <Enter>
で、この関数の説明が読めて、その*Help*バッファでTabキーを
押して、simple という単語の上にカーソルを移動して、Enterキーを
押すと、この関数の定義が読めます。
(describeうんぬんは、メニューバーからHelp -> Describeでもよい。)
これを見ると、なんだ、文字数−行数−1で(改行コードを含まない)文字数が
わかるよな、と思ったのですが、そんなに簡単ではなかったです(笑)。
次のコードでどうでしょう?
(defun my-count-lines-region (start end)
(interactive "r")
(save-excursion ;これと
(save-restriction ;これは オマジナイ。(ちゃんと調べましょう(爆))
(let ((lf-num 0)) ;改行文字の個数用、初期化している。
(goto-char start) ;指定領域の先頭に行く。
(while (re-search-forward "[\n\C-m]" end t) ;改行文字のカウント
(setq lf-num (+ 1 lf-num))) ;(つまり、searchできる度に1足す)
(message "指定領域には%d文字(除改行文字)、%d行、%d文字(含改行文字)ある。"
(- end start lf-num) (count-lines start end) (- end start))))))
以上。お元気で。
chiyu(あかば のぶゆき)
http://ha1.seikyou.ne.jp/home/akairingosaita/meadow/index.htm