所以我一般有3个缓冲区在Emacs开放。
- 一个缓冲器,用于实际的代码我写。
- 用于单元测试一个缓冲所述代码。
- 第三缓冲器,显示单元测试的结果。 该缓冲区应运而生其他两个缓冲区以下运行我的单元测试CX空间 。
如何禁用这个第三缓冲,这样当我按下CXØ我只是缓冲1之间切换缓存2? 目前,我缓冲器1之间切换,然后缓冲区2中,那么缓冲器3,然后缓冲液1,等等。具体地讲,我想CX O操作缓冲器1和2之间只有开关。
谢谢。
所以我一般有3个缓冲区在Emacs开放。
如何禁用这个第三缓冲,这样当我按下CXØ我只是缓冲1之间切换缓存2? 目前,我缓冲器1之间切换,然后缓冲区2中,那么缓冲器3,然后缓冲液1,等等。具体地讲,我想CX O操作缓冲器1和2之间只有开关。
谢谢。
一般解决这个(可以看看)像下面这样:
(defvar ignore-windows-containing-buffers-matching-res '("\\*Help")
"List of regular expressions specifying windows to skip (if window contains buffer that matches, skip)")
(defadvice other-window (before other-window-ignore-windows-containing activate)
"skip over windows containing buffers which match regular expressions in 'ignore-windows-containing-buffers-matching-res"
(if (and (= 1 (ad-get-arg 0)) (interactive-p))
(let* ((win (next-window))
(bname (buffer-name (window-buffer win))))
(when (some 'identity (mapcar '(lambda (re)
(string-match re bname))
ignore-windows-containing-buffers-matching-res))
(ad-set-arg 0 2)))))
自定义变量是一个正则表达式匹配你想跳过缓冲区名字。
Trey的回答会做正是你想要的(至少它看起来会;我还没有尝试过)。 一个更通用的解决方案是使用swbuff
有两种swbuff-x
或我自己swbuff-advice
。 关于这三个信息可以在上找到的Emacs维基swbuff页 。