Ga naar inhoud

Opdrachtregel en git difftool

OctoEdit heeft een klein, scriptvriendelijk opdrachtregelvlak: bestanden openen (met een optionele cursorpositie), een uitvoering bijstellen met een paar opties en — de blikvanger — dienstdoen als snelle vergelijker van twee bestanden voor git difftool.

OctoEdit [options] [files...]

Paden mogen relatief of absoluut zijn. Wanneer het programma vanuit een console wordt gestart, drukken --help/--version daar af; op elke andere manier gestart verschijnen ze in plaats daarvan in een klein venster.

Bestanden openen

OctoEdit notes.txt src\main.cpp README.md
  • Elk bestand opent in zijn eigen tabblad. Een pad dat nog niet bestaat opent als een nieuwe, niet-opgeslagen buffer die aan die naam gebonden is (opslaan maakt het bestand aan).
  • Een :line of :line:column achter het eerste bestand verplaatst de cursor (vanaf 1 geteld, begrensd tot het document) — handig vanuit compilers en uitvoer van grep:
OctoEdit src\main.cpp:120:8
  • Met een enkel exemplaar ingeschakeld (de standaard) stuurt een tweede start zijn bestanden door naar het draaiende venster en sluit zichzelf af.

Opties

Optie Betekenis
-h, --help Gebruiksaanwijzing afdrukken en afsluiten.
-v, --version De versie van de toepassing afdrukken en afsluiten.
--log <level> Minimaal logniveau voor deze uitvoering: trace, debug, info, warning of error.
--rendering <mode> Hoe deze uitvoering haar vensters samenstelt: gpu (de standaard) of cpu. Geldt alleen voor die uitvoering (zie hieronder).
--list-debug-flags De herkende foutopsporingsvlaggen met hun huidige waarden opsommen en afsluiten.
--diff <left> <right> Twee bestanden vergelijken in een vluchtige alleen-lezen weergave (impliceert --viewer).
--viewer Vluchtig alleen-lezen weergave-exemplaar (zie hieronder).
--readonly De opgesomde bestanden alleen-lezen openen (zie hieronder).

--rendering: venstersamenstelling voor één uitvoering

OctoEdit --rendering=cpu

Kiest hoe deze uitvoering haar vensters samenstelt — gpu (de standaard) of cpu — en niets anders. Wat de twee modi betekenen, staat bij Voorkeuren ▸ Algemeen ▸ Vensterweergave.

  • Het geldt alleen voor die uitvoering en wordt nooit opgeslagen: de volgende gewone start houdt zich weer aan de Voorkeuren.
  • De modus wordt gekozen voordat het eerste venster bestaat en kan tijdens het draaien niet veranderen, dus hij dekt het venster van de editor net zo goed als een --viewer- / --diff-venster. Een onbekende modus wordt gemeld en genegeerd.
  • Met één instantie aan (de standaard) geeft een doorgestuurde start alleen zijn bestanden door: het draaiende venster houdt de modus waarmee het is gestart, en --rendering verandert daar niets.

Als het venster van de editor na de start niet te gebruiken is

Komt het venster verkeerd getekend op, of helemaal niet, start de editor dan één keer met --rendering=cpu en zet daarna zelf Voorkeuren ▸ Algemeen ▸ Vensterweergave op CPU — de optie op de opdrachtregel wordt niet onthouden, ze laat u dus binnen, en de instelling maakt het blijvend.

Lukt ook dat niet, dan kan de instelling met de hand worden ingevuld terwijl de editor dicht is. Voeg toe aan de sectie [app] van het configuratiebestand:

[app]
rendering\mode=cpu

Het bestand staat op:

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

--readonly: bepaalde bestanden vergrendeld openen

OctoEdit --readonly production.conf notes.txt

Opent de opgesomde bestanden met het bewerken uitgeschakeld — de wijzigende opdrachten (Knippen, Plakken, Ongedaan maken…) worden grijs voor die tabbladen terwijl Kopiëren blijft werken. Anders dan --viewer is dit een normaal exemplaar van de editor: uw sessie wordt hersteld, u kunt elk ander document openen en bewerken, en een tweede start met --readonly stuurt zijn bestanden eveneens vergrendeld door naar het draaiende venster. Twee vangrails: een opgesomd bestand dat al open staat met niet-opgeslagen wijzigingen blijft bewerkbaar (de vlag sluit nooit wijzigingen op die u daarna niet meer zou kunnen opslaan), en een opgesomd pad dat nog niet bestaat opent als een vergrendelde lege buffer.

--diff: een venster om twee bestanden te vergelijken

OctoEdit --diff old.txt new.txt

Opent een apart, wegwerpbaar venster waarvan het enige tabblad de vergelijking van de twee bestanden naast elkaar is — syntaxisgekleurd, alleen-lezen, met het volledige vergelijkingsgereedschap: navigatie tussen verschillen, de overzichtsliniaal, de schakelaars voor het negeren van witruimte en hoofdlettergebruik en voor Uitgelijnd, en samenvoegen door kopiëren met opslaan per kant (beide operanden zijn echte bestanden, dus beide richtingen werken).

  • Er zijn precies twee bestaande bestanden vereist. Een ontbrekend bestand of een map wordt gemeld en het proces sluit af met code 2 zonder een editorvenster te openen (het vergelijken van mappen woont in de plug-in Mappen vergelijken).
  • Het proces blijft in leven totdat u het venster sluit en sluit dan af met 0 — precies waar git difftool op wacht.
  • Het venster staat los van uw normale OctoEdit: het doet nooit mee aan het mechanisme van het enkele exemplaar, laadt geen plug-ins en slaat niets op (geen sessie, geen indeling, geen items in de lijst met recente bestanden). Uw editor en zijn sessie blijven onaangeroerd, en er kunnen willekeurig veel --diff-vensters naast bestaan.
  • De AI-assistent blijft beschikbaar — die hoort bij de kern. Een vraag daar stellen vertelt de agent automatisch welke twee bestanden op het scherm staan (en geeft hem leestoegang tot beide), zodat «wat is er tussen deze bestanden veranderd?» gewoon werkt.

Instellen als uw git difftool

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

Daarna bijvoorbeeld:

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

Tip

Zorg dat OctoEdit.exe in uw PATH staat, of schrijf het volledige pad in de regel cmd =.

--viewer: een wegwerpbare alleen-lezen weergave

OctoEdit --viewer report.log

Een vluchtig exemplaar om snel naar een bestand te kijken zonder uw echte bewerksessie te verstoren (wordt door --diff geïmpliceerd):

  • De bestanden die op de opdrachtregel zijn meegegeven openen normaal — daarna wordt het exemplaar vergrendeld: de buffers zijn alleen-lezen, Bestand ▸ Nieuw/Openen/Opslaan en alle vergelijkopdrachten zijn uitgeschakeld, en er kan niets een ander tabblad openen.
  • Het laatste tabblad sluiten sluit het venster.
  • Er blijft niets bewaard: geen sessie die wordt opgeslagen of hersteld, geen schrijfacties naar de vensterindeling, geen items in de lijst met recente bestanden.
  • Er worden geen plug-ins geladen, dus het start snel; kernfuncties — syntaxiskleuring, thema's, de AI-assistent — blijven beschikbaar.

Afsluitcodes

Code Betekenis
0 Normale afsluiting, ook die van een gesloten --diff- of --viewer-venster.
2 Ongeldige --diff-aanvraag (verkeerd aantal operanden, ontbrekend bestand, map als operand).