Gå till innehållet

Kommandorad och git difftool

OctoEdit har en liten, skriptvänlig kommandoradsyta: öppna filer (med en valfri markörposition), justera en körning med några få alternativ, och — det främsta — tjäna som en snabb jämförare av två filer för git difftool.

OctoEdit [options] [files...]

Sökvägar kan vara relativa eller absoluta. Startad från en konsol skriver --help/--version ut där; startad på något annat sätt visas de i stället i en liten dialogruta.

Öppna filer

OctoEdit notes.txt src\main.cpp README.md
  • Varje fil öppnas i en egen flik. En sökväg som ännu inte finns öppnas som en ny, osparad buffert bunden till det namnet (att spara skapar filen).
  • Ett avslutande :line eller :line:column på den första filen flyttar markören (räknat från 1, begränsat till dokumentet) — praktiskt från kompilatorer och utdata från grep:
OctoEdit src\main.cpp:120:8
  • Med en enda instans aktiverad (standard) skickar en andra start sina filer vidare till det körande fönstret och avslutas.

Alternativ

Alternativ Betydelse
-h, --help Skriv ut användning och avsluta.
-v, --version Skriv ut programmets version och avsluta.
--log <level> Lägsta loggnivå för den här körningen: trace, debug, info, warning eller error.
--rendering <mode> Hur den här körningen komponerar sina fönster: gpu (standardvärdet) eller cpu. Gäller bara den körningen (se nedan).
--list-debug-flags Lista de kända felsökningsflaggorna med deras aktuella värden och avsluta.
--diff <left> <right> Jämför två filer i en flyktig skrivskyddad visning (medför --viewer).
--viewer Flyktig skrivskyddad visningsinstans (se nedan).
--readonly Öppna de angivna filerna skrivskyddade (se nedan).

--rendering: fönsterkomposition för en körning

OctoEdit --rendering=cpu

Väljer hur den här körningen komponerar sina fönster — gpu (standardvärdet) eller cpu — och ingenting annat. Vad de två lägena innebär står under Inställningar ▸ Allmänt ▸ Fönsterrendering.

  • Det gäller bara den körningen och sparas aldrig: nästa vanliga start följer igen det Inställningar säger.
  • Läget avgörs innan det första fönstret finns och kan inte ändras medan editorn körs, så det täcker editorfönstret likaväl som ett --viewer- / --diff-fönster. Ett okänt läge rapporteras och ignoreras.
  • Med en enda instans påslagen (standard) lämnar en vidarebefordrad start bara över sina filer: det körande fönstret behåller det läge det startade med, och --rendering ändrar inget där.

Om editorfönstret inte går att använda efter starten

Om fönstret kommer upp felritat, eller inte alls, starta editorn en gång med --rendering=cpu och sätt sedan själv Inställningar ▸ Allmänt ▸ Fönsterrendering till CPU — alternativet på kommandoraden kommer inte ihåg, det släpper bara in dig, och det är inställningen som gör valet bestående.

Går inte ens det, kan inställningen skrivas för hand med editorn stängd. Lägg till i avsnittet [app] i konfigurationsfilen:

[app]
rendering\mode=cpu

Filen ligger på:

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

--readonly: öppna vissa filer låsta

OctoEdit --readonly production.conf notes.txt

Öppnar de angivna filerna med redigering avstängd — de ändrande kommandona (Klipp ut, Klistra in, Ångra…) gråtonas för de flikarna medan Kopiera fortsätter fungera. Till skillnad från --viewer är detta en normal instans av redigeraren: din session återställs, du kan öppna och redigera vilket annat dokument som helst, och en andra start med --readonly skickar sina filer vidare till det körande fönstret också låsta. Två skyddsräcken: en angiven fil som redan är öppen med osparade ändringar förblir redigerbar (flaggan fångar aldrig ändringar du sedan inte skulle kunna spara), och en angiven sökväg som ännu inte finns öppnas som en låst tom buffert.

--diff: ett fönster för att jämföra två filer

OctoEdit --diff old.txt new.txt

Öppnar ett separat, slit-och-släng-fönster vars enda flik är jämförelsen av de två filerna sida vid sida — syntaxfärgad, skrivskyddad, med hela jämförelseverktygslådan: navigering mellan skillnader, översiktslinjalen, växlarna för att bortse från blanksteg och skiftläge och för I linje, samt sammanslagning genom kopiering med sparande per sida (båda operanderna är riktiga filer, så båda riktningarna fungerar).

  • Exakt två befintliga filer krävs. En saknad fil eller en katalog rapporteras och processen avslutas med kod 2 utan att något redigeringsfönster öppnas (jämförelse av kataloger bor i insticksmodulen Jämför mappar).
  • Processen förblir vid liv tills du stänger fönstret och avslutas sedan med 0 — vilket är precis vad git difftool väntar på.
  • Fönstret är oberoende av din vanliga OctoEdit: det ansluter sig aldrig till mekanismen med en enda instans, läser inte in några insticksmoduler och sparar inget (ingen session, ingen layout, inga poster bland nyligen öppnade filer). Din redigerare och dess session lämnas orörda, och hur många --diff-fönster som helst kan samexistera med den.
  • AI-assistenten förblir tillgänglig — den är en del av kärnan. Att ställa en fråga där talar automatiskt om för agenten vilka två filer som ligger på skärmen (och ger den läsåtkomst till båda), så att «vad ändrades mellan de här filerna?» helt enkelt fungerar.

Ställa in den som ditt git difftool

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

Sedan till exempel:

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

Tip

Se till att OctoEdit.exe finns i din PATH, eller skriv dess fullständiga sökväg i raden cmd =.

--viewer: en slit-och-släng-visning med skrivskydd

OctoEdit --viewer report.log

En flyktig instans för en snabb titt på en fil, utan att störa din riktiga redigeringssession (medförs av --diff):

  • Filerna som angetts på kommandoraden öppnas normalt — därefter låses instansen: buffertarna är skrivskyddade, Fil ▸ Ny/Öppna/Spara och alla jämförelsekommandon är avstängda, och inget kan öppna ytterligare en flik.
  • Att stänga den sista fliken stänger fönstret.
  • Inget bevaras: ingen session sparas eller återställs, inga skrivningar av fönsterlayouten, inga poster bland nyligen öppnade filer.
  • Inga insticksmoduler läses in, så den startar snabbt; kärnfunktioner — syntaxfärgning, teman, AI-assistenten — förblir tillgängliga.

Avslutskoder

Kod Betydelse
0 Normal avslutning, inklusive ett stängt --diff- eller --viewer-fönster.
2 Ogiltig --diff-begäran (fel antal operander, saknad fil, katalog som operand).