同名ファイルを開いた時のタブ名にdir名つけて少しわかりやすくするLisp

ファイル名: -

同名のファイルの場合 バッファーの名前が<2>な感じになるので、代わりにディレクトリを付けてわかりやすく。(library/index.html みたいな)

 

※index.htmlがたくさんできてしまう人や readme.txt たくさん開く人向けかなぁ

 

(defun rename-buffer-with-directory (&optional BUFFER)
  "buffer に dir付きで名前を変える"
  (interactive)
  (unless BUFFER
    (setq BUFFER (selected-buffer)))
  (let ((tbn)(bn)(fl)(fln)(id)(idmax))
    (setq tbn (get-buffer-file-name BUFFER))
    (setq bn (buffer-name BUFFER))
    (setq idmax 2);最下層のDIR名からスタート
    (while
        (string-match "<[0-9]+>" bn)
      (setq bn (substring bn 0 (string-match "<[0-9]+>" bn))
            fl (split-string tbn "/")
            fln (length fl)
            id idmax)
     (while (and(not (rename-buffer (abbreviate-display-string (setq bn (concat (nth (- fln id) fl) "/" bn)) 35) BUFFER)) (>= id 0))
      ;多分不要
        (decf id))
      (setq bn (buffer-name BUFFER))
      ;上位層に移動
      (incf idmax))))

(add-hook '*find-file-hooks* 'rename-buffer-with-directory)
;(delete-hook '*find-file-hooks* 'rename-buffer-with-directory)
Delicious にシェア
Digg にシェア
reddit にシェア
LinkedIn にシェア
LINEで送る
email this
Pocket

542 views.



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です