Hyp*_*oad 9 windows emacs buffer
如果在几个窗口中拆分Emacs帧并打开一个新缓冲区,是否有可能告诉Emacs在哪个窗口中打开缓冲区.
特别是,如果一个窗口包含一个dired缓冲区,并且我想告诉Emacs在哪个其他打开的窗口中应该显示一个新文件.
如果Emacs框架例如像这样拆分:
____________________
| | |
| | |
| A | B |
| | |
| | |
--------------------
| | |
| C | D |
| | |
--------------------
Run Code Online (Sandbox Code Playgroud)
其中A,B,C和D是窗户.如果A包含一个dired缓冲区,我可以告诉Emacs在窗口D的新缓冲区中打开一个新文件吗?
这是另一个答案 -
你可以用冰柱做你想做的事.在冰柱模式中,C-x o通常other-window是icicle-other-window-or-frame.前缀arg为其提供了几种替代行为,其中一种(对于Emacs 24及更高版本)是选择将由下一个缓冲区显示操作(例如C-x C-f,C-x b)使用的窗口.
如果你使用双普通前缀arg会发生这种情况:C-u C-u C-x o.这会调用命令icicle-choose-window-for-buffer-display,你当然也可以绑定到任何其他键.
您可以按名称选择目标窗口(使用完成或循环等).
所有该命令都将变量设置icicle-next-window-for-display-buffer为您选择的窗口. 冰柱建议的命令display-buffer,switch-to-buffer以及switch-to-buffer-other-window使下,他们被称为一次,他们使用的是价值的窗口icicle-next-window-for-display-buffer.(在调用之后,它们会恢复正常行为.)
这也意味着,如果您有另一种选择窗口的方法,您更喜欢(例如使用此处提到的其他方法循环),那么您可以修改该方法以设置icicle-next-window-for-display-buffer为所选窗口,以获得相同的效果(在冰柱模式).IOW,你选择窗户的方式很重要; 只需将变量值设置为它,下一个缓冲区显示操作将使用它.