トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Buffer

Table of Contents

  バッファ名に親ディレクトリ名を足す

異なるディレクトリにある同名のファイルを複数同時に編集することが多い場合に。 ここでは、html+-mode, css-mode でのみそうする動作をさせている。 xyzzy Part7 538 を参考に。[1]

(defun add-parent-directory-name-to-buffer-name ()
  (let ((file-name (get-buffer-file-name)))
    (when file-name
      (setq file-name (split-string file-name "/"))
      (setq file-name (nthcdr (- (list-length file-name) 2) file-name))
      (rename-buffer (concat (cond ((equal buffer-mode 'css-mode) "# ") (t ""))
                             (car file-name) "/" (cadr file-name))))))

(add-hook 'ed::*html+-mode-hook* 'add-parent-directory-name-to-buffer-name)
(add-hook 'ed::*css-mode-hook* 'add-parent-directory-name-to-buffer-name)

 *scratch* バッファを終了時に保存 & 起動時に復元

XyzzyWiki にあったものに少しだけ手を加えて使っていました。ファイル名を引数として指定した場合にも,指定したファイル(のバッファ)がアクティブになるようにしたもの。

;;; *scratch* を終了時に保存
(add-hook '*kill-xyzzy-hook*
          #'(lambda ()
              (set-buffer (find-buffer "*scratch*"))
              (write-file "~/scratch")))

;;; *scratch* を起動時に復元
(add-hook '*post-startup-hook*
          #'(lambda ()
              (let ((f "~/scratch")
                    (b (selected-buffer)))
                (when (file-exist-p f)
                  (set-buffer (find-buffer "*scratch*"))
                  (insert-file-contents f t)
                  (set-buffer b)))))
  • [1]OHKUBO さんに,ファイルに関連付されていないバッファで「範囲外の値です: -1」エラーが発生していたのを修正して頂きました。m(_ _)m (2004-10-12)

最終更新時間:2005年01月05日 23時04分39秒 GMT