Pular para conteúdo

Linha de comando e git difftool

O OctoEdit tem uma superfície de linha de comando pequena e amigável a scripts: abrir arquivos (com uma posição de cursor opcional), ajustar uma execução com algumas opções e — o destaque — atuar como visualizador rápido de comparação de dois arquivos para o git difftool.

OctoEdit [options] [files...]

Os caminhos podem ser relativos ou absolutos. Quando iniciado a partir de um console, --help/--version imprimem ali; iniciado de qualquer outra forma, eles aparecem em uma pequena caixa de diálogo.

Abrindo arquivos

OctoEdit notes.txt src\main.cpp README.md
  • Cada arquivo abre em sua própria aba. Um caminho que ainda não existe abre como um novo buffer não salvo vinculado àquele nome (salvar cria o arquivo).
  • Um :linha ou :linha:coluna ao final do primeiro arquivo move o cursor (começando em 1, limitado ao documento) — prático a partir de compiladores e saídas do grep:
OctoEdit src\main.cpp:120:8
  • Com a instância única ativada (o padrão), uma segunda inicialização encaminha seus arquivos para a janela em execução e termina.

Opções

Opção Significado
-h, --help Imprime o uso e termina.
-v, --version Imprime a versão do aplicativo e termina.
--log <level> Nível mínimo de log para esta execução: trace, debug, info, warning ou error.
--rendering <mode> Como esta execução compõe suas janelas: gpu (o padrão) ou cpu. Vale só para essa execução (veja abaixo).
--list-debug-flags Lista os sinalizadores de depuração reconhecidos com os valores atuais e termina.
--diff <left> <right> Compara dois arquivos em um visualizador passageiro somente leitura (implica --viewer).
--viewer Instância de visualizador passageira e somente leitura (veja abaixo).
--readonly Abre os arquivos indicados em modo somente leitura (veja abaixo).

--rendering: composição da janela para uma única execução

OctoEdit --rendering=cpu

Escolhe como esta execução compõe suas janelas — gpu (o padrão) ou cpu — e nada mais. O que os dois modos significam está em Preferências ▸ Geral ▸ Renderização da janela.

  • Vale só para essa execução e nunca é salvo: a próxima inicialização comum volta ao que as Preferências dizem.
  • O modo é decidido antes de a primeira janela existir e não pode mudar enquanto o editor roda, então cobre igualmente a janela do editor e uma janela --viewer / --diff. Um modo desconhecido é relatado e ignorado.
  • Com instância única ligada (o padrão), uma inicialização encaminhada para um editor em execução apenas entrega os arquivos dela: a janela em execução mantém o modo com que começou, e ali --rendering não muda nada.

Se a janela do editor não puder ser usada depois do start

Se a janela aparecer desenhada errado, ou não aparecer, inicie o editor uma vez com --rendering=cpu e depois ajuste você mesmo Preferências ▸ Geral ▸ Renderização da janela para CPU — a opção de linha de comando não é lembrada, então ela só te coloca dentro, e é a configuração que fixa a escolha.

Se nem isso for possível, a configuração pode ser escrita à mão com o editor fechado. Acrescente à seção [app] do arquivo de configuração:

[app]
rendering\mode=cpu

O arquivo fica em:

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

--readonly: abrir arquivos específicos travados

OctoEdit --readonly production.conf notes.txt

Abre os arquivos indicados com a edição desativada — os comandos que modificam (Recortar, Colar, Desfazer…) ficam esmaecidos para aquelas abas, enquanto Copiar continua funcionando. Diferente de --viewer, esta é uma instância normal do editor: sua sessão é restaurada, você pode abrir e editar qualquer outro documento, e uma segunda inicialização com --readonly encaminha seus arquivos para a janela em execução, também travados. Duas salvaguardas: um arquivo indicado que já esteja aberto com alterações não salvas continua editável (a opção nunca prende alterações que você não poderia mais salvar), e um caminho indicado que ainda não existe abre como um buffer vazio travado.

--diff: uma janela de comparação de dois arquivos

OctoEdit --diff old.txt new.txt

Abre uma janela separada e descartável cuja única aba é a comparação lado a lado dos dois arquivos — com coloração de sintaxe, somente leitura e com todo o ferramental de comparação: navegação por diferenças, a régua de visão geral, as alternâncias de ignorar espaços em branco/maiúsculas e de Alinhado, e a mesclagem por cópia de alterações com salvamento por lado (os dois operandos são arquivos reais, então as duas direções funcionam).

  • São exigidos exatamente dois arquivos existentes. Um arquivo faltando ou um diretório é reportado e o processo termina com o código 2 sem abrir nenhuma janela de editor (a comparação de diretórios fica no plugin Comparação de pastas).
  • O processo continua vivo até você fechar a janela e então termina com 0 — que é exatamente o que o git difftool espera.
  • A janela é independente do seu OctoEdit normal: ela nunca entra no mecanismo de instância única, não carrega plugins e não salva nada (sem sessão, sem layout, sem entradas de arquivos recentes). Seu editor e sua sessão ficam intactos, e qualquer número de janelas --diff pode coexistir com eles.
  • O assistente de IA continua disponível — ele faz parte do núcleo. Fazer uma pergunta ali informa automaticamente ao agente quais dois arquivos estão na tela (e concede acesso de leitura aos dois), então "o que mudou entre estes arquivos?" simplesmente funciona.

Configurando como seu git difftool

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

Então, por exemplo:

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

Tip

Verifique se OctoEdit.exe está no seu PATH, ou escreva o caminho completo dele na linha cmd =.

--viewer: um visualizador descartável somente leitura

OctoEdit --viewer report.log

Uma instância passageira para dar uma olhada rápida em um arquivo, sem perturbar sua sessão de edição real (implícita em --diff):

  • Os arquivos indicados na linha de comando abrem normalmente — então a instância fica travada: os buffers são somente leitura, Arquivo ▸ Novo/Abrir/Salvar e todos os comandos de Comparar ficam desativados, e nada pode abrir outra aba.
  • Fechar a última aba fecha a janela.
  • Nada é preservado: sem salvar ou restaurar sessão, sem gravações de layout de janela, sem entradas de arquivos recentes.
  • Nenhum plugin é carregado, então ela inicia rápido; os recursos do núcleo — coloração de sintaxe, temas, o assistente de IA — continuam disponíveis.

Códigos de saída

Código Significado
0 Saída normal, incluindo uma janela --diff/--viewer fechada.
2 Requisição --diff inválida (número de operandos errado, arquivo inexistente, operando que é um diretório).