Wie kann ich in Emacs viele Dateien gleichzeitig offen halten?

10

Im Moment C-xC-föffne ich eine neue Datei, aber es wird ziemlich langweilig.

Yazz.com
quelle
Was ist dein Ziel? Eine Reihe von Dateien gleichzeitig öffnen? Oder viele bereits geöffnete Dateien verwalten?
viam0Zah
Oder möchten Sie nur mehrere Dateien gleichzeitig sehen? Da Emacs alle diese Dateien "offen" hält (in gewissem Sinne werden sie geladen, aber nicht "offen" im Sinne von "Dateideskriptor ist offen").
Jürgen A. Erhard
Ich möchte mehrere Quelldateien eines Programms bearbeiten
Yazz.com
Gehen Sie dies durch, bevor Sie Emacs verwenden
Überaustausch

Antworten:

19

Wenn Sie eine Datei in Emacs mit find-file laden ( Ctrl-x Ctrl-fstandardmäßig gebunden ), wird sie in einen "Puffer" gestellt. Solange Sie den Puffer nicht beenden, bleibt er im Speicher, Sie müssen ihn nicht neu laden.

Sie greifen auf bereits geladene Dateien (Puffer) mit Switch-to-Buffer (gebunden an Ctrl-x b) zu. Drücken Sie die Tasten und geben Sie den Puffernamen ein, zu dem Sie wechseln möchten (standardmäßig ist dies der Basisname für jede geladene Datei).

Sie können auch drücken Ctrl-x Ctrl-b, um eine Liste der aktuell vorhandenen Puffer abzurufen. Und klicken Sie dort mit der Maus auf einen Puffer, um dorthin zu wechseln (IIRC, verwenden Sie die Maus selten mit Emacs ;-))

Sie können den Bildschirm auch in zwei (oder mehr) Teile teilen, um verschiedene Dateien (Puffer) mit anzuzeigen Ctrl-x 2. Dies zeigt zunächst zweimal denselben Puffer. Wechseln Sie zu einem anderen Puffer in einem der Fenster, um eine andere Datei anzuzeigen.

Jürgen A. Erhard
quelle
1
Cx 3 kann auch verwendet werden, um den Bildschirm in zwei Teile zu teilen, Cx 0, um nur einen Puffer gleichzeitig anzuzeigen.
Rémi
3

Cx b und Cx Cb sind was Sie wollen. Versuchen Sie es auch mit iswitchb oder ido. Seit ich diese verwende, möchte ich, dass jedes Programm, das ich verwende, Tabs / Fenster / Dokumente so schnell und bequem wie Emacs wechselt. Oft habe ich 50 Dateien oder mehr in Emacs geöffnet. Mit iswitchb oder ido können Sie sehr schnell die gewünschte finden.

Justin Smith
quelle
1

Wenn Sie eine grafische Version von Emacs verwenden, können Sie mit Strg-x 5 ​​b einen vorhandenen Puffer in einem neuen Fenster öffnen (in Emacs-Sprache als Frame bezeichnet) oder mit Strg-x 5 ​​f eine neue Datei laden in einem neuen Fenster.

KeithB
quelle
1
cx 5 b funktioniert auch in einem tty, aber das Wechseln der Frames ist im tty-Modus ärgerlich :)
Justin Smith
@ Justin Danke. Ich habe noch nie mit Frames in einem tty gespielt. Gibt es einen Vorteil gegenüber der Verwendung mehrerer Puffer?
KeithB
Sie können Frames gegen Windows so verwenden, wie Sie Arbeitsbereiche gegen Windows in einem Linux-Fenstermanager verwenden würden - d. H. Für die Arbeit an Elisp-Code hat Frame 1 zwei Fenster, eines mit der Info-Datei für Elisp, das andere mit ielm für das interaktive Ausprobieren von Code. Frame 2 hat nur ein Fenster mit der Datei, die Sie bearbeiten (damit Sie so viele Zeilen sichtbar machen können) wie möglich ist es ungeteilt). Mit einer anständigen Tastenkombination für andere Frames könnte es eine sehr produktive Vereinbarung sein, wenn Sie aus irgendeinem Grund nicht X
Justin Smith
0

Sie können problemlos mehrere Dateien gleichzeitig öffnen (oder auf andere Weise darauf reagieren).

  1. Verwenden Sie C-x ddiese Option , um ein Verzeichnis (einen Ordner) aufzurufen, in dem alle Dateien und Unterverzeichnisse aufgelistet sind.

  2. Markieren Sie die Dateien, die Sie öffnen möchten (oder auf andere Weise bearbeiten möchten). Sie können Dateien einzeln oder in Gruppen basierend auf verschiedenen Merkmalen, einschließlich Dateinamenmustern, markieren. Siehe die Menüleistenmenüs Mark und Regexp - es zeigt Ihnen einige verfügbare Markierungsmöglichkeiten sowie deren Tastaturkürzel.

Zum Beispiel:

  • % m markiert Dateien, deren Namen mit einem regulären Ausdruck übereinstimmen.

  • % g markiert Dateien, deren Inhalt mit einem regulären Ausdruck übereinstimmt.

  • * * markiert ausführbare Dateien.

Um alle markierten Dateien gleichzeitig zu öffnen, müssen Sie die Standardbibliothek geladen haben dired-x.el. Tun M-x load-library dired-xoder (require 'dired-x)in Ihre Init-Datei einfügen.

Anschließend können Sie mit F( dired-do-find-marked-files) alle markierten Dateien gleichzeitig aufrufen. Verwenden Sie C-x C-bdiese Option , um eine Liste der geöffneten Puffer anzuzeigen, in der Sie zwischen diesen Dateipuffern auswählen können.

Drew
quelle