展示最近访问的buffer

现在每次切换buffer 都是C x b, 然后选择, 估计很多时候 我直接 switch-to-{prev|next}-buffer 就可以了, 但我记不住{prev||next} 是谁, 所以我想在buffer 里面显示一下 最近访问的5个buffer。

现在c-x b 绑定的是 (helm-buffers-list), 但每次还是要c-x b 选择

有现有的插件可以做这个吗?

难道你不用 helm or ivy?

你用helm或者ivy吗,ivy有ivy-switch-buffer,helm也有相应的函数

用helm, 现在c-x b 绑定的是 (helm-buffers-list), 每次还是要c-x b 选择啊

如果能是觉得C-x b麻烦, 那你可以换个快捷键,如果你是觉得选buffer麻烦,那就没办法了

这种?

ivy ,并设置virtual buffer

这个正是我需要的, 多谢!

可以试试这个,不用想prev/next,只要记得最近一个是谁(反复调用这个函数会在buffer a和b之间来回切)。这样不用switch-to-buffer可以达到的buffer数为 当前window数*2,很多时候也够用了。

(defun spacemacs/alternate-buffer (&optional window)
  "Switch back and forth between current and last buffer in the
current window."
  (interactive)
  (let ((current-buffer (window-buffer window)))
    ;; if no window is found in the windows history, `switch-to-buffer' will
    ;; default to calling `other-buffer'.
    (switch-to-buffer
     (cl-find-if (lambda (buffer)
                   (not (eq buffer current-buffer)))
                 (mapcar #'car (window-prev-buffers window))))))

另外这个最常用的操作用默认的C-x b也太自虐了,起码把序列长度从两个键换成一个键吧……

我是把prev和next的名字放在mode-line上, 然后设置快捷键切换到prev和next的buffer。