我已经咨询了这个资源:
http://www.emacswiki.org/cgi-bin/wiki/ControlTABbufferCycling,并尝试了buffer-stack.el,这很有用,但我发现用户体验稍微尴尬而无法在堆栈中进一步显示其他缓冲区.它也已过时(2002年),所以我想知道是否有改进的版本.该页面上的大多数其他链接也已损坏或非常旧.
我正在寻找一个ctrl选项卡基于堆栈的缓冲循环,类似于alt选项卡与windows一起使用的方式.理想情况下,它会在缓冲区列表中包含我当前位置的指示符.我不认为我想要的功能太具体,因为许多IDE已经具备此功能.
我想象一个类似于Eclipse中缓冲区循环的工具.选择如下:
我已经探索了其他选项,但似乎没有任何模仿已经在其他IDE(如Eclipse)中实现的功能.
我知道ido-mode,虽然它不适合我对快速基于堆栈的切换的需求.
我也知道其他非堆栈解决方案,如下所示:
(global-set-key [C-tab] 'next-buffer) (global-set-key [C-S-iso-lefttab] 'prevIoUs-buffer);Linux (global-set-key [C-S-tab] 'prevIoUs-buffer);Windows/Linux
但我更喜欢基于堆栈的交换机.
有什么建议么?这个功能在某个地方,甚至在开发中都可用吗?特别是带有索引指示符,如上面的Eclipse中所示.这将是非常棒的 – 我想它会像弹出窗口或迷你缓冲区一样.
试试这个片段:
(defun ctrltab () "List buffers and give it focus" (interactive) (if (string= "*Buffer List*" (buffer-name)) ;; Go to next line. Go to first line if end is reached. (progn (revert-buffer) (if (>= (line-number-at-pos) (count-lines (point-min) (point-max))) (goto-char (point-min)) (forward-line))) (list-buffers) (switch-to-buffer "*Buffer List*") (delete-other-windows) (forward-line))) (global-set-key [C-tab] 'ctrltab)
它通常不如ido-switch-buffer,但无论如何它都能完成它的工作.