Hyppää sisältöön

Komentorivi ja git difftool

OctoEditillä on pieni, skripteille sopiva komentoriviliittymä: avaa tiedostoja (valinnaisen kohdistinsijainnin kanssa), viritä ajoa muutamalla valitsimella ja — mikä tärkeintä — toimi nopeana kahden tiedoston vertailunäkymänä git difftoolille.

OctoEdit [options] [files...]

Polut voivat olla suhteellisia tai absoluuttisia. Konsolista käynnistettäessä --help/--version tulostuvat sinne; muulla tavoin käynnistettäessä ne ilmestyvät pieneen ikkunaan.

Tiedostojen avaaminen

OctoEdit notes.txt src\main.cpp README.md
  • Jokainen tiedosto avautuu omaan välilehteensä. Polku, jota ei vielä ole olemassa, avautuu uutena, tallentamattomana puskurina, joka on sidottu tuohon nimeen (tallennus luo tiedoston).
  • Ensimmäisen tiedoston perään lisätty :rivi tai :rivi:sarake siirtää kohdistinta (numerointi alkaa ykkösestä, rajattuna asiakirjaan) — kätevää kääntäjiltä ja grep-tulosteesta:
OctoEdit src\main.cpp:120:8
  • Kun yksi ilmentymä on käytössä (oletus), toinen käynnistys välittää tiedostonsa käynnissä olevaan ikkunaan ja lopettaa.

Valitsimet

Valitsin Merkitys
-h, --help Tulosta käyttöohje ja lopeta.
-v, --version Tulosta sovelluksen versio ja lopeta.
--log <level> Tämän ajon alin lokitaso: trace, debug, info, warning tai error.
--rendering <mode> Miten tämä ajo kokoaa ikkunansa: gpu (oletus) tai cpu. Koskee vain tuota ajoa (katso alta).
--list-debug-flags Luettele tunnetut vianjäljitysliput nykyisine arvoineen ja lopeta.
--diff <left> <right> Vertaa kahta tiedostoa ohimenevässä, vain luettavassa katselunäkymässä (sisältää --viewer).
--viewer Ohimenevä, vain luettava katseluilmentymä (katso alta).
--readonly Avaa luetellut tiedostot vain luettavina (katso alta).

--rendering: ikkunan kokoaminen yhdelle ajolle

OctoEdit --rendering=cpu

Valitsee, miten tämä ajo kokoaa ikkunansa — gpu (oletus) tai cpu — eikä mitään muuta. Mitä nämä kaksi tilaa tarkoittavat, kerrotaan kohdassa Asetukset ▸ Yleiset ▸ Ikkunan piirtotapa.

  • Se koskee vain tuota ajoa eikä sitä koskaan tallenneta: seuraava tavallinen käynnistys noudattaa jälleen Asetuksia.
  • Tila ratkaistaan ennen kuin ensimmäinen ikkuna on olemassa, eikä se voi muuttua editorin ajon aikana, joten se kattaa yhtä lailla editorin ikkunan ja --viewer- / --diff-ikkunan. Tuntematon tila ilmoitetaan ja ohitetaan.
  • Kun yhden ilmentymän tila on päällä (oletus), käynnissä olevalle editorille välitetty käynnistys luovuttaa vain tiedostonsa: käynnissä oleva ikkuna pitää sen tilan, jolla se käynnistyi, eikä --rendering muuta siellä mitään.

Jos editorin ikkunaa ei voi käyttää käynnistyksen jälkeen

Jos ikkuna tulee esiin väärin piirrettynä tai ei lainkaan, käynnistä editori kerran valitsimella --rendering=cpu ja aseta sitten itse Asetukset ▸ Yleiset ▸ Ikkunan piirtotapa arvoon CPU — komentorivivalitsinta ei muisteta, se vain päästää sinut sisään, ja asetus tekee valinnasta pysyvän.

Jos edes se ei onnistu, asetus voidaan kirjoittaa käsin editorin ollessa suljettuna. Lisää asetustiedoston [app]-osioon:

[app]
rendering\mode=cpu

Tiedosto on täällä:

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

--readonly: tiettyjen tiedostojen avaaminen lukittuina

OctoEdit --readonly production.conf notes.txt

