Gå til indholdet

Kommandolinje og git difftool

OctoEdit har en lille, scriptvenlig kommandolinjeflade: åbn filer (med en valgfri markørposition), justér en kørsel med nogle få indstillinger, og — det vigtigste — fungér som en hurtig sammenligner af to filer for git difftool.

OctoEdit [options] [files...]

Stier må være relative eller absolutte. Startet fra en konsol udskriver --help/--version der; startet på anden vis vises de i stedet i et lille vindue.

At åbne filer

OctoEdit notes.txt src\main.cpp README.md
  • Hver fil åbnes i sit eget faneblad. En sti, der endnu ikke findes, åbnes som en ny, ugemt buffer bundet til det navn (at gemme opretter filen).
  • Et afsluttende :line eller :line:column efter den første fil flytter markøren (talt fra 1, begrænset til dokumentet) — praktisk fra oversættere og uddata fra grep:
OctoEdit src\main.cpp:120:8
  • Med én instans aktiveret (standard) sender en anden opstart sine filer videre til det kørende vindue og afslutter.

Indstillinger

Indstilling Betydning
-h, --help Udskriv brug og afslut.
-v, --version Udskriv programmets version og afslut.
--log <level> Mindste logniveau for denne kørsel: trace, debug, info, warning eller error.
--rendering <mode> Hvordan denne kørsel sætter sine vinduer sammen: gpu (standardvalget) eller cpu. Gælder kun den kørsel (se nedenfor).
--list-debug-flags Vis de genkendte fejlfindingsflag med deres nuværende værdier og afslut.
--diff <left> <right> Sammenlign to filer i en flygtig skrivebeskyttet visning (medfører --viewer).
--viewer Flygtig skrivebeskyttet visningsinstans (se nedenfor).
--readonly Åbn de angivne filer skrivebeskyttede (se nedenfor).

--rendering: vinduessammensætning for én kørsel

OctoEdit --rendering=cpu

Vælger, hvordan denne kørsel sætter sine vinduer sammen — gpu (standardvalget) eller cpu — og ikke andet. Hvad de to tilstande betyder, står under Indstillinger ▸ Generelt ▸ Vinduesgengivelse.

  • Det gælder kun den kørsel og gemmes aldrig: næste almindelige start følger igen det, Indstillinger siger.
  • Tilstanden afgøres, før det første vindue findes, og kan ikke ændres, mens editoren kører, så den dækker editorvinduet lige så godt som et --viewer- / --diff-vindue. En ukendt tilstand bliver meldt og ignoreret.
  • Med én instans slået til (standard) afleverer en videresendt start kun sine filer: vinduet, der kører, beholder den tilstand, det startede med, og --rendering ændrer intet der.

Hvis editorvinduet ikke kan bruges efter starten

Kommer vinduet op tegnet forkert, eller slet ikke, så start editoren én gang med --rendering=cpu og sæt derefter selv Indstillinger ▸ Generelt ▸ Vinduesgengivelse til CPU — valget på kommandolinjen huskes ikke, det lukker dig blot ind, og det er indstillingen, der gør valget varigt.

Går det heller ikke, kan indstillingen skrives i hånden, mens editoren er lukket. Tilføj til afsnittet [app] i konfigurationsfilen:

[app]
rendering\mode=cpu

Filen ligger her:

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

--readonly: åbn bestemte filer låst

OctoEdit --readonly production.conf notes.txt

Åbner de angivne filer med redigering slået fra — de ændrende kommandoer (Klip, Sæt ind, Fortryd…) nedtones for de faneblade, mens Kopiér stadig virker. Modsat --viewer er dette en normal instans af editoren: din session genskabes, du kan åbne og redigere ethvert andet dokument, og en anden opstart med --readonly sender sine filer videre til det kørende vindue, også låst. To værn: en angivet fil, der allerede er åben med ugemte ændringer, forbliver redigerbar (flaget fanger aldrig ændringer, du derefter ikke kunne gemme), og en angivet sti, der endnu ikke findes, åbnes som en låst tom buffer.

--diff: et vindue til at sammenligne to filer

OctoEdit --diff old.txt new.txt

Åbner et separat engangsvindue, hvis eneste faneblad er sammenligningen af de to filer side om side — syntaksfarvet, skrivebeskyttet, med hele sammenligningsværktøjskassen: navigation mellem forskelle, oversigtslinealen, kontakterne til at se bort fra blanktegn og store/små bogstaver samt På linje, og fletning ved kopiering med gemning pr. side (begge operander er rigtige filer, så begge retninger virker).

  • Præcis to eksisterende filer kræves. En manglende fil eller en mappe meldes, og processen afslutter med kode 2 uden at åbne et editorvindue (sammenligning af mapper bor i Mappesammenligning-udvidelsesmodulet).
  • Processen forbliver i live, indtil du lukker vinduet, og afslutter derefter med 0 — hvilket er præcis det, git difftool venter på.
  • Vinduet er uafhængigt af din normale OctoEdit: det tilslutter sig aldrig mekanismen med én instans, indlæser ingen udvidelsesmoduler og gemmer intet (ingen session, intet layout, ingen poster blandt nyligt åbnede filer). Din editor og dens session forbliver urørt, og et vilkårligt antal --diff-vinduer kan eksistere sammen med den.
  • AI-assistenten forbliver tilgængelig — den hører til kernen. At stille et spørgsmål der fortæller automatisk agenten, hvilke to filer der er på skærmen (og giver den læseadgang til begge), så «hvad ændrede sig mellem disse filer?» simpelthen virker.

At indstille den som dit git difftool

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

Derefter for eksempel:

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

Tip

Sørg for, at OctoEdit.exe er i din PATH, eller skriv dens fulde sti i linjen cmd =.

--viewer: en engangsvisning med skrivebeskyttelse

OctoEdit --viewer report.log

En flygtig instans til et hurtigt kig på en fil uden at forstyrre din rigtige redigeringssession (medføres af --diff):

  • Filerne angivet på kommandolinjen åbnes normalt — derefter låses instansen: bufferne er skrivebeskyttede, Filer ▸ Ny/Åbn/Gem og alle sammenligningskommandoer er slået fra, og intet kan åbne endnu et faneblad.
  • At lukke det sidste faneblad lukker vinduet.
  • Intet bevares: ingen session gemmes eller genskabes, ingen skrivninger af vinduets layout, ingen poster blandt nyligt åbnede filer.
  • Ingen udvidelsesmoduler indlæses, så den starter hurtigt; kernefunktioner — syntaksfarvning, temaer, AI-assistenten — forbliver tilgængelige.

Afslutningskoder

Kode Betydning
0 Normal afslutning, herunder et lukket --diff- eller --viewer-vindue.
2 Ugyldig --diff-anmodning (forkert antal operander, manglende fil, mappe som operand).