Normalerweise arbeite ich an Dateien, die über die Versionskontrolle im Dateisystem aktualisiert werden. Was ist eine schnelle Möglichkeit, eine Datei neu zu laden, ohne sie C-x C-f
erneut zu laden und gefragt zu werden, ob ich sie neu laden möchte?
files
revert-buffer
Fernando Briano
quelle
quelle
misc-cmds.el
. Nicht, dass es kompliziert wäre, aber wenn Sie etwas genau kopieren , ist es üblich, auf die Quelle zu verweisen.(revert-buffer t (not (buffer-modified-p)) t)
.Es gibt auch
auto-revert-mode
welche die das automatisch machen und dir Feedback geben.Aus der Doc-Zeichenfolge:
quelle
Eine andere Option, die ich benutze, ist
find-alternate-file
gebunden anC-x C-v
. Dies öffnet eine Datei, die Ihren aktuellen Puffer wiederverwendet.Standardmäßig zeigt es auf die Datei, in der Sie sich gerade befinden. Sie können also einfach eingeben
C-x C-v RET
, um Ihre Datei neu zu laden. Es wird nicht aufgefordert, es sei denn, Ihr Puffer hat nicht gespeicherte Daten.Einige Nicht-Text-Modi wie
image-mode
(zum Rendern von Bildern, PDFs, SVGs usw.) unddired
haben für einen schnelleren Zugriffrevert-buffer
gebundeng
.quelle
C-x C-v
.Emacs nennt das
reverting
.Mit können Sie die aktuelle Datei wiederherstellen
M-x revert-buffer
. Dies fordert zur Bestätigung auf, ob die Datei geändert wurde oder nicht, mit Ausnahme von Dateien, die mit den in der Variablen aufgelisteten Mustern übereinstimmenrevert-without-query
(Einzelheiten finden Sie im Handbuch). Ein weiteres Ärgernisrevert-buffer
ist gelegentlich, dass der Dateimodus auf die Standardeinstellungen zurückgesetzt wird.Ich benutze die folgende Funktion, um eine Reihe von Dateien mit dem angegebenen Namen wiederherzustellen. Wenn eine Datei in einem Puffer nicht geöffnet ist, wird sie ignoriert.
Ein typischer Anwendungsfall für diese Funktion ist das Aktualisieren von Dateien über die Versionskontrolle. Verwenden Sie
emacsclient
diese Option,revert-files
um alle aktualisierten Dateien oder (dies ist einfacher und nur geringfügig langsamer) alle von der Aktualisierung betroffenen Dateien aufzurufen. Ich rufe das folgende Shell-Skript auf und übergebe ihm die Dateien als Argumente:Anwendungsbeispiel:
quelle
Sie können den globalen Auto-Revert-Modus auch wie unten gezeigt aktivieren
(global-auto-revert-mode 1)
Dies ist hilfreich, wenn Sie viele Überprüfungen Ihrer js-Dateien mit aktiviertem Auto-Fix-Modus durchführen, wie in jssc.
quelle
revert-buffer
Gibt es. Aber ich hätte gerne Feedback.Ich habe folgendes in meinem
.emacs
.quelle
Sie können verwenden
find-alternate-file
, was C-x C-vstandardmäßig gebunden ist , und einfach RETan der Eingabeaufforderung eingeben, um die Datei neu zu laden.quelle
Für Spacemacs-Benutzer:
SPC b R
(spacemacs/safe-revert-buffer
).Zum Überspringen der Bestätigung decken andere Antworten dies bereits ab, obwohl ich anderen zustimme, dass es wahrscheinlich keine gute Idee ist, dies an einen Schlüssel zu binden.
quelle
Magit verwaltet Dateireversionen automatisch für Sie und löst so Ihr Kernproblem. Sie profitieren auch von den anderen Funktionen.
Hier sind die Dokumente zum Ändern der Einstellungen, an denen Sie interessiert sind:
Wenn Sie bei Magit bleiben, müssen Sie auch alle drei globalen WIP-Modi (Work In Progress) aktivieren , um einen Arbeitsverlust zu vermeiden.
Auf diese Weise können Sie in Emacs mit Magit Versionskontrollaktionen durchführen und Ihr ursprüngliches Problem vollständig vermeiden.
quelle