読者です 読者をやめる 読者になる 読者になる

current-bufferとwindow-buffer

d:id:cubicdaiya:20080104で書いたelispを少し改造して、
現在のスクリーンでひらいているバッファが*scratch*の場合は、
新しいスクリーンを作成せずにそのままswitch-to-bufferするようにした。

改造部分(前)

  (defun create-new-buf (buf)
    (elscreen-create)
    (switch-to-buffer buf))

改造部分(今)

(defun create-new-buf (buf)
    (if (equal elscreen-default-buffer-name (buffer-name (window-buffer)))
        (switch-to-buffer buf)
      (elscreen-create)
      (switch-to-buffer buf)))


最初、window-bufferじゃなくてcurrent-bufferってやったら全然うまくいかなくて、
current-bufferの値を見たらTAGSになっていた。current-bufferって今開いているバッファ
のことじゃないのかよ、と文句を言いつつ、window-bufferとやったら今度はエラーが出て、
実はwindow-bufferは変数じゃなくて関数だったという話。ややこしい。