Ich bin Akademiker und liebe es, so viel wie möglich in Emacs zu schreiben. Eine wichtige Sache, die mir fehlt, ist die Möglichkeit, die Änderungen, die ich im Laufe der Zeit an einer Textdatei vorgenommen habe, einfach zu überprüfen.
Die Tracking-Funktionen in Wikipedia-Artikeln oder Google-Dokumenten entsprechen genau meinen Vorstellungen. Ich habe mit Versionskontrollsystemen wie git gespielt, weil sie von Emacs anscheinend gut unterstützt werden, aber ich fand sie schwierig zu bedienen und weitaus komplexer, als ich es brauchte. Repositories registrieren, ein- und auschecken, all das war nur mühsam.
Ich nehme nicht an, dass es Pakete gibt, die die von mir gesuchte Funktionalität auf relativ benutzerfreundliche Weise bereitstellen.
version-control
writing
Brian Z
quelle
quelle
git
undmagit
- github.com/magit/magit - da Sie bereits ein wenig damit herumgespielt haben. Sie sollten sich wahrscheinlich mit den Befehlszeilenoptionen vertraut machen, um besser zu verstehen, wasmagit
geschieht. Emacs ist nicht für Nicht-Programmierer, aber Sie haben lange genug um die Szene gewesen, nicht von ihm Angst - :) Sie auch spielen , um zu versuchen mit wünschen könnengist
: github.com/defunkt/gist.elvc-
Befehlsgruppen darin, den Prozess der Verwendung von VCSs zu vereinfachen. Leider sind sie nicht so intuitiv, dass erfahrene Benutzer sie gut nutzen können. Andererseits sind Systeme wie die von Ihnen erwähnten sehr begrenzt, so dass man schnell Anforderungen entwickelt, die sie nicht erfüllen können. gnu.org/software/emacs/manual/html_node/emacs/… Es gibt einen vereinfachten Mechanismus zum Speichern von Backups. Aufgrund der obigen Ausführungen würde ich jedoch eher empfehlen, die Verwendung von VCS zu erlernen.git
/magit
für die Versionskontrolle meiner Artikel zu verwenden. Es sieht einschüchternd aus, damit anzufangen, aber a) Sie müssen nicht alles auf einmal lernen, und b) es macht Spaß, es zu verwenden, nachdem Sie die anfängliche Lernkurve hinter sich gebracht haben. Ein guter Workflow hilft Ihnen auch dabei, Ihre Schreibaufgaben zu disziplinieren, da Sie ermutigt werden, Ihre Arbeit zu kommentieren. Auf diese Weise können Sie einen Zeitplan für die Entwicklung des Schreibprojekts erstellen.Antworten:
Das Problem bei vorhandenen Versionskontrollsystemen ist nicht so sehr deren Komplexität. Es ist die Tatsache, dass es so viele Informationen gibt, dass es für Anfänger sehr schwierig sein kann, den Wald vor lauter Bäumen zu sehen (dh herauszufinden, was sie tun und nicht lernen müssen, wenn sie gerade erst anfangen ).
Dieser Beitrag konzentriert sich auf
git
die Steuerung von Emacs mithilfe eines Add-On-Pakets mit dem Namenmagit
. Ja ,git
ist komplex, aber Sie müssen nicht viel lernen, um es für den von Ihnen beschriebenen Zweck produktiv einzusetzen.Ich gehe davon aus, dass Sie
git
installiert haben (wenn Sie dies nicht tun, holen Sie es sich hier ) und dass Sie Emacs überhaupt nicht verlassen möchten.Installieren
magit
magit
ist eingit
Front-End für Emacs. Es ist bei MELPA erhältlich und kann wie folgt installiert werden:M-x
package-install
RETmagit
RETAuf gut Glück , dass Sie nicht Melpa in Ihrer Konfiguration aktiviert haben, können Sie Anweisungen finden , wie Sie das hier .
Repository einrichten
Angenommen, Sie haben einen Ordner
~/writing
in Ihrem Ausgangsverzeichnis, der ein oder mehrere Dokumente enthält, die Sie der Versionskontrolle unterwerfen möchten.~/writing
RETshell
RETgit init
und drücken RET.Das ist es. Sie haben jetzt ein
git
Repository. Es besteht keine Notwendigkeit, es irgendwo zu "registrieren".git
ist ein verteiltes Versionskontrollsystem; Es ist kein Remote-Server erforderlich, um Änderungen nachzuverfolgen.Überprüfen Sie den Status Ihres Repositorys
magit-status
RET.Sie können sich den Puffer als Ihr "Kontrollfeld" für die Arbeit mit Ihrem Repository vorstellen. Für ein neues Repository sieht es ungefähr so aus:
Sie können mit n(
magit-goto-next-section
) und p(magit-goto-previous-section
) zwischen verschiedenen Abschnitten dieses Puffers navigieren .Sie können den Puffer durch Drücken von g(
magit-refresh
) aktualisieren .Beachten Sie, dass Sie den Statuspuffer aus jeder Datei oder jedem Verzeichnis aufrufen können, die bzw. das zu dem Repository gehört, das Sie zuvor eingerichtet haben.
Dateien hinzufügen
Wie Sie auf dem Screenshot sehen können, befinden sich drei Dateien im Repository, die
git
derzeit nicht verfolgt werden. Um zu sagengit
zu starten , eine Datei - Tracking, müssen Sie inszenieren es: Mit Punkt auf der Datei , die Sie hinzufügen möchten, drücken Sie s. Der Statuspuffer sieht dann so aus:Festschreiben
Nachdem Sie eine oder mehrere Dateien gespeichert haben, können Sie sie festschreiben , indem Sie auf drücken c c. Dadurch wird ein Puffer angezeigt, der wie folgt aussieht:
Geben Sie oben Ihre Festschreibungsnachricht ein und drücken Sie C-c C-c, um die Festschreibung abzuschließen. (Zum Abbrechen drücken Sie C-c C-k.)
Der Statuspuffer sieht dann so aus:
Staging-Änderungen
Wenn Sie Änderungen an einer nachverfolgten Datei vornehmen, werden diese in einem separaten Abschnitt ("Nicht bereitgestellte Änderungen") im Statuspuffer aufgeführt:
Um die Änderungen zu überprüfen, die Sie an der Datei vorgenommen haben, navigieren Sie zu der Zeile mit der Aufschrift
Modified file-1.txt
und drücken Sie TAB:Um diese Änderungen vorzunehmen, drücken Sie s:
Anzeigen vergangener Commits
Zum Schluss können Sie, wenn Sie frühere Commits überprüfen möchten, die Taste drücken l l(das sind zwei L-Zeichen in Kleinbuchstaben):
Sie können wie gewohnt durch den Puffer navigieren, der mit nund angezeigt wird p. Magit zeigt die Änderungen, die mit den einzelnen in diesem Puffer aufgelisteten Commits verbunden sind, in einem separaten Fenster an.
Zusammenfassung
Aus der Schale:
git init
:git
Repository im aktuellen Verzeichnis initialisierenAus einer beliebigen Datei oder einem Verzeichnis, das einem
git
Repository zugeordnet ist:magit-status
RETAus dem Statuspuffer:
s um neue Dateien oder Bühnenänderungen hinzuzufügen
c c inszenierte Veränderungen vornehmen
Das ist es. :)
quelle
git init
von Shell. Wenn SieM-x magit-status
irgendwo außerhalb eines Git-Repositorys anrufen, bietet es die Einrichtung eines solchen an. (Sie müssen es jedoch erneut aufrufen, um den Statuspuffer aufzurufen, nachdem Sie die Einrichtung abgeschlossen haben.)magit-diff-refine-hunk
, um das gewünschte Verhalten zu erhalten. Fügen Sie(setq magit-diff-refine-hunk t)
oder(setq magit-diff-refine-hunk 'all)
zu Ihrer Init-Datei hinzu. Sie können tunC-h v
magit-diff-refine-hunk
RET
, um weitere Informationen zu den verschiedenen Einstellungen zu erhalten.Zusätzlich zu
magit
(wie @ itsjeyds Antwort gekonnt zeigt) können Sie auch versuchengit-timemachine
, die Funktionen zum schnellen Durchlaufen älterer Versionen einer Datei untergit
Versionskontrolle bereitzustellen. Laut der Github-Seite vermitteln die folgenden Standard-Tastenkombinationen einen Eindruck davon, was Sie tun können:p
Besuchen Sie die frühere historische Versionn
Besuchen Sie die nächste historische Versionw
Kopieren Sie den abgekürzten Hash der aktuellen historischen VersionW
Kopieren Sie den vollständigen Hash der aktuellen historischen Versionq
Verlasse die Zeitmaschine.quelle
Ich vermute, Sie werden den Backup-Modus und / oder den Backup-Walker sehr interessant finden.
Beide zielen darauf ab, die vorhandenen Sicherungsmechanismen in Emacs zu nutzen und einen besseren Zugriff und eine bessere Sichtbarkeit Ihres Dateiverlaufs zu ermöglichen, ohne dass ein zusätzliches VCS erforderlich ist.
quelle
Wie bereits erwähnt, ist das Emacs-Backup-System eine einfache Möglichkeit, verschiedene Versionen einer Datei zu haben.
Hierbei wird ein dediziertes Verzeichnis für nummerierte Sicherungen verwendet, das niemals automatisch gelöscht wird. Dann können Sie jederzeit C-u C-x C-seine andere Version erstellen.
Allerdings gibt es meiner Meinung nach keine einfache, einsatzbereite Schnittstelle, um z. B. diese Versionen zu unterscheiden. Sie müssten also ein oder zwei dieser Backups manuell öffnen und
ediff-buffers
darauf und / oder auf den ursprünglichen Puffer anwenden.quelle
m
Verschiebepunkt in die andere und drücken Sie=
).Ich hatte noch keine Gelegenheit, diese Lösung zu verwenden, aber vielleicht möchten Sie auch Cory Doctorow und Thomas Gideons Flashbake in Betracht ziehen . Das sagt Doctorow dazu :
That being said, ich hatte nie die Gelegenheit , es zu testen, da ich ein Schreiben endete viel in Org-Mode von Sachen, und war viel Programmierung und ... na ja ... ich irgendwie noch besser zu verwenden
magit
, und am Ende brauchte ich es einfach nicht zu benutzen.In jedem Fall wurde diese Lösung richtet an Autoren arbeiten an nicht-technischen Projekten. Möglicherweise stellen Sie fest, dass es Ihren Anforderungen entspricht.
quelle
Obwohl es absolut unabhängig ist,
emacs
können Sie Ihre Textdateien dennoch in Dropbox speichern. Wenn Sie ein Profi-Benutzer sind, können Sie den erweiterten Versionsverlauf verwenden . (Wenn Sie eine Verschlüsselung wünschen, sollten Sie sich SparkleShare ansehen .)Dann gibt es Flashbake, der ein bisschen automatisiert ist ( hier ist ein Tutorial ).
Auch wurde gefragt , an anderer Stelle zu , für die die Antworten , die Sie vielleicht nützlich finden.
quelle
Sie können Dropbox verwenden. Mit jedem Drücken von Cx Cs wird eine überarbeitbare Version Ihrer Datei erstellt. Für die Verschlüsselung meiner Textdateien verwende ich GNU Privacy Guard, der von Emacs unterstützt wird.
quelle