Avaa luetellut tiedostot muokkaus pois käytöstä — muuttavat komennot (Leikkaa, Liitä, Kumoa …) ovat harmaana noilla välilehdillä, kun taas Kopioi toimii edelleen. Toisin kuin --viewer, tämä on tavallinen editori-ilmentymä: istuntosi palautuu, voit avata ja muokata mitä tahansa muuta asiakirjaa, ja uusi --readonly-käynnistys välittää tiedostonsa käynnissä olevaan ikkunaan myös lukittuina. Kaksi suojaa: lueteltu tiedosto, joka on jo auki tallentamattomien muutosten kanssa, pysyy muokattavana (lippu ei koskaan vangitse muutoksia, joita et voisi enää tallentaa), ja lueteltu polku, jota ei vielä ole olemassa, avautuu lukittuna tyhjänä puskurina.

--diff: kahden tiedoston vertailuikkuna

OctoEdit --diff old.txt new.txt

Avaa erillisen, kertakäyttöisen ikkunan, jonka ainoa välilehti on kahden tiedoston vierekkäinen vertailu — syntaksivärjättynä, vain luettavana ja koko vertailutyökaluvalikoimalla: erojen välillä liikkuminen, yleiskuvaviivain, tyhjemerkkien ja kirjainkoon ohitus, Tasattu-kytkin ja kopioimalla yhdistäminen puolikohtaisella tallennuksella (molemmat osapuolet ovat oikeita tiedostoja, joten molemmat suunnat toimivat).

  • Vaaditaan täsmälleen kaksi olemassa olevaa tiedostoa. Puuttuvasta tiedostosta tai hakemistosta ilmoitetaan, ja prosessi lopettaa koodilla 2 avaamatta editori-ikkunaa (hakemistojen vertailu on Kansiovertailu-liitännäisessä).
  • Prosessi pysyy elossa, kunnes suljet ikkunan, ja lopettaa sitten koodilla 0 — juuri tätä git difftool odottaa.
  • Ikkuna on riippumaton tavallisesta OctoEditistäsi: se ei koskaan liity yhden ilmentymän mekanismiin, ei lataa liitännäisiä eikä tallenna mitään (ei istuntoa, ei asettelua, ei merkintöjä äskettäisistä tiedostoista). Editoriisi ja sen istuntoon ei kosketa, ja mikä tahansa määrä --diff-ikkunoita voi elää sen rinnalla.
  • Tekoälyavustaja on edelleen käytettävissä — se on osa ydintä. Kun kysyt siltä kysymyksen, agentti saa automaattisesti tietää, mitkä kaksi tiedostoa ovat näytöllä (ja lukuoikeuden molempiin), joten »mikä muuttui näiden tiedostojen välillä?« toimii suoraan.

Määrittäminen git difftooliksi

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

Sitten esimerkiksi:

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

Tip

Varmista, että OctoEdit.exe on PATH-muuttujassa, tai kirjoita sen koko polku cmd = -riville.

--viewer: kertakäyttöinen, vain luettava katselunäkymä

OctoEdit --viewer report.log

Ohimenevä ilmentymä nopeaan vilkaisuun tiedostoon, häiritsemättä varsinaista muokkausistuntoasi (sisältyy --diff-valitsimeen):

  • Komentorivillä annetut tiedostot avautuvat tavalliseen tapaan — sitten ilmentymä lukitaan: puskurit ovat vain luettavia, Tiedosto ▸ Uusi/Avaa/Tallenna ja kaikki Vertaa-komennot ovat pois käytöstä, eikä mikään voi avata toista välilehteä.
  • Viimeisen välilehden sulkeminen sulkee ikkunan.
  • Mitään ei säilytetä: ei istunnon tallennusta tai palautusta, ei ikkuna-asettelun kirjoituksia, ei merkintöjä äskettäisistä tiedostoista.
  • Liitännäisiä ei ladata, joten se käynnistyy nopeasti; ytimen ominaisuudet — syntaksivärjäys, teemat, tekoälyavustaja — ovat edelleen käytettävissä.

Paluukoodit

Koodi Merkitys
0 Normaali lopetus, mukaan lukien suljettu --diff- tai --viewer-ikkuna.
2 Virheellinen --diff-pyyntö (väärä määrä osapuolia, puuttuva tiedosto, hakemisto osapuolena).