Zum Inhalt

Kommandozeile & git difftool

OctoEdit hat eine kleine, skriptfreundliche Kommandozeilen-Oberfläche: Dateien öffnen (mit optionaler Cursorposition), einen Lauf mit wenigen Optionen anpassen und — als Hauptattraktion — als schneller Zwei-Dateien-Vergleichsbetrachter für git difftool dienen.

OctoEdit [options] [files...]

Pfade dürfen relativ oder absolut sein. Aus einer Konsole gestartet, geben --help/--version dort aus; anders gestartet, erscheinen sie stattdessen in einem kleinen Dialog.

Dateien öffnen

OctoEdit notes.txt src\main.cpp README.md
  • Jede Datei öffnet sich in ihrem eigenen Tab. Ein noch nicht existierender Pfad öffnet sich als neuer, ungespeicherter Puffer mit diesem Namen (das Speichern erzeugt die Datei).
  • Ein angehängtes :Zeile oder :Zeile:Spalte an der ersten Datei setzt den Cursor (1-basiert, auf das Dokument begrenzt) — praktisch aus Compiler- und grep-Ausgaben:
OctoEdit src\main.cpp:120:8
  • Mit aktivierter Einzelinstanz (Standard) reicht ein zweiter Start seine Dateien an das laufende Fenster weiter und beendet sich.

Optionen

Option Bedeutung
-h, --help Aufruf ausgeben und beenden.
-v, --version Anwendungsversion ausgeben und beenden.
--log <level> Minimale Protokollstufe für diesen Lauf: trace, debug, info, warning oder error.
--rendering <mode> Wie dieser Lauf seine Fenster komponiert: gpu (der Standard) oder cpu. Gilt nur für diesen Lauf (siehe unten).
--list-debug-flags Die erkannten Debug-Flags mit aktuellen Werten auflisten und beenden.
--diff <left> <right> Zwei Dateien in einem flüchtigen Nur-Lese-Betrachter vergleichen (impliziert --viewer).
--viewer Flüchtige Nur-Lese-Betrachterinstanz (siehe unten).
--readonly Die gelisteten Dateien schreibgeschützt öffnen (siehe unten).

--rendering: Fensterkomposition für einen Lauf

OctoEdit --rendering=cpu

Wählt, wie dieser Lauf seine Fenster komponiert — gpu (der Standard) oder cpu — und sonst nichts. Was die beiden Modi bedeuten, steht unter Einstellungen ▸ Allgemein ▸ Fenster-Rendering.

  • Es gilt nur für diesen Lauf und wird nie gespeichert: der nächste normale Start richtet sich wieder nach den Einstellungen.
  • Der Modus wird entschieden, bevor das erste Fenster existiert, und kann sich während der Laufzeit nicht ändern — er gilt für das Editor-Fenster genauso wie für ein --viewer- / --diff-Fenster. Ein unbekannter Modus wird gemeldet und ignoriert.
  • Bei eingeschalteter Einzelinstanz (dem Standard) übergibt ein weitergeleiteter Start nur seine Dateien: das laufende Fenster behält den Modus, mit dem es gestartet ist, und --rendering ändert dort nichts.

Wenn das Editor-Fenster nach dem Start nicht benutzbar ist

Erscheint das Fenster falsch gezeichnet oder überhaupt nicht, starten Sie den Editor einmal mit --rendering=cpu und setzen Sie dann selbst Einstellungen ▸ Allgemein ▸ Fenster-Rendering auf CPU — die Kommandozeilenoption wird nicht gemerkt, sie bringt Sie also nur herein, dauerhaft macht es die Einstellung.

Kommen Sie auch so nicht weiter, lässt sich die Einstellung bei geschlossenem Editor von Hand eintragen. Fügen Sie in den Abschnitt [app] der Konfigurationsdatei ein:

[app]
rendering\mode=cpu

Die Datei liegt unter:

  • Windows: %APPDATA%\7-bits\OctoEdit.ini
  • macOS: ~/.config/7-bits.eu/OctoEdit.ini
  • Linux: ~/.config/7-bits/OctoEdit.conf

--readonly: bestimmte Dateien gesperrt öffnen

OctoEdit --readonly production.conf notes.txt

