Damit nur die von mir eingegebenen Bytes gespeichert werden, ist die Datei die maßgebliche Wahrheit
Ist Ihnen in einem Git-Diff schon einmal eine Tabelle aufgefallen, die Sie gar nicht geändert hatten? mote betrachtet nicht das Dokumentmodell, sondern die Datei als maßgebliche Wahrheit und schreibt beim Speichern nur die Bytes auf die Festplatte, die Sie tatsächlich eingegeben haben.

Manchmal ändert man nur ein einziges Wort in einer Markdown-Tabelle, doch in Git sieht es so aus, als wäre das gesamte Dokument geändert worden.
Das liegt daran, dass der Editor beim Speichern die Abstände und Zeilenumbrüche der Tabelle neu formatiert hat. Er hat also selbst Leerzeichen in die Datei geschrieben, die der Benutzer nicht eingegeben hatte. Ein Beispiel dafür ist Typora, das die Zwischenräume zwischen den senkrechten Strichen mit Leerzeichen auffüllt, um die Spaltenbreiten der Tabelle anzugleichen.
mote speichert anders. Der ursprüngliche Dateiinhalt bleibt unverändert, und Bildschirmeffekte wie Fettdruck, Tabellen und Formeln werden lediglich darüber dargestellt. Deshalb ändern sich beim Speichern nur die Bytes, die der Benutzer tatsächlich verändert hat.
Sie können den Umfang der Änderungen vor dem Speichern überprüfen
mote zeigt in der Statuszeile an, wie viele Bytes sich beim Speichern ändern werden.
Dazu vergleicht es die ursprüngliche Fassung beim ersten Öffnen der Datei mit dem aktuellen Inhalt und berechnet nur die Stellen, die sich tatsächlich unterscheiden. Nach einer Bearbeitung wird 17 B 저장 대기 중 angezeigt, und wenn Sie alle Änderungen rückgängig machen, wechselt die Anzeige zu 저장된 파일과 같음. Nach dem Speichern bleibt 저장 완료 · 17 B bis zur nächsten Bearbeitung sichtbar.

Diese Zahl funktioniert unabhängig von Git. Sie wird auch in Ordnern angezeigt, die kein Git-Repository sind, und wird weder vom Staging- noch vom Commit-Status beeinflusst.
Sie entspricht jedoch dem Umfang der Änderungen, die im Git-Diff erscheinen werden. So können Sie bereits vor dem Speichern prüfen, ob wirklich nur das geändert wird, was Sie selbst bearbeitet haben.
Wenn Sie eine Tabellenzelle bearbeiten, ändert sich nur diese eine Zelle
Am deutlichsten zeigt sich der Unterschied beim Bearbeiten von Tabellen.
Im Live-Modus (Live) wird die Tabelle als Raster dargestellt. Nur die Zelle, in der sich der Cursor befindet, wechselt zur Rohtextansicht. Wenn Sie darin ein einzelnes Wort ändern und speichern, erscheint in der Statuszeile +8 −6 B. Auch im Git-Diff wird nur die betreffende Zeile angezeigt.

Die Spaltenausrichtung und die Leerzeichen zwischen den senkrechten Strichen bleiben unverändert. Auch *-Aufzählungszeichen oder die zwei Leerzeichen am Zeilenende werden nicht angerührt. Bei einer Datei ohne abschließenden Zeilenumbruch wird auch kein neuer Zeilenumbruch hinzugefügt.
Dasselbe gilt für das Einfügen. Text aus der Zwischenablage wird unverändert eingefügt, ohne ihn in ein anderes Format umzuwandeln. Die hinzugefügte Menge können Sie sofort in der Statuszeile überprüfen. Wenn Ihnen das Ergebnis nicht gefällt, können Sie die Änderung einmal rückgängig machen und so zum Zustand der gespeicherten Datei zurückkehren.
Auch andere Eigenschaften der Datei bleiben erhalten. CRLF bleibt CRLF, und selbst Dateien mit gemischten LF- und CRLF-Zeilenumbrüchen werden unverändert gespeichert. Auch die BOM und der abschließende Zeilenumbruch richten sich nach der Originaldatei. Dieses Verhalten wird bei jeder Veröffentlichung mit Roundtrip-Speichertests überprüft.
Dateiänderungen beginnen ausschließlich mit einer Handlung des Benutzers
Es gibt drei Fälle, in denen mote einem Dokument Bytes hinzufügt.
Wenn der Benutzer Text eingibt oder einfügt, wenn er ein Bild aus der Zwischenablage nach einer Bestätigung speichert und einen Link einfügt oder wenn er eine Bildecke zieht, um die Größe zu ändern, und diesen Wert im Alternativtext festhält.
Alle diese Bearbeitungen werden unmittelbar vom Benutzer ausgelöst. Was geändert wurde, lässt sich außerdem im Änderungsverlauf überprüfen.
Auch neben dem Dokument werden keine separaten Dateien erstellt. Informationen, die sich nicht in Markdown abbilden lassen, etwa die Spaltenbreite einer Tabelle, werden nicht gesondert gespeichert; die entsprechende Funktion wird schlicht nicht angeboten.
App-Daten wie Einstellungen, zuletzt verwendete Dateien und 20 Sicherungskopien werden ausschließlich im Statusordner des Benutzerverzeichnisses gespeichert. Dadurch verhält sich der Dokumentordner in Git, Dropbox oder Syncthing so, als wäre mote gar nicht vorhanden.
Dafür korrigiert mote Dateien nicht eigenständig
Eine Datei unverändert zu bewahren bedeutet auch, fehlerhafte Syntax nicht eigenmächtig zu korrigieren.
Fehlerhafte Tabellen, nicht geschlossene Code-Fences und falsch eingerückte Listen werden genau so dargestellt, wie CommonMark sie interpretiert. Wenn das nicht dem gewünschten Erscheinungsbild entspricht, müssen Sie es im Quelltextmodus (Source) selbst korrigieren.
Ein Editor, bei dem man nicht weiß, was sich beim Speichern ändert, leiht sich die Datei nur aus. mote gibt mir die Datei genau so zurück, wie ich sie übergeben habe.