【问题标题】:Emacs opens ibuffer or compilation in same window rather than other windowEmacs 在同一个窗口而不是其他窗口中打开 ibuffer 或编译
【发布时间】:2015-06-18 23:34:43
【问题描述】:

我已经使用 emacs 很多年了。过去一年左右,有一个烦人的问题,就是有时 Ibuffer 或编译缓冲区运行在我已经在的同一个窗口中。我通常打开 2 个缓冲区,一个在另一个之上。我总是希望 Ibuffer 在我目前不在的那个中打开。但它似乎是随机选择的。这是错误还是功能?我能阻止它吗?我已经多次搜索答案,但我没有找到答案。我在终端中运行 GNU Emacs 24.5.1。谢谢。

【问题讨论】:

  • 另一个窗口是否被强烈专用,这就是为什么您当前的窗口被选中的原因? gnu.org/software/emacs/manual/html_node/elisp/… 你可能想测试另一个窗口。打开ibuffer.el 源代码并寻找负责显示缓冲区的代码怎么样——M-x find-library RET ibuffer RET——你会寻找类似的东西:(if other-window-p (funcall (if noselect (lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf) (funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
  • 如何自定义变量ibuffer-use-other-window -- 它有一个文档字符串说明:“如果非零,默认在另一个窗口中显示Ibuffer。”默认值为nil。我建议您考虑将这个问题编辑/限制为ibuffer 并为compilation 窗口打开一个新问题(如果谷歌没有点击)——我猜@987654329 可能有很多线程@window,但我自己没看过。
  • 自定义 ibuffer-use-other-window 似乎没有帮助。为了重现,我用emacs . 启动emacs,然后执行^x-b,然后点击n 让光标到scratch,点击return 打开scratch,然后执行^x-b 再次。它在与 scratch 相同的窗口中打开 ibuffer,顶部窗口带有目录列表,底部窗口带有 scratch

标签: emacs


【解决方案1】:

以下答案与ibuffer的用法有关:

原帖者不妨使用绑定到字母o的键盘快捷键,即ibuffer-visit-buffer-other-window。文档字符串指出该函数旨在: 在另一个窗口中访问这一行的缓冲区。 函数 ibuffer-visit-buffer-other-window 使用 pop-to-bufferswitch-to-buffer-other-window,这应该避免出现以下窗口专用:http://www.gnu.org/software/emacs/manual/html_node/elisp/Dedicated-Windows.html

返回键绑定到ibuffer-visit-buffer(它使用switch-to-buffer),并且文档字符串指出此函数旨在:访问此行的缓冲区。如果可选参数 SINGLE 不为零,则还要确保只有一个窗口。 可选参数可以通过键入 C-u RET 交互使用。

【讨论】:

  • 我确实在 ibuffer 中同时使用了 enter 和 o,并且它们都运行良好。对我不起作用的是当我打开 ibuffer 时,它会在当前窗口而不是另一个窗口中打开。
  • 你可能只是想要吗?:M-x ibuffer-other-window 而不是M-x ibufferibuffer-other-window 的文档字符串声明:“类似于 ibuffer,但默认显示在另一个窗口中。如果可选参数 FILES-ONLY 不为零,则为正在访问文件的缓冲区添加过滤器。 "
  • 我正在使用 ibuffer-other-window
猜你喜欢
  • 2023-01-27
  • 2014-08-07
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2014-10-15
  • 1970-01-01
相关资源
最近更新 更多