Przejdź do treści

Wiersz poleceń i git difftool

OctoEdit ma niewielki, przyjazny skryptom interfejs wiersza poleceń: otwieranie plików (z opcjonalną pozycją kursora), kilka opcji modyfikujących uruchomienie oraz — na pierwszym planie — rola szybkiej przeglądarki porównania dwóch plików dla git difftool.

OctoEdit [options] [files...]

Ścieżki mogą być względne lub bezwzględne. Przy starcie z konsoli --help/--version wypisują się w niej; uruchomione inaczej, pojawiają się w małym oknie dialogowym.

Otwieranie plików

OctoEdit notes.txt src\main.cpp README.md
  • Każdy plik otwiera się we własnej karcie. Ścieżka, która jeszcze nie istnieje, otwiera się jako nowy, niezapisany bufor powiązany z tą nazwą (zapis tworzy plik).
  • Końcówka :linia lub :linia:kolumna przy pierwszym pliku przesuwa kursor (liczone od 1, przycinane do dokumentu) — wygodne z kompilatorów i wyników grep:
OctoEdit src\main.cpp:120:8
  • Przy włączonej pojedynczej instancji (domyślnie) drugie uruchomienie przekazuje swoje pliki do działającego okna i kończy pracę.

Opcje

Opcja Znaczenie
-h, --help Wypisz sposób użycia i zakończ.
-v, --version Wypisz wersję aplikacji i zakończ.
--log <level> Minimalny poziom logowania dla tego uruchomienia: trace, debug, info, warning lub error.
--rendering <mode> Jak to uruchomienie komponuje swoje okna: gpu (domyślnie) albo cpu. Dotyczy tylko tego uruchomienia (zobacz niżej).
--list-debug-flags Wypisz rozpoznawane flagi debugowania z bieżącymi wartościami i zakończ.
--diff <left> <right> Porównaj dwa pliki w tymczasowej przeglądarce tylko do odczytu (implikuje --viewer).
--viewer Tymczasowa instancja przeglądarki tylko do odczytu (patrz niżej).
--readonly Otwórz wymienione pliki tylko do odczytu (patrz niżej).

--rendering: kompozycja okna dla jednego uruchomienia

OctoEdit --rendering=cpu

Wybiera, jak to uruchomienie komponuje swoje okna — gpu (domyślnie) albo cpu — i nic więcej. Co znaczą oba tryby, opisuje Preferencje ▸ Ogólne ▸ Renderowanie okna.

  • Dotyczy tylko tego uruchomienia i nigdy nie jest zapisywane: kolejne zwykłe uruchomienie wraca do tego, co mówią Preferencje.
  • Tryb ustalany jest przed powstaniem pierwszego okna i nie może się zmienić w trakcie działania edytora, więc obejmuje tak samo okno edytora jak okno --viewer / --diff. Nieznany tryb jest zgłaszany i pomijany.
  • Przy włączonym jednym wystąpieniu (domyślnie) uruchomienie przekazane do działającego edytora oddaje mu tylko swoje pliki — działające okno zostaje przy trybie, z którym wystartowało, więc --rendering nic tam nie zmienia.

Gdy okna edytora nie da się używać po starcie

Jeśli okno pojawia się narysowane błędnie albo nie pojawia się wcale, uruchom edytor raz z --rendering=cpu, a potem samodzielnie ustaw Preferencje ▸ Ogólne ▸ Renderowanie okna na CPU — opcja z wiersza poleceń nie jest pamiętana, więc wpuszcza Cię do środka, a ustawienie utrwala wybór.

Jeśli i to jest niemożliwe, ustawienie można wpisać ręcznie przy zamkniętym edytorze. Dodaj do sekcji [app] pliku konfiguracyjnego:

[app]
rendering\mode=cpu

Plik znajduje się w:

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

--readonly: otwieranie wybranych plików z blokadą

OctoEdit --readonly production.conf notes.txt

Otwiera wymienione pliki z zablokowaną edycją — polecenia modyfikujące (Wytnij, Wklej, Cofnij…) są dla tych kart wyszarzone, a Kopiuj nadal działa. W odróżnieniu od --viewer to normalna instancja edytora: sesja się przywraca, możesz otwierać i edytować inne dokumenty, a drugie uruchomienie z --readonly przekazuje swoje pliki do działającego okna również z blokadą. Dwie barierki: plik z listy, który jest już otwarty z niezapisanymi zmianami, pozostaje edytowalny (flaga nigdy nie uwięzi zmian, których nie mógłbyś już zapisać), a nieistniejąca jeszcze ścieżka z listy otwiera się jako zablokowany pusty bufor.

--diff: okno porównania dwóch plików

OctoEdit --diff old.txt new.txt

Otwiera osobne, jednorazowe okno, którego jedyną kartą jest porównanie dwóch plików obok siebie — z kolorowaniem składni, tylko do odczytu, z pełnym zestawem narzędzi porównania: nawigacją po różnicach, linijką przeglądową, przełącznikami ignorowania białych znaków/wielkości liter i „Wyrównane" oraz scalaniem kopiowaniem zmian z zapisem per strona (oba operandy to prawdziwe pliki, więc działają oba kierunki).

  • Wymagane są dokładnie dwa istniejące pliki. Brakujący plik lub katalog zostaje zgłoszony i proces kończy się kodem 2 bez otwierania okna edytora (porównywanie katalogów mieszka we wtyczce Porównanie folderów).
  • Proces żyje, dopóki nie zamkniesz okna, po czym kończy się kodem 0 — dokładnie na to czeka git difftool.
  • Okno jest niezależne od Twojego zwykłego OctoEdita: nigdy nie dołącza do mechanizmu pojedynczej instancji, nie ładuje wtyczek i niczego nie zapisuje (żadnej sesji, układu, wpisów ostatnich plików). Twój edytor i jego sesja są nietknięte, a okien --diff może współistnieć dowolnie wiele.
  • Asystent AI pozostaje dostępny — jest częścią rdzenia. Zadanie tam pytania automatycznie mówi agentowi, które dwa pliki są na ekranie (i daje mu do nich dostęp do odczytu), więc pytanie „co się zmieniło między tymi plikami?" po prostu działa.

Ustaw jako swój git difftool

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

Następnie na przykład:

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

Tip

Upewnij się, że OctoEdit.exe jest w PATH, albo wpisz pełną ścieżkę w linii cmd =.

--viewer: jednorazowa przeglądarka tylko do odczytu

OctoEdit --viewer report.log

Tymczasowa instancja do szybkiego zerknięcia w plik, bez naruszania Twojej prawdziwej sesji edycji (implikowana przez --diff):

  • Pliki podane w wierszu poleceń otwierają się normalnie — potem instancja zostaje zablokowana: bufory są tylko do odczytu, Plik ▸ Nowy/Otwórz/Zapisz i wszystkie polecenia Porównania są wyłączone i nic nie może otworzyć kolejnej karty.
  • Zamknięcie ostatniej karty zamyka okno.
  • Nic nie jest utrwalane: bez zapisu/przywracania sesji, bez zapisów układu okna, bez wpisów ostatnich plików.
  • Wtyczki się nie ładują, więc start jest szybki; funkcje rdzenia — kolorowanie składni, motywy, asystent AI — pozostają dostępne.

Kody wyjścia

Kod Znaczenie
0 Normalne zakończenie, w tym zamknięcie okna --diff/--viewer.
2 Nieprawidłowe żądanie --diff (zła liczba operandów, brakujący plik, operand-katalog).