Pular para conteúdo

Comparar / Diff

Compare dois arquivos (ou um arquivo com seu buffer não salvo) e veja exatamente o que mudou — linha por linha e caractere por caractere — em uma visualização lado a lado; depois leve alterações específicas de um lado para o outro e salve o resultado.

Iniciando uma comparação

Todas as formas de comparar ficam no menu de primeiro nível Comparar:

Comando Compara
Comparar ▸ Comparar dois arquivos… Dois arquivos que você escolhe no disco.
Comparar ▸ Comparar com a versão salva O buffer ativo (suas edições não salvas) com a versão no disco.
Comparar ▸ Comparar com um arquivo… O documento ativo com um arquivo que você escolher.
Comparar ▸ Comparar com ▸ O documento ativo com outra aba aberta — o submenu lista todos os demais documentos abertos (um * marca alterações não salvas) e compara os buffers ao vivo, sem necessidade de salvar.
Comparar ▸ Comparar pastas… Duas árvores de diretórios — fornecido pelo plugin Comparação de pastas.
OctoEdit --diff a b (linha de comando) Dois arquivos, em uma janela de visualizador independente — a integração com git difftool.

A notificação de alteração de arquivo do editor também oferece um botão Comparar, para que você possa revisar uma alteração externa antes de recarregar.

Os arquivos são decodificados pela codificação detectada (UTF-8 com ou sem BOM, UTF-16 LE/BE, ou a página de código ANSI do sistema), então arquivos que não são UTF-8 são comparados corretamente — e salvar um lado mesclado o recodifica na codificação original do arquivo, BOM incluída.

Lendo o resultado

A comparação abre em uma nova aba com os dois arquivos lado a lado, e os dois painéis rolam juntos.

  • As linhas adicionadas / removidas / alteradas recebem um tom de fundo colorido na linha inteira mais uma faixa correspondente ao lado dos números de linha.
  • Um bloco de duas ou mais linhas que foi movido (excluído em um lugar, inserido sem alterações em outro — o rerecuo não importa) aparece em azul nos dois lados em vez de verde/vermelho, para que um rearranjo não seja confundido com uma edição.
  • Dentro de um par de linhas alteradas, os caracteres exatos que diferem são emoldurados em uma cor de destaque mais forte, então uma edição de uma palavra em uma linha longa salta à vista. O realce se ajusta aos limites de palavra sempre que possível.
  • Todas essas cores seguem o tema ativo e podem ser personalizadas por tema (veja o Editor de temas); há padrões sensatos integrados para as variantes clara e escura.
  • Uma alteração feita nas Preferências enquanto uma comparação está aberta chega até ela na hora: a fonte do editor, o tema (e com ele os tons do diff) e os auxílios de exibição são reaplicados aos dois painéis sem fechar e reabrir a aba. A quebra de linha é a única exceção — os dois painéis precisam manter geometria de linhas idêntica para continuarem alinhados, então ela não é aplicada aqui.

Comparações muito grandes (acima de ~1 MB) são calculadas em segundo plano — os painéis aparecem de imediato com um resumo "Comparando…" e os marcadores chegam quando o diff termina.

Editar ▸ Copiar e Selecionar tudo (e os atalhos deles) agem sobre o painel que contém o cursor no momento — clique em um painel para escolher a fonte da cópia.

Controles da barra de ferramentas

Controle O que faz
↓ Próxima / ↑ Anterior Leva os dois painéis à próxima/anterior diferença (posicionada a cerca de um terço da visualização). Também Alt+Baixo / Alt+Cima enquanto a aba de comparação tem o foco.
Ignorar espaços em branco Trata como iguais as linhas que diferem apenas no espaçamento.
Ignorar maiúsculas e minúsculas Trata como iguais as diferenças de caixa das letras.
Alinhado (ligado por padrão) Preenche o lado mais curto de cada alteração com linhas de preenchimento em branco, para que regiões correspondentes fiquem exatamente lado a lado em toda a área visível. Os arquivos em si nunca são modificados.
Trocar os lados Troca os dois lados (títulos, conteúdos, cópias pendentes e tudo mais) e compara de novo na outra direção.
Salvar a esquerda / Salvar a direita Grava o texto daquele lado de volta no arquivo depois que você copiou alterações para ele. Habilitado apenas enquanto o lado tem cópias não salvas; oculto para um lado que só existe em memória.

Um resumo mostra o número de diferenças; arquivos idênticos exibem ainda uma sobreposição centralizada com "Os arquivos são idênticos" que não passa despercebida.

Régua de visão geral

A coluna fina na borda direita mostra a comparação inteira num relance — uma marca colorida por diferença (verde adicionado, vermelho removido, âmbar alterado, azul movido), posicionada proporcionalmente ao seu lugar no documento. Clique em uma marca (ou em qualquer ponto da coluna) para saltar direto à diferença mais próxima.

Mesclando: copiar uma alteração para o outro lado

Clique com o botão direito em qualquer painel para trabalhar com a diferença sob o clique:

Item do menu O que faz
Copiar / Selecionar tudo As operações habituais de área de transferência para os painéis somente leitura.
Copiar a alteração para a direita Substitui o bloco desta alteração no lado direito pelo bloco do lado esquerdo.
Copiar a alteração para a esquerda O mesmo, na outra direção.
Desfazer a cópia Reverte a cópia mais recente (também Ctrl+Z enquanto a aba de comparação tem o foco).

Observações:

  • As duas direções funcionam não importa em qual painel da alteração você clicar com o botão direito — inclusive no lado "vazio" de uma inserção ou exclusão puras.
  • As linhas copiadas adotam os fins de linha do arquivo de destino, então mesclar entre um arquivo CRLF e um LF nunca produz um resultado com finais misturados.
  • Depois de uma cópia a comparação é recalculada imediatamente; as duas áreas visíveis permanecem onde estavam.
  • Um lado modificado por cópias mostra o botão Salvar esquerda/direita habilitado; ao salvar, o arquivo é gravado de forma atômica e o estado de modificado é limpo. Copiar para um lado que não tem arquivo no disco (por exemplo, o lado do buffer não salvo de Comparar com o salvo) não é possível — não haveria onde salvar.
  • Fechar uma aba de comparação com cópias não salvas pergunta antes de descartá-las.

Restaurado com a sua sessão

Uma comparação de arquivo com arquivo é lembrada e reaberta na próxima inicialização. Uma comparação contra um buffer não salvo não é restaurável (o lado em memória desaparece quando você sai), e cópias não salvas não são preservadas — salve-as antes.