タイトル通り、ファイル名の冒頭に日付を加える機能をEmacs Lispで書きました。

理由

もともとhugoブログでURLが日本語のファイル名になるのが若干気持ち悪いと感じていました。 そこで、ファイル名の冒頭に日付を加えるコマンドがあればポチッといけるのではないかと。

ブログ以外にも重複しないようにファイル名に日付と時刻を加えることは多々あると思う。そういったときに圧倒的に便利だと思ったので作ってみました。 どうでもいいスクラッチのファイルとか、その他orgのメモとかのファイル名を考える手間が省ける。

githubでリポジトリ作って公開するのは仰々しい。適切な機能があった気がするけど、これ書いているのオフラインなので後で調べます。たぶん。 一応公開しておきますが、普通にdelete-fileとか使ってるので使うのはおすすめしません。元が消えます。

(defun getfilename ()
  (interactive)
  (file-name-nondirectory
   (buffer-file-name)))

(defun insert-current-time()
  (interactive)
  (format-time-string "%Y%m%d%H%M%S" (current-time)))

(defun rename-file-buffer ()
  (interactive)
  (let ((now-name (buffer-file-name)))
    (rename-file (getfilename) (concat (insert-current-time) "-" (getfilename)))
    (rename-buffer (concat (insert-current-time) "-" (getfilename)))
    (delete-file now-name)))

(global-set-key (kbd "C-c r") 'rename-file-buffer)

何度でも言う。

自分用に2分くらいで書いてあるから、使うときは自己責任でね。おすすめはしません。