我已经咨询了这个资源:
http://www.emacswiki.org/cgi-bin/wiki/ControlTABbufferCycling,并尝试了buffer-stack.el,这很有用,但我发现用户体验稍微尴尬而无法在堆栈中进一步显示其他缓冲区.它也已过时(2002年),所以我想知道是否有改进的版本.该页面上的大多数其他链接也已损坏或非常旧.
我正在寻找一个ctrl选项卡基于堆栈的缓冲循环,类似于alt选项卡与windows一起使用的方式.理想情况下,它会在缓冲区列表中包含我当前位置的指示符.我不认为我想要的功能太具体,因为许多IDE已经具备此功能.
我想象一个类似于Eclipse中缓冲区循环的工具.选择如下:
我已经探索了其他选项,但似乎没有任何模仿已经在其他IDE(如Eclipse)中实现的功能.
我知道ido-mode,虽然它不适合我对快速基于堆栈的切换的需求.
我也知道其他非堆栈解决方案,如下所示:
但我更喜欢基于堆栈的交换机.
有什么建议么?这个功能在某个地方,甚至在开发中都可用吗?特别是带有索引指示符,如上面的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,但无论如何它都能完成它的工作.