[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacsでのバッファ名の文字列による取得について
- To: bep@argv.org
- Subject: emacsでのバッファ名の文字列による取得について
- From: Kazunori MINATANI <99112004@gakushuin.ac.jp>
- Date: Sun, 14 Jan 2001 03:58:34 +0900
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
- User-Agent: Wanderlust/2.5.4 (Smooth) EMY/1.13.9 (Art is long, life is short) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/20.7 (i386-debian-linux-gnu) MULE/4.0 (HANANOEN)
南谷です。いつもお世話になっています。
ちょっと時間に余裕ができたので、昨日からelispの勉強をしています。
それでemacsでのバッファ名の文字列による取得について分からないことが
あるので、どなたかご存じでしたら、教えてください。
任意のバッファの名前を文字列で参照し、目的のバッファの名前と比較して、
それが目的のバッファであるかを調べたいのですが、うまくいきません。
elisp-manual-ja - Japanese version of Emacs Lisp Reference Manual
によると
> -- Function: buffer-name &optional BUFFER
> この関数は, BUFFERの名前を文字列で返す. BUFFERを指定しないと, デフォ
> ルトはカレントバッファである.
>
> `buffer-name'が`nil'を返す場合, BUFFERが削除されたことを意味する.
> *Note Killing Buffers::.
>
> (buffer-name)
> => "buffers.texi"
とのことなので、
(if (string= (buffer-name buffer) "\*Dialogue\*")
(dtk-speak string))
というようなコードを書いたのですが、
Wrong type argument: bufferp, ("*Dialogue*")
error in process filter: Wrong type argument: bufferp, ("*Dialogue*" "*Others*") [8 times]
というようなエラーがでます。
(たぶんこの時buffer-nameは*Dialogue*を返しているはずです。
何度か呼ばれる中で*Others*も返しているはずです。)
これは(バッファ名の文字列ではなく)バッファそのものを指し示す変数を
参照していると興っているように思うのですが、ちょっと理由が分かりません。
それとbep(emacspeak)が*Completion*をkillしているのは、やはり
なにか理由のあることなのでしょうか?emacspeak-kill-buffer-carefully
で明示的に行っているようですが、*Completion*を手動で調べたい
ことがしばしばあるので、ちょっと困っています。