[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: emacsでのバッファ名の文字列による取得について



井上です。

Kazunori MINATANI <99112004@...> writes:

> (if (string= (buffer-name buffer) "\*Dialogue\*")
>   (dtk-speak string))

ここでbuffer-name()の引数のbufferにはなにが入っているのでしょうか。

> Wrong type argument: bufferp, ("*Dialogue*")

buffer-name()は引数としてbuffer型をほしがっているのに渡されたものがそれ
じゃない、と言っているようです。
buffer型はたとえば*scratch*バッファで

(get-buffer "*scratch*")^J
とタイプしたときに
#<buffer *scratch*>
と帰ってくるもので、バッファそのものを表します。
現在いるwindowに表示されているバッファを得るには
(window-buffer)
を評価します。

>  それとbep(emacspeak)が*Completion*をkillしているのは、やはり
> なにか理由のあることなのでしょうか?emacspeak-kill-buffer-carefully
> で明示的に行っているようですが、*Completion*を手動で調べたい
> ことがしばしばあるので、ちょっと困っています。

killしているのはおそらくその前にTABが押されたときの状態が保存されている
と都合が悪いのだと「思います」。
# これなのでBEPに対してあまり責任が持てないのでした。

現象から言うと、Mewのフォルダ等のcompletion(私がEmacspeakを参考にadvise
を書いた)ではTABを押してしゃべったところでC-x o すると読めるのですが、
find-file等Emacspeakが最初から持っているadviseではどうやらcompletionバッ
ファが消えて別の、たとえば*Messages*が表示された状態になるようですね。
killしてからEmacspeakがしゃべり始める間に実際のcompletionが働いて
completionバッファが再表示されているはずなのですが、どうしてでてこないん
でしょうね。
13.0では直っていたりするかも知れないので、ちょっと調べてみます。
頼りなくてすみません。

-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...
                    ICQ UIN: 74900690