前端之家收集整理的这篇文章主要介绍了
windows – 告诉Emacs在特定窗口中打开新缓冲区,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
301_0@
如果在几个窗口中拆分Emacs帧并打开一个新缓冲区,是否有可能告诉Emacs在哪个窗口打开缓冲区.
特别是,如果一个窗口包含一个dired缓冲区,并且我想告诉Emacs在哪个其他打开的窗口中应该显示一个新文件.
如果Emacs框架例如像这样拆分:
____________________
| | |
| | |
| A | B |
| | |
| | |
--------------------
| | |
| C | D |
| | |
--------------------
其中A,B,C和D是窗口.如果A包含一个dired缓冲区,我可以告诉Emacs在窗口D的新缓冲区中打开一个新文件吗?
这是另一个答案 –
您可以使用Icicles执行您想要的操作.在Icicle模式下,C-x o(通常是其他窗口)是冰柱 – 其他窗口或框架.前缀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设置为您选择的窗口. Icicles建议命令display-buffer,switch-to-buffer和switch-to-buffer-other-window,以便下次调用它们时,它们使用的窗口是icicle-next-window-for-display-的值缓冲. (在调用之后,它们会恢复正常行为.)
这也意味着如果您有另一种选择窗口的方法,您更喜欢(例如使用here中提到的其他方法之一循环),那么您可以修改该方法以将icicle-next-window-for-display-buffer设置为选择的窗口,以获得相同的效果(在冰柱模式下). IOW,你选择窗户的方式很重要;只需将变量值设置为它,下一个缓冲区显示操作将使用它.