【问题标题】:how to convince emacs to stay on the same frame when changing buffers?如何说服emacs在更改缓冲区时保持在同一帧上?
【发布时间】:2012-02-10 23:28:14
【问题描述】:

我喜欢使用 emacsclient 在不同的虚拟桌面上打开新的 emacs 框架。这很好用,除了当emacs决定切换帧时,如果我切换到已经在除焦点之外的帧中打开的缓冲区时会很痛苦。有没有办法禁用此帧重用?

【问题讨论】:

    标签: emacs


    【解决方案1】:

    你需要自定义display-buffer的行为(这是switch-to-buffer和朋友们调用的函数)。第二个可选参数FRAME 需要设置为nil,以便函数在查找已经打开的缓冲区时只考虑当前帧。还要确保将display-buffer-reuse-frames 设置为nil(这是默认设置)。

    查看内置文档:C-h f display-buffer RET

    不幸的是,display-buffer 通常不会被直接调用。将switch-to-buffer 重新映射到您的自定义switch-to-buffer 可能是最好的做法。

    【讨论】:

    • 谢谢,显示缓冲区的帮助将我带到了 iswitchb 代码,它实际上已经为默认缓冲区切换策略提供了一个自定义挂钩。 (setq iswitchb-default-method 'samewindow) 似乎在做我想做的事。
    • @samwise 谢谢。很高兴知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多