Comparador de texto (Diff)
Cole dois textos e veja as diferenças destacadas.
Diferença
- Cole o texto original em Texto A.
- Cole a versão alterada em Texto B.
- Escolha Linhas para código/configuração ou Palavras para prosa.
- Ative Ignorar espaços ou Ignorar maiúsculas se mudanças invisíveis adicionarem ruído.
- Leia a saída destacada abaixo — verde é adicionado, vermelho é removido.
O que ele faz?
O comparador de texto confronta duas amostras e mostra exatamente o que foi adicionado, removido ou mantido. O modo Linhas trata cada linha como uma unidade — ideal para código-fonte e configurações em que a linha inteira costuma mudar. O modo Palavras divide por espaços e é melhor para prosa, onde importam as edições no nível do token.
Exemplo
Texto A:
function greet(name) {
console.log("Hello, " + name);
} Texto B:
function greet(name) {
if (!name) name = "world";
console.log(`Hello, ${name}!`);
} Diferença no modo linhas:
function greet(name) {
+ if (!name) name = "world";
- console.log("Hello, " + name);
+ console.log(`Hello, ${name}!`);
} Erros comuns e armadilhas
Quando duas linhas parecem idênticas mas o diff ainda as marca como alteradas, a causa é quase sempre um caractere invisível ou uma diferença de maiúsculas. Os suspeitos de sempre.
- Fins de linha CRLF vs LF. Arquivos Windows terminam linhas com \r\n, Unix com \n. Uma diferença de um caractere já marca cada linha. Resolva ativando Ignorar espaços, ou normalize com dos2unix / configurações do seu editor.
- Espaços ao final da linha. A não ser que espaços sejam ignorados, "foo " e "foo" diferem. Um salvamento que retire espaços finais fará cada linha tocada parecer modificada.
- Tabs vs espaços. Uma reformatação que troca tabs por espaços (ou vice-versa) faz cada linha indentada parecer diferente no modo estrito. Ative Ignorar espaços ou reformate ambos os lados da mesma maneira primeiro.
- Marca de ordem de bytes (BOM). Arquivos salvos como UTF-8 com BOM começam com um invisível. Essa primeira "linha" sempre aparecerá modificada contra um arquivo sem BOM. Remova o BOM no seu editor ou num editor hex antes de colar.
- Aspas tipográficas ou espaços inquebráveis. Colar de um processador de texto pode trocar " por " ou espaço comum por espaço inquebrável. Parecem iguais mas têm code points distintos. Normalize para ASCII simples antes de comparar.
- Diferenças só de maiúsculas. API e api são strings diferentes a não ser que você ative Ignorar maiúsculas. As correspondências ainda mostram o texto original; só a comparação fica mais frouxa.
Perguntas frequentes
Qual a diferença entre modo linhas e modo palavras?
O modo linhas compara linha a linha — se qualquer caractere mudar numa linha, a linha inteira é marcada como removida de A e adicionada em B. O modo palavras divide por espaços e mostra um diff mais granular, melhor para prosa. Para código-fonte e configurações, linhas é quase sempre o adequado.
Por que linhas aparentemente idênticas aparecem como alteradas?
Costuma ser uma de três diferenças invisíveis: fins de linha (CRLF no Windows vs LF no Unix), espaços no final da linha, ou uma marca de ordem de bytes (BOM) no início do arquivo. Ative "Ignorar espaços" para as duas primeiras. Para BOMs, abra o arquivo num editor hex ou remova os bytes iniciais antes de colar.
Ele faz diff caractere a caractere?
Não. No modo linhas faz diff por linha; no modo palavras, por token separado por espaço. Diffs em nível de caractere geram saída ruidosa na maioria dos textos reais. Se precisar comparar caractere para strings curtas, cole-as no modo palavras — sem espaços, cada caractere vira efetivamente o próprio token.
Quão grandes podem ser as entradas?
O diff roda em memória, então o teto prático é a RAM do seu navegador. Até alguns MB por lado funciona bem; dezenas de MB podem travar a aba brevemente porque renderizar o HTML destacado é mais lento que o próprio diff. Para arquivos muito grandes, use GNU diff ou git diff localmente.
Posso ignorar maiúsculas ou espaços em branco?
Sim — ambos são opções na barra de ferramentas. "Ignorar espaços" trata qualquer sequência de espaços como equivalente, útil para código reformado. "Ignorar maiúsculas" trata "Hello" e "hello" como iguais. As correspondências ainda mostram o texto original; só a comparação fica mais frouxa.
Vocês salvam o texto que eu colo nas duas caixas?
Não. Nada do que você cola aqui — nem o "antes" nem o "depois" — fica salvo. Tudo que você comparar é descartado assim que fecha ou atualiza a página. Sem logs, sem análise do seu conteúdo. Se quiser segurança extra, as ferramentas de desenvolvedor do seu navegador mostram o que está acontecendo.