现在每次切换buffer 都是C x b, 然后选择, 估计很多时候 我直接 switch-to-{prev|next}-buffer 就可以了, 但我记不住{prev||next} 是谁, 所以我想在buffer 里面显示一下 最近访问的5个buffer。
现在c-x b 绑定的是 (helm-buffers-list), 但每次还是要c-x b 选择
有现有的插件可以做这个吗?
现在每次切换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。