Gå til innhold

Kommandolinje og git difftool

OctoEdit har en liten kommandolinjeflate som er lett å bruke fra skript: åpne filer (med en valgfri markørposisjon), juster en kjøring med noen få valg og — det viktigste — vær en rask visning av forskjellen mellom to filer for git difftool.

OctoEdit [options] [files...]

Stier kan være relative eller absolutte. Startes programmet fra en konsoll, skrives --help/--version der; startes det på en annen måte, kommer de fram i et lite vindu i stedet.

Å åpne filer

OctoEdit notes.txt src\main.cpp README.md
  • Hver fil åpnes i sin egen fane. En sti som ennå ikke finnes, åpnes som en ny, ulagret buffer knyttet til det navnet (lagrer du, opprettes filen).
  • Et :linje eller :linje:kolonne på slutten av den første filen flytter markøren (fra 1 og opp, begrenset til dokumentet) — praktisk fra kompilatorer og utdata fra grep:
OctoEdit src\main.cpp:120:8
  • Med bare én forekomst påslått (standarden) sender en annen oppstart filene sine videre til det vinduet som kjører, og avslutter.

Valg

Valg Betydning
-h, --help Skriv ut bruken, og avslutt.
-v, --version Skriv ut programmets versjon, og avslutt.
--log <level> Laveste loggnivå for denne kjøringen: trace, debug, info, warning eller error.
--rendering <mode> Hvordan denne kjøringen setter sammen vinduene sine: gpu (standardvalget) eller cpu. Gjelder bare den kjøringen (se nedenfor).
--list-debug-flags Vis de kjente feilsøkingsflaggene med de gjeldende verdiene sine, og avslutt.
--diff <left> <right> Sammenlign to filer i en forbigående, skrivebeskyttet visning (medfører --viewer).
--viewer En forbigående, skrivebeskyttet visningsforekomst (se nedenfor).
--readonly Åpne de oppgitte filene skrivebeskyttet (se nedenfor).

--rendering: vindussammensetting for én kjøring

OctoEdit --rendering=cpu

Velger hvordan denne kjøringen setter sammen vinduene sine — gpu (standardvalget) eller cpu — og ikke noe annet. Hva de to modusene betyr, står under Innstillinger ▸ Generelt ▸ Vindusgjengivelse.

  • Det gjelder bare den kjøringen og lagres aldri: neste vanlige oppstart følger igjen det Innstillinger sier.
  • Modusen avgjøres før det første vinduet finnes, og kan ikke endres mens editoren kjører, så den dekker editorvinduet like mye som et --viewer- / --diff-vindu. En ukjent modus blir meldt og ignorert.
  • Med én instans slått på (standard) overlater en videresendt oppstart bare filene sine: vinduet som kjører, beholder modusen det startet med, og --rendering endrer ingenting der.

Hvis editorvinduet ikke kan brukes etter oppstart

Kommer vinduet opp feiltegnet, eller ikke i det hele tatt, start editoren én gang med --rendering=cpu og sett deretter selv Innstillinger ▸ Generelt ▸ Vindusgjengivelse til CPU — valget på kommandolinjen huskes ikke, det slipper deg bare inn, og det er innstillingen som gjør valget varig.

Går ikke det heller, kan innstillingen skrives inn for hånd med editoren lukket. Legg til i [app]-bolken i oppsettsfilen:

[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: å åpne bestemte filer låst

OctoEdit --readonly production.conf notes.txt

Åpner de oppgitte filene med redigeringen slått av — kommandoene som endrer (Klipp ut, Lim inn, Angre …) er nedtonet for de fanene, mens Kopier fortsetter å virke. I motsetning til --viewer er dette en vanlig forekomst av redigereren: økten din gjenopprettes, du kan åpne og redigere hvilket som helst annet dokument, og en ny --readonly-oppstart sender filene sine inn i vinduet som kjører, også låst. To sikringer: en oppgitt fil som allerede er åpen med ulagrede endringer, blir værende redigerbar (flagget fanger aldri endringer du ikke lenger kunne lagre), og en oppgitt sti som ennå ikke finnes, åpnes som en låst, tom buffer.

--diff: et vindu som sammenligner to filer

OctoEdit --diff old.txt new.txt

Åpner et eget vindu til engangsbruk, med bare én fane som viser sammenligningen av de to filene side om side — syntaksfarget, skrivebeskyttet og med hele settet av sammenligningsverktøy: navigasjon mellom forskjellene, oversiktslinjalen, bryterne for å ignorere blanktegn og store og små bokstaver, Justert-bryteren og fletting ved kopiering med lagring per side (begge operandene er virkelige filer, så begge retningene virker).

  • Det kreves nøyaktig to filer som finnes. En manglende fil eller en mappe meldes, og prosessen avslutter med kode 2 uten å åpne et redigeringsvindu (sammenligning av mapper ligger i Sammenlign mapper).
  • Prosessen holder seg i live til du lukker vinduet, og avslutter så med 0 — som er nøyaktig det git difftool venter på.
  • Vinduet er uavhengig av det vanlige OctoEdit-et ditt: det blir aldri med i mekanismen for bare én forekomst, laster ingen programtillegg og lagrer ingenting (ingen økt, intet oppsett, ingen poster om nylige filer). Redigereren din og økten dens røres ikke, og et hvilket som helst antall --diff-vinduer kan leve side om side med den.
  • KI-assistenten er fortsatt tilgjengelig — den er en del av kjernen. Stiller du et spørsmål der, får agenten automatisk vite hvilke to filer som er på skjermen (og lesetilgang til begge), så «hva er endret mellom disse filene?» bare virker.

Å sette det opp som git difftool

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

Så, for eksempel:

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

Tip

Se til at OctoEdit.exe ligger i PATH, eller skriv hele stien til den inn i cmd =-linjen.

--viewer: en skrivebeskyttet visning til engangsbruk

OctoEdit --viewer report.log

En forbigående forekomst til et raskt blikk på en fil, uten å forstyrre den virkelige redigeringsøkten din (medføres av --diff):

  • Filene som er oppgitt på kommandolinjen, åpnes som vanlig — og så låses forekomsten: bufferne er skrivebeskyttet, Fil ▸ Ny/Åpne/Lagre og alle Sammenlign-kommandoene er slått av, og ingenting kan åpne en fane til.
  • Å lukke den siste fanen lukker vinduet.
  • Ingenting bevares: ingen lagring eller gjenoppretting av økten, ingen skriving av vindusoppsettet, ingen poster om nylige filer.
  • Ingen programtillegg lastes, så den starter raskt; funksjonene i kjernen — syntaksfarging, temaer, KI-assistenten — er fortsatt tilgjengelige.

Avslutningskoder

Kode Betydning
0 Normal avslutning, også et lukket --diff- eller --viewer-vindu.
2 Ugyldig --diff-forespørsel (feil antall operander, manglende fil, en mappe som operand).