Öffnet die gelisteten Dateien mit deaktivierter Bearbeitung — die verändernden Befehle (Ausschneiden, Einfügen, Rückgängig…) sind für diese Tabs ausgegraut, Kopieren funktioniert weiter. Anders als --viewer ist dies eine normale Editor-Instanz: Ihre Sitzung wird wiederhergestellt, Sie können jedes andere Dokument öffnen und bearbeiten, und ein zweiter --readonly-Start reicht seine Dateien ebenfalls gesperrt in das laufende Fenster weiter. Zwei Leitplanken: Eine gelistete Datei, die bereits mit ungespeicherten Änderungen geöffnet ist, bleibt bearbeitbar (das Flag sperrt nie Änderungen ein, die Sie nicht mehr speichern könnten), und ein noch nicht existierender gelisteter Pfad öffnet sich als gesperrter leerer Puffer.

--diff: ein Zwei-Dateien-Vergleichsfenster

OctoEdit --diff old.txt new.txt

Öffnet ein separates Wegwerf-Fenster, dessen einziger Tab der Seite-an-Seite-Vergleich der beiden Dateien ist — syntaxgefärbt, schreibgeschützt, mit dem vollen Vergleichswerkzeugkasten: Differenz-Navigation, Übersichtsleiste, Leerraum/Groß-Kleinschreibung- ignorieren und „Ausgerichtet“-Schalter sowie Änderungs-Kopieren mit Speichern pro Seite (beide Operanden sind echte Dateien, also funktionieren beide Richtungen).

  • Erforderlich sind genau zwei existierende Dateien. Eine fehlende Datei oder ein Verzeichnis wird gemeldet, und der Prozess endet mit Code 2, ohne ein Editorfenster zu öffnen (Verzeichnisvergleich lebt im Ordnervergleich-Plugin).
  • Der Prozess lebt, bis Sie das Fenster schließen, und endet dann mit 0 — genau darauf wartet git difftool.
  • Das Fenster ist unabhängig von Ihrem normalen OctoEdit: Es tritt nie dem Einzelinstanz-Mechanismus bei, lädt keine Plugins und speichert nichts (keine Sitzung, kein Layout, keine Zuletzt-geöffnet-Einträge). Ihr Editor und seine Sitzung bleiben unberührt, und beliebig viele --diff-Fenster können daneben existieren.
  • Der KI-Assistent bleibt verfügbar — er gehört zum Kern. Eine Frage dort teilt dem Agenten automatisch mit, welche zwei Dateien auf dem Bildschirm sind (und gewährt Lesezugriff auf beide), sodass „Was hat sich zwischen diesen Dateien geändert?“ einfach funktioniert.

Als Ihr git difftool einrichten

# .gitconfig
[diff]
    tool = octoedit
[difftool]
    prompt = false
[difftool "octoedit"]
    cmd = OctoEdit --diff "$LOCAL" "$REMOTE"

Dann zum Beispiel:

git difftool HEAD~1 -- src/main.cpp

Tip

Stellen Sie sicher, dass OctoEdit.exe im PATH liegt, oder tragen Sie den vollen Pfad in die cmd =-Zeile ein.

--viewer: ein Wegwerf-Nur-Lese-Betrachter

OctoEdit --viewer report.log

Eine flüchtige Instanz für einen schnellen Blick in eine Datei, ohne Ihre echte Bearbeitungssitzung zu stören (durch --diff impliziert):

  • Die auf der Kommandozeile angegebenen Dateien öffnen sich normal — danach ist die Instanz gesperrt: Die Puffer sind schreibgeschützt, Datei ▸ Neu/Öffnen/Speichern und alle Vergleichsbefehle sind deaktiviert, und nichts kann einen weiteren Tab öffnen.
  • Das Schließen des letzten Tabs schließt das Fenster.
  • Nichts bleibt bestehen: kein Sitzungs-Speichern/-Wiederherstellen, keine Fensterlayout-Schreibvorgänge, keine Zuletzt-geöffnet-Einträge.
  • Es laden keine Plugins, der Start ist also schnell; Kernfunktionen — Syntaxhervorhebung, Themes, der KI-Assistent — bleiben verfügbar.

Exit-Codes

Code Bedeutung
0 Normales Ende, einschließlich eines geschlossenen --diff/--viewer-Fensters.
2 Ungültige --diff-Anfrage (falsche Operandenzahl, fehlende Datei, Verzeichnis-Operand).