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 [opcje] [pliki...]

Ś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 <poziom> Minimalny poziom logowania dla tego uruchomienia: trace, debug, info, warning lub error.
--list-debug-flags Wypisz rozpoznawane flagi debugowania z bieżącymi wartościami i zakończ.
--diff <lewy> <prawy> 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).

--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).