emacs:缓冲区堆栈帧本地设置不起作用

时间:2014-06-21 16:02:23

标签: emacs buffer

我正在尝试激活buffer-stack.el中的帧本地设置,其中每个帧都维护自己的缓冲区堆栈。例如,我用C-x 3将我的框架分成两部分,然后我只查看左框架上的我的java缓冲区,只查看右框架上的文本/ ansi-term缓冲区。但是,遍历任一帧上的缓冲区堆栈将为我提供另一帧中堆栈顶部的缓冲区。

阅读完文档后,查看我的本地buffer-stack.el,我有以下内容:

(defcustom buffer-stack-frame-local t
  "Does each frame maintain a seperate buffer stack?
If you switch this off during a GNU Emacs session, the initial buffer
ordering might be strange."
  :type 'boolean
  :group 'buffer-stack)

为什么框架本地设置不起作用?我需要手动配置吗?我的ansi-term缓冲区可能会干扰帧本地设置吗?这也是一个非常古老的功能,所以可以通过框架本地设置来解决这个问题吗?

我使用来自herebuffer-stack.el使用Emacs 24.3在Ubuntu 14.04上,并阅读http://www.emacswiki.org/emacs/ControlTABbufferCycling中的文档。

另外,以下是我.emacs下的设置,如果有帮助的话:

;; start buffer-stack keybindings
(require 'buffer-stack)

(global-set-key [(f9)] 'buffer-stack-bury)
(global-set-key [(control f9)] 'buffer-stack-bury-and-kill)
(global-set-key [(f12)] 'buffer-stack-track)
(global-set-key [(control f12)] 'buffer-stack-untrack)

(global-set-key (kbd "C-q") 'buffer-stack-bury)
(global-set-key [C-tab] 'buffer-stack-down)
(global-set-key [C-S-iso-lefttab] 'buffer-stack-up);Linux
(global-set-key [C-S-tab] 'buffer-stack-up);Windows/Linux

2 个答案:

答案 0 :(得分:3)

你的术语不太正确。点击C-x 3运行split-window-right,这意味着您已在同一框架中创建了两个 windows ,因此他们共享相同的缓冲区堆栈。如果您点击C-x 5 2(或M-x make-frame),您将拥有两个框架,这就是您想要的。

答案 1 :(得分:2)

正如Dan所说,你会混淆一个"窗口"和#34;框架"。

此外,"每个帧是否保持一个单独的缓冲区堆栈?"表示每个帧保持自己的缓冲区顺序,而不是完全不同的缓冲区列表。正如您所看到的那样,没有工具来管理每帧的缓冲区列表,因此这种功能不在缓冲区堆栈包中。

但是,您可以实现过滤以完成您想要的效果,就像在此处完成的那样:http://www.emacswiki.org/emacs/buffer-stack-suppl.el