Aller au contenu

Ligne de commande et git difftool

OctoEdit expose une petite surface en ligne de commande, adaptée aux scripts : ouvrir des fichiers (avec une position de curseur optionnelle), ajuster un lancement avec quelques options, et — le clou du spectacle — servir de visualiseur de comparaison rapide de deux fichiers pour git difftool.

OctoEdit [options] [files...]

Les chemins peuvent être relatifs ou absolus. Lancés depuis une console, --help/--version s'impriment dans celle-ci ; démarrés autrement, ils s'affichent dans une petite boîte de dialogue.

Ouvrir des fichiers

OctoEdit notes.txt src\main.cpp README.md
  • Chaque fichier s'ouvre dans son propre onglet. Un chemin qui n'existe pas encore s'ouvre comme un nouveau tampon non enregistré lié à ce nom (l'enregistrement crée le fichier).
  • Un suffixe :line ou :line:column sur le premier fichier déplace le curseur (base 1, borné au document) — pratique depuis la sortie d'un compilateur ou de grep :
OctoEdit src\main.cpp:120:8
  • Avec l'instance unique activée (le défaut), un second lancement transmet ses fichiers à la fenêtre en cours et se termine.

Options

Option Signification
-h, --help Affiche l'aide et quitte.
-v, --version Affiche la version de l'application et quitte.
--log <level> Niveau de journalisation minimal pour ce lancement : trace, debug, info, warning ou error.
--list-debug-flags Liste les options de débogage reconnues avec leurs valeurs actuelles et quitte.
--diff <left> <right> Compare deux fichiers dans un visualiseur temporaire en lecture seule (implique --viewer).
--viewer Instance de visualisation temporaire en lecture seule (voir ci-dessous).
--readonly Ouvre les fichiers listés en lecture seule (voir ci-dessous).

--readonly : ouvrir des fichiers précis verrouillés

OctoEdit --readonly production.conf notes.txt

Ouvre les fichiers listés avec l'édition désactivée — les commandes de modification (Couper, Coller, Annuler…) sont grisées pour ces onglets tandis que Copier continue de fonctionner. Contrairement à --viewer, il s'agit d'une instance d'éditeur normale : votre session se restaure, vous pouvez ouvrir et éditer n'importe quel autre document, et un second lancement --readonly transmet ses fichiers, verrouillés eux aussi, à la fenêtre en cours. Deux garde-fous : un fichier listé déjà ouvert avec des modifications non enregistrées reste éditable (l'option ne piège jamais des changements que vous ne pourriez plus enregistrer), et un chemin listé qui n'existe pas encore s'ouvre comme un tampon vide verrouillé.

--diff : une fenêtre de comparaison de deux fichiers

OctoEdit --diff old.txt new.txt

Ouvre une fenêtre séparée et jetable dont le seul onglet est la comparaison côte à côte des deux fichiers — colorée syntaxiquement, en lecture seule, avec toute la panoplie de comparaison : navigation entre différences, règle de vue d'ensemble, bascules ignorer les espaces / la casse et Aligné, et fusion par copie de modifications avec enregistrement par côté (les deux opérandes sont de vrais fichiers, les deux directions fonctionnent donc).

  • Exactement deux fichiers existants sont requis. Un fichier manquant ou un répertoire est signalé et le processus se termine avec le code 2 sans ouvrir de fenêtre d'éditeur (la comparaison de répertoires relève de l'extension Comparaison de dossiers).
  • Le processus reste vivant jusqu'à la fermeture de la fenêtre, puis se termine avec 0 — exactement ce qu'attend git difftool.
  • La fenêtre est indépendante de votre OctoEdit habituel : elle ne rejoint jamais le mécanisme d'instance unique, ne charge aucune extension et n'enregistre rien (pas de session, pas de disposition, pas d'entrées de fichiers récents). Votre éditeur et sa session restent intacts, et un nombre quelconque de fenêtres --diff peuvent coexister avec lui.
  • L'assistant IA reste disponible — il fait partie du cœur. Poser une question là indique automatiquement à l'agent quels deux fichiers sont à l'écran (et lui accorde l'accès en lecture aux deux), de sorte que « qu'est-ce qui a changé entre ces fichiers ? » fonctionne tout seul.

Le configurer comme git difftool

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

Puis, par exemple :

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

Tip

Assurez-vous que OctoEdit.exe est dans votre PATH, ou écrivez son chemin complet dans la ligne cmd =.

--viewer : un visualiseur jetable en lecture seule

OctoEdit --viewer report.log

Une instance temporaire pour jeter un rapide coup d'œil à un fichier, sans perturber votre vraie session d'édition (implicite avec --diff) :

  • Les fichiers passés en ligne de commande s'ouvrent normalement — puis l'instance est verrouillée : les tampons sont en lecture seule, Fichier ▸ Nouveau/Ouvrir/Enregistrer et toutes les commandes de Comparaison sont désactivées, et rien ne peut ouvrir un autre onglet.
  • Fermer le dernier onglet ferme la fenêtre.
  • Rien ne persiste : pas d'enregistrement ni de restauration de session, pas d'écriture de disposition de fenêtre, pas d'entrées de fichiers récents.
  • Aucune extension ne se charge, le démarrage est donc rapide ; les fonctionnalités du cœur — coloration syntaxique, thèmes, assistant IA — restent disponibles.

Codes de sortie

Code Signification
0 Sortie normale, y compris la fermeture d'une fenêtre --diff/--viewer.
2 Requête --diff invalide (mauvais nombre d'opérandes, fichier manquant, opérande répertoire).