日報ファイルをリネームしているのでござるよ,手動で.だから自動化.
- コピー
- F2
- 前日の日付を付与
- 保存
していたので,xyzzyでさくっとは行かないまでも,revision-up.2.5hもかかってしまった.
単なる保存がC-x C-wなので,C-x wに割り当て.ファイル名の先頭に前日日付を挿入します.
; C-x wに割り当て (global-set-key '(#\C-x #\w) 'revision-up) (defun revision-up (initial) (interactive "sNew Filename: " :default0 (substitute-string (get-buffer-file-name) "\\(.*\\)/\\(.*\\)" (concat "\\1/" (format-date-string "%Y%m%d" (- (get-universal-time) 86400))"_\\2"))) (write-file initial))
以下,解説
(interactive "sNew Filename: " :default0 x) ;文字列を入力値として,ミニバッファにNew Filename: をプロンプトとして出力 ;入力値の初期値はxで,最終的な値は本関数revision-upの最初の引数(:defalut0)であるinitialに代入される (format-date-string "%Y%m%d" (- (get-universal-time) 86400)) ; 前日(86400秒前の年月日)の文字列を取得 (substitute-string (get-buffer-file-name) "\\(.*\\)/\\(.*\\)" (concat "\\1/" yesterday "_\\2") ; 現在のフルパスファイル名から,パス名とファイル名にぶったぎって,前日日付を挿入して置換
以上です.
LISPって関数探しにくいわ.