Saltar a contenido

Línea de comandos y git difftool

OctoEdit tiene una superficie de línea de comandos pequeña y amigable para scripts: abrir archivos (con una posición de cursor opcional), ajustar una ejecución con unas pocas opciones y —lo más destacado— actuar como visor rápido de comparación de dos archivos para git difftool.

OctoEdit [options] [files...]

Las rutas pueden ser relativas o absolutas. Cuando se inicia desde una consola, --help/--version imprimen ahí; iniciado de cualquier otra forma, aparecen en un pequeño diálogo.

Abrir archivos

OctoEdit notes.txt src\main.cpp README.md
  • Cada archivo se abre en su propia pestaña. Una ruta que todavía no existe se abre como un búfer nuevo sin guardar ligado a ese nombre (al guardar se crea el archivo).
  • Un :línea o :línea:columna al final del primer archivo mueve el cursor (empezando en 1, acotado al documento) — práctico desde compiladores y salidas de grep:
OctoEdit src\main.cpp:120:8
  • Con la instancia única activada (lo predeterminado), un segundo arranque reenvía sus archivos a la ventana en marcha y termina.

Opciones

Opción Significado
-h, --help Imprime el uso y termina.
-v, --version Imprime la versión de la aplicación y termina.
--log <level> Nivel mínimo de registro para esta ejecución: trace, debug, info, warning o error.
--rendering <mode> Cómo compone esta ejecución sus ventanas: gpu (el valor predeterminado) o cpu. Solo vale para esa ejecución (véase más abajo).
--list-debug-flags Lista las opciones de depuración reconocidas con sus valores actuales y termina.
--diff <left> <right> Compara dos archivos en un visor pasajero de solo lectura (implica --viewer).
--viewer Instancia de visor pasajera y de solo lectura (ver más abajo).
--readonly Abre los archivos indicados en modo de solo lectura (ver más abajo).

--rendering: composición de la ventana para una sola ejecución

OctoEdit --rendering=cpu

Elige cómo compone esta ejecución sus ventanas —gpu (el valor predeterminado) o cpu— y nada más. Qué significan los dos modos se explica en Preferencias ▸ General ▸ Renderizado de la ventana.

  • Vale solo para esa ejecución y nunca se guarda: el siguiente arranque normal vuelve a lo que digan las Preferencias.
  • El modo se decide antes de que exista la primera ventana y no puede cambiar mientras el editor se ejecuta, así que cubre igual la ventana del editor y una ventana --viewer / --diff. Un modo desconocido se informa y se ignora.
  • Con la instancia única activada (lo predeterminado), un arranque reenviado a un editor en marcha solo le entrega sus archivos: la ventana en marcha conserva el modo con el que arrancó, y ahí --rendering no cambia nada.

Si la ventana del editor no se puede usar tras el arranque

Si la ventana aparece mal dibujada, o no aparece en absoluto, arranca el editor una vez con --rendering=cpu y luego pon tú mismo Preferencias ▸ General ▸ Renderizado de la ventana en CPU: la opción de la línea de comandos no se recuerda, así que solo te deja entrar, y es el ajuste el que lo hace permanente.

Si tampoco puedes llegar ahí, el ajuste se puede escribir a mano con el editor cerrado. Añade a la sección [app] del archivo de configuración:

[app]
rendering\mode=cpu

El archivo está en:

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

--readonly: abrir archivos concretos bloqueados

OctoEdit --readonly production.conf notes.txt

Abre los archivos indicados con la edición desactivada: los comandos que modifican (Cortar, Pegar, Deshacer…) se atenúan para esas pestañas, mientras que Copiar sigue funcionando. A diferencia de --viewer, esta es una instancia normal del editor: tu sesión se restaura, puedes abrir y editar cualquier otro documento, y un segundo arranque con --readonly reenvía sus archivos a la ventana en marcha, también bloqueados. Dos salvaguardas: un archivo indicado que ya esté abierto con cambios sin guardar sigue siendo editable (la opción nunca atrapa cambios que ya no podrías guardar), y una ruta indicada que todavía no exista se abre como un búfer vacío bloqueado.

--diff: una ventana de comparación de dos archivos

OctoEdit --diff old.txt new.txt

Abre una ventana separada y desechable cuya única pestaña es la comparación en paralelo de los dos archivos: con coloreado de sintaxis, de solo lectura y con todas las herramientas de comparación —navegación por diferencias, la regla de resumen, los conmutadores de ignorar espacios en blanco y mayúsculas y de Alineado, y la fusión por copia de cambios con guardado por lado (ambos operandos son archivos reales, así que funcionan las dos direcciones).

  • Se requieren exactamente dos archivos existentes. Un archivo que falta o un directorio se informan y el proceso termina con el código 2 sin abrir ninguna ventana del editor (la comparación de directorios vive en el plugin Comparación de carpetas).
  • El proceso sigue vivo hasta que cierras la ventana y entonces termina con 0, que es exactamente lo que git difftool espera.
  • La ventana es independiente de tu OctoEdit normal: nunca se une al mecanismo de instancia única, no carga ningún plugin y no guarda nada (ni sesión, ni diseño, ni entradas de archivos recientes). Tu editor y su sesión quedan intactos, y puede coexistir con él cualquier número de ventanas --diff.
  • El asistente de IA sigue disponible: forma parte del núcleo. Hacer una pregunta ahí le indica automáticamente al agente qué dos archivos están en pantalla (y le concede acceso de lectura a ambos), así que «¿qué ha cambiado entre estos archivos?» funciona sin más.

Configurarlo como tu git difftool

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

Y entonces, por ejemplo:

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

Tip

Asegúrate de que OctoEdit.exe está en tu PATH o escribe su ruta completa en la línea cmd =.

--viewer: un visor desechable de solo lectura

OctoEdit --viewer report.log

Una instancia pasajera para echar un vistazo rápido a un archivo, sin molestar a tu sesión de edición real (implícita en --diff):

  • Los archivos indicados en la línea de comandos se abren con normalidad; luego la instancia queda bloqueada: los búferes son de solo lectura, Archivo ▸ Nuevo/Abrir/Guardar y todos los comandos de Comparar están desactivados, y nada puede abrir otra pestaña.
  • Cerrar la última pestaña cierra la ventana.
  • No se conserva nada: ni guardado ni restauración de sesión, ni escrituras del diseño de ventana, ni entradas de archivos recientes.
  • No se carga ningún plugin, así que arranca rápido; las funciones del núcleo —coloreado de sintaxis, temas, el asistente de IA— siguen disponibles.

Códigos de salida

Código Significado
0 Salida normal, incluida una ventana --diff/--viewer cerrada.
2 Petición --diff no válida (número de operandos incorrecto, archivo inexistente, operando que es un directorio).