Přeskočit obsah

Příkazový řádek a git difftool

OctoEdit má malou plochu na příkazové řádce vstřícnou skriptům: otevírá soubory (volitelně s pozicí kurzoru), umožňuje doladit jednotlivý běh několika volbami a — to hlavní — umí posloužit jako rychlý prohlížeč porovnání dvou souborů pro git difftool.

OctoEdit [options] [files...]

Cesty mohou být relativní i absolutní. Při spuštění z konzole se --help/--version vypíšou tam; při spuštění jinak se objeví v malém okně.

Otevírání souborů

OctoEdit notes.txt src\main.cpp README.md
  • Každý soubor se otevře ve vlastní kartě. Cesta, která zatím neexistuje, se otevře jako nový, neuložený buffer navázaný na ten název (uložením soubor vznikne).
  • Koncové :řádek nebo :řádek:sloupec u prvního souboru přesune kurzor (počítáno od 1, omezeno rozsahem dokumentu) — šikovné při práci s výstupem překladačů a grepu:
OctoEdit src\main.cpp:120:8
  • Se zapnutou jedinou instancí (výchozí stav) druhé spuštění předá své soubory běžícímu oknu a skončí.

Volby

Volba Význam
-h, --help Vypíše použití a skončí.
-v, --version Vypíše verzi aplikace a skončí.
--log <level> Nejnižší úroveň protokolu pro tento běh: trace, debug, info, warning nebo error.
--rendering <mode> Jak tento běh skládá svá okna: gpu (výchozí) nebo cpu. Platí jen pro tento běh (viz níže).
--list-debug-flags Vypíše rozpoznávané ladicí příznaky s jejich aktuálními hodnotami a skončí.
--diff <left> <right> Porovná dva soubory v dočasném prohlížeči jen ke čtení (zahrnuje --viewer).
--viewer Dočasná instance prohlížeče jen ke čtení (viz níže).
--readonly Otevře uvedené soubory jen ke čtení (viz níže).

--rendering: skládání okna pro jeden běh

OctoEdit --rendering=cpu

Vybírá, jak tento běh skládá svá okna — gpu (výchozí) nebo cpu — a nic jiného. Co oba režimy znamenají, popisuje Předvolby ▸ Obecné ▸ Vykreslování okna.

  • Platí jen pro tento běh a nikdy se neukládá: příští běžné spuštění se opět řídí Předvolbami.
  • Režim se rozhoduje ještě před tím, než existuje první okno, a za běhu editoru se nemůže změnit, takže se týká stejně okna editoru jako okna --viewer / --diff. Neznámý režim se ohlásí a přeskočí.
  • Se zapnutou jedinou instancí (výchozí stav) předané spuštění jen odevzdá své soubory: běžící okno si ponechá režim, s nímž nastartovalo, a --rendering tam nic nezmění.

Když okno editoru po spuštění nejde použít

Pokud se okno objeví špatně vykreslené nebo vůbec, spusťte editor jednou s --rendering=cpu a pak si sami nastavte Předvolby ▸ Obecné ▸ Vykreslování okna na CPU — volba z příkazové řádky se nepamatuje, takže vás jen pustí dovnitř, a trvalou ji udělá až nastavení.

Pokud ani to není možné, nastavení lze zapsat ručně při zavřeném editoru. Do sekce [app] konfiguračního souboru přidejte:

[app]
rendering\mode=cpu

Soubor je zde:

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

--readonly: otevřít konkrétní soubory uzamčené

OctoEdit --readonly production.conf notes.txt

Otevře uvedené soubory s vypnutými úpravami — měnící příkazy (Vyjmout, Vložit, Zpět…) pro tyto karty zašednou, zatímco Kopírovat funguje dál. Na rozdíl od --viewer jde o běžnou instanci editoru: vaše relace se obnoví, můžete otevřít a upravovat kterýkoli jiný dokument a druhé spuštění s --readonly předá své soubory běžícímu oknu rovněž uzamčené. Dvě pojistky: uvedený soubor, který už je otevřený s neuloženými změnami, zůstane upravitelný (příznak nikdy neuvězní změny, které byste pak nemohli uložit), a uvedená cesta, která zatím neexistuje, se otevře jako uzamčený prázdný buffer.

--diff: okno porovnání dvou souborů

OctoEdit --diff old.txt new.txt

Otevře samostatné, jednorázové okno, jehož jedinou kartou je porovnání obou souborů vedle sebe — s obarvením syntaxe, jen ke čtení a s plnou sadou nástrojů porovnání: přecházení mezi rozdíly, přehledové pravítko, přepínače ignorování bílých znaků a velikosti písmen i Zarovnané a slučování kopírováním změn s ukládáním po stranách (oba operandy jsou skutečné soubory, takže fungují oba směry).

  • Vyžadují se přesně dva existující soubory. Chybějící soubor nebo adresář se ohlásí a proces skončí s kódem 2, aniž by otevřel okno editoru (porovnávání adresářů bydlí v zásuvném modulu Porovnání složek).
  • Proces běží, dokud okno nezavřete, a pak skončí s 0 — což je přesně to, na co git difftool čeká.
  • Okno je nezávislé na vašem běžném OctoEditu: nikdy se nepřipojuje k mechanismu jediné instance, nenačítá žádné zásuvné moduly a nic neukládá (žádnou relaci, žádné rozvržení, žádné položky nedávných souborů). Vašeho editoru a jeho relace se to nedotkne a vedle něj může existovat libovolný počet oken --diff.
  • Asistent AI zůstává dostupný — je součástí jádra. Položíte-li tam dotaz, agent se automaticky dozví, které dva soubory jsou na obrazovce (a získá k oběma přístup pro čtení), takže »co se mezi těmito soubory změnilo?« prostě funguje.

Nastavení jako váš git difftool

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

Pak například:

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

Tip

Ujistěte se, že OctoEdit.exe je ve vaší PATH, nebo do řádku cmd = napište jeho úplnou cestu.

--viewer: jednorázový prohlížeč jen ke čtení

OctoEdit --viewer report.log

Dočasná instance pro rychlé nahlédnutí do souboru, aniž byste rušili svou skutečnou relaci (zahrnuta v --diff):

  • Soubory zadané na příkazové řádce se otevřou normálně — potom se instance uzamkne: buffery jsou jen ke čtení, Soubor ▸ Nový/Otevřít/Uložit i všechny příkazy Porovnat jsou vypnuté a nic nemůže otevřít další kartu.
  • Zavřením poslední karty se zavře okno.
  • Nic se neuchovává: žádné uložení ani obnovení relace, žádné zápisy rozvržení okna, žádné položky nedávných souborů.
  • Nenačítají se žádné zásuvné moduly, takže start je rychlý; funkce jádra — obarvování syntaxe, motivy, asistent AI — zůstávají dostupné.
Kód Význam
0 Normální ukončení, včetně zavřeného okna --diff/--viewer.
2 Neplatný požadavek --diff (špatný počet operandů, chybějící soubor, operand je adresář).