如何保存/管理(命名)layout?


#1

我知道ivy可以用来保存和管理layout,但是有个疑问:

如何保存/管理当前的 layout:保存到文件中,并且命名以便下次使用(这个可以用ivy实现吗?)。

非 Spacemacs 用户 :innocent:


#3

可以保存下来吗


#4
(defun my/load-my-layout ()
  (interactive)
  (persp-load-state-from-file (concat persp-save-dir "ztlevi")))

(defun my/save-my-layout ()
  (interactive)
  (if (yes-or-no-p "Do you want to save layout?")
      (persp-save-state-to-file (concat persp-save-dir "ztlevi"))))

不过自从我习惯了spacemacs/ivy-persp-switch-project,基本上就不用上面的函数了。

(defun spacemacs/ivy-persp-switch-project (arg)
  (interactive "P")
  (require 'counsel-projectile)
  (advice-add 'counsel-projectile-switch-project-action
              :before #'spacemacs/ivy-persp-switch-project-advice)
  (ivy-read "Switch to Project Perspective: "
            (if (projectile-project-p)
                (cons (abbreviate-file-name (projectile-project-root))
                      (projectile-relevant-known-projects))
              projectile-known-projects)
            :action #'counsel-projectile-switch-project-action
            :caller 'spacemacs/ivy-persp-switch-project)
  (advice-remove 'counsel-projectile-switch-project-action
                 'spacemacs/ivy-persp-switch-project-advice))

#6

我用start-process开了个buffer 或者是我在shell里运行了sqlite3

下次重启的时候 怎么恢复这两个buffer呢?

如果只是打开个文件 意义不是很大吧

保存layout 最基础的函数是 current-window-configuration 是一个C函数

如果你kill了shell 他并不能给你创建一个shell


#7

persp-mode或eyebrowse建立layouts,内置的desktop-mode来保存它们。

  (desktop-save-mode 1)
  (push '(company-posframe-mode . nil)
      desktop-minor-mode-table)
  (run-with-idle-timer 30 t (lambda () (desktop-save "~/.emacs.d")))

#8

用这个