ivy-push-view 怎么记不住

重启打开 ivy-switch-view 一片空白,没有记录。

相关配置都有开,怎么回事?

(recentf-mode 1)
(setq recentf-auto-cleanup 'never 
  recentf-max-saved-items 50
  recentf-max-menu-items 15)
  
;; ivy
(setq ivy-use-virtual-buffers t)

ivy views好像没有持久化的,重启就没有了。去问问 aboabo 吧

1 个赞

可以自己用desktop存一下:desktop-globals-to-save desktop-locals-to-save
另外可以试试eyebrowse。

我自己写了几个小函数做这个事情,然后加两个hook,关闭时自动保存,开启时加载,clear函数可以把当前的所有ivy-views都清空:

;;; ================================================================
;;; hack: save and load `ivy-views'                            BEGIN
;;; ================================================================
(defun peng-save-ivy-views ()
  (interactive)
  (with-temp-file "~/.emacs.d/ivy-views"
    (prin1 ivy-views (current-buffer))
    (message "save ivy-views to ~/.emacs.d/ivy-views")))
(defun peng-load-ivy-views ()
  (interactive)
  (setq ivy-views
        (with-temp-buffer
          (insert-file-contents "~/.emacs.d/ivy-views")
          (read (current-buffer))))
  (message "load ivy-views"))
(defun peng-clear-ivy-views ()
  (interactive)
  (setq ivy-views nil))
;;; add auto save
(add-hook 'kill-emacs-hook #'(lambda ()
                               (peng-save-ivy-views)))
(add-hook 'emacs-startup-hook #'(lambda ()
                                  (peng-load-ivy-views)))
;;; ================================================================
;;; hack: save and load `ivy-views'                              End
;;; ================================================================
1 个赞

你提到的配置并不相干,而且也没说会记住,你需要自己保存 ivy-views 这个变量,除了上面提到的办法,还可以用自带的 savehist-mode,设置很简单

(setq savehist-additional-variables '(ivy-views))
(savehist-mode)
3 个赞

原来就这么简单。。。

现在 (savehist-printable (symbol-value 'ivy-views)) 会返回 nil,导致 ivy-views 不会存下来,有知道为啥么

windows-config 没法 print? 上面的函数也不行

window-configuration 从这个 commit 加进去的, 那之后 ivy-views 应该就不能存了.

window-configuration 里面看起来有一些指针, 感觉很难序列化了.

1 个赞

现在有没有功能类似ivy-push-view,重启emacs可以记住的替代方案?