在emacs中,如何一次打开多个文件?


10

目前,我使用的C-xC-f是打开一个新文件,但是它很繁琐。


你的目标是什么?一次打开一堆文件?还是管理许多已经打开的文件?
viam0Zah 2010年

还是只想一次查看多个文件?因为Emacs确实使所有这些文件都保持“打开”状态(从某种意义上说,它们已加载,但在“文件描述符已打开”的意义上不是“打开”的)。
尔根·艾哈德

我想编辑一个程序的几个源文件
Yazz.com 2010年

我们将向您使用emacs前
overexchange

Answers:


19

当您使用查找文件(Ctrl-x Ctrl-f默认绑定)在Emacs中加载文件时,该文件将放入“缓冲区”中。只要不杀死缓冲区,缓冲区就保留在内存中,则不必重新加载它。

您可以使用切换到缓冲区(绑定到Ctrl-x b)访问已加载的文件(缓冲区)。按键,然后键入要切换到的缓冲区名称(默认情况下,这是任何已加载文件的基本名称)。

您还可以按Ctrl-x Ctrl-b获取当前现有缓冲区的列表。然后用鼠标单击那里的任何缓冲区以切换到该缓冲区(IIRC,很少将鼠标与Emacs一起使用;-))

您还可以使用将屏幕分为两个(或更多)部分,以查看不同的文件(缓冲区)Ctrl-x 2。最初,这两次显示相同的缓冲区。在一个窗口中切换到另一个缓冲区以查看另一个文件。


1
Cx 3也可用于将屏幕一分为二,Cx 0可一次仅显示一个缓冲区。
拉米(Rémi)2012年

3

Cx b和Cx Cb是您想要的。还可以考虑尝试使用iswitchb或ido。自从我开始使用这些程序以来,我希望我使用的每个程序都可以像emacs一样快速,方便地切换选项卡/窗口/文档。我经常在emacs中打开50个或更多文件,使用iswitchb或ido可以很快找到想要的文件。


1

另外,如果您使用的是emacs的图形版本,则可以执行ctrl-x 5 b在新窗口中打开现有缓冲区(在emacs-speak中称为帧),或ctrl-x 5 f加载新文件。在新窗口中。


1
cx 5 b也可以在tty中工作,但是在tty模式下切换帧很烦人:)
Justin Smith 2010年

@贾斯汀谢谢。我从来没有玩过tty中的帧。仅使用多个缓冲区有什么好处?
KeithB 2010年

您可以像在Linux窗口管理器中使用工作区或窗口那样使用框架与窗口-即。在elisp代码上工作时,框架1有两个窗口,一个带有elisp的信息文件,另一个带有ielm用于交互地尝试代码,框架2只有一个窗口,无论您编辑的是哪个文件(因此您可以看到尽可能多的行)尽可能不拆分)。随着其他帧像样的键绑定这可能是一个非常有成效的安排,如果你因为某些原因不想运行X.
贾斯汀史密斯

0

您可以轻松地一次打开多个文件(或以其他方式对其进行操作)。

  1. 使用C-x d访问目录(文件夹),其中列出了所有的文件和子目录。

  2. 标记要打开的文件(或以其他方式操作)。您可以基于各种特征(包括文件名模式)单独或成组标记文件。请参阅菜单栏菜单MarkRegexp-它向您显示了一些可用的标记可能性,以及它们的键盘快捷键。

例如:

  • % m 标记名称与正则表达式匹配的文件。

  • % g 标记内容与正则表达式匹配的文件。

  • * * 标记可执行文件。

要一次打开所有标记的文件,需要加载标准库dired-x.el。做M-x load-library dired-x或放入(require 'dired-x)您的初始化文件。

然后,您可以使用Fdired-do-find-marked-files)一次访问所有标记的文件。使用C-x C-b看到打开的缓冲区,在那里你可以将这些文件缓冲区中进行选择的列表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.