在Emacs中的两个窗口中打开同一文件

在Emacs中的两个窗口中打开同一文件,emacs,Emacs,假设我在一个Emacs窗口中打开了一个文件abc.cpp,我想在另一个窗口中打开它。如果我执行C-x C-f并找到文件,光标将返回到原始窗口,并且文件不会在我放置光标的窗口中打开。如果我执行C-xb并识别缓冲区,光标也会转到原始窗口。我希望我可以将光标放在其他窗口中,并在该窗口中打开文件,无论文件是否已打开。我该怎么做?一种似乎有效的方法是使用鼠标,进入“文件”菜单并选择“打开文件”,但这不是很好…这很简单!命令C-x 2将显示缓冲区的窗口水平拆分为两个。相关命令是垂直拆分窗口或者@vonbra

假设我在一个Emacs窗口中打开了一个文件abc.cpp,我想在另一个窗口中打开它。如果我执行C-x C-f并找到文件,光标将返回到原始窗口,并且文件不会在我放置光标的窗口中打开。如果我执行C-xb并识别缓冲区,光标也会转到原始窗口。我希望我可以将光标放在其他窗口中,并在该窗口中打开文件,无论文件是否已打开。我该怎么做?一种似乎有效的方法是使用鼠标,进入“文件”菜单并选择“打开文件”,但这不是很好…

这很简单!命令
C-x 2
将显示缓冲区的窗口水平拆分为两个。相关命令是垂直拆分窗口

或者@vonbrand说,您可以随时调用
新帧
(M-x
新帧
),当前打开的文件将在新帧(窗口)中打开。

如果您在给定窗口中键入
C-x b
,并输入缓冲区名称,Emacs绝对应该在该窗口中显示该缓冲区。只有在无法在该窗口中显示缓冲区时(引用文档:“例如,如果它是一个小型缓冲区窗口或专用于另一个缓冲区”)。请注意,您不会第二次“打开文件”——无论有多少个窗口显示给定的文件缓冲区,它都是相同的缓冲区。请尝试emacs-Q。如果这符合您的需要,那么问题在于您的自定义设置,您可以通过执行.emacs的部分来找到它(或.emacs.d/init.el,以及site lisp中的其他自定义文件,如site-start.el、default.el),直到您缩小导致此问题的行的范围。否则,您可能需要为操作系统寻找更标准的emacs端口,因为这不是emacs的正常行为。