代码之家  ›  专栏  ›  技术社区  ›  Skilldrick

如何关闭Emacs中自动打开的窗口?

  •  26
  • Skilldrick  · 技术社区  · 15 年前

    这可能是一个非常幼稚的Emacs问题-我是新来的。

    当我评估一个lisp表达式时,如果有错误,调试器会自动出现在另一个窗口中。如果我打开了*scratch*和*info*(前者用于尝试lisp,后者用于阅读它),那么调试器将在*info*所在的窗口中打开。现在,我必须切换到那个窗口,然后将它改回*info*,然后再返回到*scratch*。(如果我对缓冲区列表执行C-XC-B操作,也会发生同样的事情。)我想必须有一种方法可以不使用这么长的命令序列就关闭该窗口。有人能启发我吗?

    7 回复  |  直到 8 年前
        1
  •  24
  •   Bahbar    15 年前

    至少在我的emacs(22.3)上,当调试器弹出时,它的窗口会变成活动窗口。那里,按压 Q 如果你想退出调试程序,就退出吧。此时,它也脱离了递归编辑。

        2
  •  17
  •   spk    13 年前

    据我所知,您希望关闭另一个窗口中的缓冲区,而不移动当前窗口中的光标。

    我没有任何现有的函数可以做到这一点,所以我推出了自己的函数。

    (defun other-window-kill-buffer ()
      "Kill the buffer in the other window"
      (interactive)
      ;; Window selection is used because point goes to a different window
      ;; if more than 2 windows are present
      (let ((win-curr (selected-window))
            (win-other (next-window)))
        (select-window win-other)
        (kill-this-buffer)
        (select-window win-curr)))
    

    您可以将它绑定到“c-x k”或其他一些有点难按的键上,这样您就不会误按它了。

    (global-set-key (kbd "C-x K") 'other-window-kill-buffer)
    

    我经常用这个!(对于帮助缓冲区、编译缓冲区、grep缓冲区和纯旧缓冲区,我希望现在关闭,而不移动该点)

        3
  •  13
  •   Zsolt Botykai    15 年前

    我通常使用 delete-other-windows 命令。 C-x 1 .

    它是如此的有规律,以至于我重新回到了F4。

    官方文件: http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.htmla

    高温高压

        4
  •  6
  •   James Sulak    15 年前

    使用 winner mode ,可以使用键绑定C-C左箭头返回到上一个窗口配置。当然,这实际上并没有杀死新的缓冲区,但它确实隐藏了它。

        5
  •  4
  •   legoscia    15 年前

    我想你在找 C-X 4 C-O 在“其他”窗口中显示缓冲区而不切换到该窗口。

    如上所述,在回溯缓冲区的情况下,您可能希望使用 Q ,以退出递归编辑。

        6
  •  2
  •   itirazimvar    8 年前

    尝试使用 popwin-mode . 自动关闭窗口真的很好。

    很快我会试图描述

    你打开 undo-tree-visualize 比你找到正确的分支之后你改变窗口 switch-window 它会自动关闭其他窗口

        7
  •  1
  •   Trey Jackson    15 年前

    一种可能的解决方案是使用窗口管理包。存储您的“首选”窗口安排,当调试器/缓冲区窗口弹出并完成后,恢复到您的首选安排。

    有许多包可供选择,请参见: switching window configurations 在维基上。

    此外,您可能希望找出通常会触发弹出额外(不需要的)窗口的操作,并使用该操作在窗口弹出之前触发保存窗口配置。

    如果您想自己滚动(这很简单),您可以保存窗口外的配置,然后像这样恢复:

    (setq the-window-configuration-i-want (current-window-configuration))
    (global-set-key (kbd "<f7>") 
           (lambda () (interactive) 
                (set-window-configuration the-window-configuration-i-want)))
    

    诀窍是找出在哪里放置 the-window-configuration-i-want .