【发布时间】:2012-02-10 23:28:14
【问题描述】:
我喜欢使用 emacsclient 在不同的虚拟桌面上打开新的 emacs 框架。这很好用,除了当emacs决定切换帧时,如果我切换到已经在除焦点之外的帧中打开的缓冲区时会很痛苦。有没有办法禁用此帧重用?
【问题讨论】:
标签: emacs
我喜欢使用 emacsclient 在不同的虚拟桌面上打开新的 emacs 框架。这很好用,除了当emacs决定切换帧时,如果我切换到已经在除焦点之外的帧中打开的缓冲区时会很痛苦。有没有办法禁用此帧重用?
【问题讨论】:
标签: emacs
你需要自定义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 可能是最好的做法。
【讨论】:
(setq iswitchb-default-method 'samewindow) 似乎在做我想做的事。