トップページ > Windows > 2010年12月04日 > 8f1r+CX2

書き込み順位&時間帯一覧

39 位/365 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000020000000002



使用した名前一覧書き込んだスレッド一覧
名無し~3.EXE
850
xyzzy Part16

書き込みレス一覧

xyzzy Part16
850 :名無し~3.EXE[sage]:2010/12/04(土) 14:16:10 ID:8f1r+CX2
>>849
俺は『終了時の状態を保存する』とは別に
こんな感じで終了時のセッションを保存してるよ

『セッションの自動保存』が無効のときに
終了時のセッションを *default-session-directory* に保存する
*default-session-directory* がセットされてなければホームディレクトリに保存する
セッションファイル名は設定ファイルの保存先のパス名からテキトーに命名する
セッションを保存する際に同名セッションがあればリネームでバックアップする
ファイルを参照しているバッファが一つもなければ保存しない

テキトーに命名されたセッションは load-auto-named-session でロードする
ロードするときにバックアップしか存在しなければそれをロードする

入りきらなかったのでコードは次のレスに
xyzzy Part16
851 :850[sage]:2010/12/04(土) 14:21:39 ID:8f1r+CX2
sed -e "s/  /\  /g" とかやったら要領制限に引っかかったのでそのまま貼ります
読みにくくてすまぬ

(defun get-auto-named-session-file-path ()
(let ((uc (remove-trail-slash (truename (user-config-path)))))
(merge-pathnames (format nil ".xyzzy.resume.~A.ssn"
(substitute-string (if (string-match (concat "^" (regexp-quote (si:system-root)) "\\(.*\\)$")
uc)
(match-string 1)
(substitute-string uc ":" ""))
"/" "."))
(if (and *default-session-directory*
(file-directory-p *default-session-directory*))
*default-session-directory*
(user-homedir-pathname)))))

(defun save-auto-named-session-on-save-history ()
(unless ed::*auto-save-session-file*
(let ((ssn (get-auto-named-session-file-path)))
(when (file-readable-p ssn)
(rename-file ssn (concat ssn ".bak") :if-exists :overwrite))
(when (delete-if-not 'get-buffer-file-name (buffer-list))
(save-session ssn t)))))
(add-hook '*save-history-hook* 'save-auto-named-session-on-save-history)

(defun load-auto-named-session ()
(interactive)
(let ((ssn (get-auto-named-session-file-path)))
(when (or (file-readable-p ssn)
(file-readable-p (setq ssn (concat ssn ".bak"))))
(let (ed::*current-session-file-name*)
(load-session ssn)))))


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。