What alternate session managers are available for Emacs?

后端 未结 5 1953
我寻月下人不归
我寻月下人不归 2020-12-13 21:36

I have read the page in Emacs wiki which contains a list of session manager plugins. But after trying all of these, I am still not happy with any of them.

By compari

5条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-13 21:56

    Since you don't like the base functionality of desktop.el, throw some elisp around it:

    (defvar my-desktop-session-dir
      (concat (getenv "HOME") "/.emacs.d/desktop-sessions/")
      "*Directory to save desktop sessions in")
    
    (defvar my-desktop-session-name-hist nil
      "Desktop session name history")
    
    (defun my-desktop-save (&optional name)
      "Save desktop with a name."
      (interactive)
      (unless name
        (setq name (my-desktop-get-session-name "Save session as: ")))
      (make-directory (concat my-desktop-session-dir name) t)
      (desktop-save (concat my-desktop-session-dir name) t))
    
    (defun my-desktop-read (&optional name)
      "Read desktop with a name."
      (interactive)
      (unless name
        (setq name (my-desktop-get-session-name "Load session: ")))
      (desktop-read (concat my-desktop-session-dir name)))
    
    (defun my-desktop-get-session-name (prompt)
      (completing-read prompt (and (file-exists-p my-desktop-session-dir)
                                   (directory-files my-desktop-session-dir))
                       nil nil nil my-desktop-session-name-hist))
    

    EDIT:

    Getting some votes, so add niceties like completing-read and history

提交回复
热议问题