MODULO 2.2

✏️ Write e Edit: Criacao e Edicao de Codigo

Duas ferramentas, dois propositos distintos. Aprenda quando usar Write para criar arquivos novos e Edit para modificar trechos especificos sem perder o contexto existente.

6
Topicos
40
Minutos
Pratico
Nivel
Core
Tipo
1

📝 Write: Criacao e Sobrescrita

Write cria um novo arquivo ou sobrescreve completamente um existente. E a escolha certa quando voce precisa criar algo do zero ou substituir todo o conteudo.

📋 Parametros do Write

Parametro Tipo Descricao
file_path string Caminho absoluto do arquivo a criar/sobrescrever
content string Conteudo completo a escrever no arquivo

Quando Usar Write

  • Criar arquivos novos (componentes, modulos, configs)
  • Substituir completamente arquivos pequenos
  • Gerar arquivos de configuracao (.json, .yaml, .toml)
  • Criar scripts de automacao

⚠️ Atencao

Write sobrescreve o arquivo existente sem perguntar. Se voce precisa modificar apenas parte de um arquivo, use Edit para evitar perder codigo.

2

🔧 Edit: Modificacao Precisa

Edit faz substituicoes exatas de strings dentro de arquivos. E a ferramenta ideal para modificar trechos especificos mantendo o resto intacto.

📋 Parametros do Edit

Parametro Tipo Descricao
file_path string Caminho absoluto do arquivo
old_string string Texto exato a ser substituido
new_string string Novo texto (deve ser diferente)
replace_all boolean Substituir todas ocorrencias (default: false)

Exemplo Pratico

# Renomear uma funcao

Edit( file_path="/projeto/src/utils.py", old_string="def calcular_total(", new_string="def calcular_subtotal(" )

# Substituir todas ocorrencias de uma variavel

Edit( file_path="/projeto/src/main.py", old_string="old_name", new_string="new_name", replace_all=true )

3

⚖️ Write vs Edit: Quando Usar Cada Um

Escolher entre Write e Edit depende do escopo da mudanca e do estado atual do arquivo.

📝 Use Write quando...

  • O arquivo nao existe ainda
  • Precisa substituir todo o conteudo
  • Arquivo e pequeno (< 50 linhas)
  • Gerando configs ou templates

🔧 Use Edit quando...

  • Modificando parte de um arquivo
  • Arquivo e grande (manter contexto)
  • Renomeando variaveis/funcoes
  • Corrigindo bugs especificos

💡 Regra de Ouro

Prefira Edit sobre Write para arquivos existentes. Edit e mais seguro porque so muda o que voce especifica, enquanto Write pode acidentalmente apagar codigo importante.

4

🎯 O Problema da Unicidade

Edit exige que old_string seja unico no arquivo. Se a string aparecer mais de uma vez e replace_all for false, a edicao falha.

!

Problema: String nao unica

# FALHA - "return" aparece varias vezes

Edit(old_string="return", new_string="return result")

Erro: old_string nao e unico no arquivo

Solucao: Incluir mais contexto

# SUCESSO - contexto adicional torna unico

Edit( old_string="def process_data():\n return", new_string="def process_data():\n return result" )

Inclua linhas anteriores/posteriores para unicidade

🔄 Alternativa: replace_all

Se voce quer substituir todas as ocorrencias (como renomear uma variavel), use replace_all: true.

Edit( file_path="/projeto/src/main.py", old_string="user_name", new_string="username", replace_all=true )

5

📐 Preservando Indentacao

Um dos erros mais comuns com Edit e nao preservar a indentacao correta. O texto em old_string deve corresponder exatamente ao que esta no arquivo, incluindo espacos e tabs.

✗ Errado

# Arquivo tem 4 espacos

def func(): return True

# Edit ignora indentacao

old_string="return True"

✓ Correto

# Inclui a indentacao exata

def func(): return True

# Edit preserva espacos

old_string=" return True"

💡 Dica do Read

Quando voce le um arquivo com Read, os numeros de linha sao prefixados. O conteudo real comeca apos o tab que segue o numero. Copie exatamente o que vem depois desse tab para seu old_string.

6

⚠️ Erros Comuns e Solucoes

Conhecer os erros mais frequentes ajuda a debugar rapidamente quando algo da errado.

1. "File not read before editing"

Voce precisa usar Read antes de Edit em arquivos existentes.

# Sempre leia primeiro

Read(file_path="/projeto/arquivo.py")

Edit(file_path="/projeto/arquivo.py", ...)

2. "old_string not found"

O texto exato nao existe no arquivo. Verifique espacos, quebras de linha.

# Use Read para ver o conteudo exato

Read(file_path="/projeto/arquivo.py", offset=X, limit=10)

3. "old_string is not unique"

O texto aparece mais de uma vez. Adicione contexto ou use replace_all.

# Adicione linhas antes/depois para unicidade

old_string="linha_anterior\ntexto_alvo\nlinha_posterior"

4. "new_string must be different"

old_string e new_string sao identicos.

# Certifique-se de que ha uma diferenca real

Verifique se o novo texto e realmente diferente do antigo

📋 Resumo do Modulo

Write cria ou sobrescreve - use para arquivos novos ou substituicao total
Edit modifica trechos - substituicao exata de strings
Prefira Edit para existentes - mais seguro, preserva contexto
old_string deve ser unico - ou use replace_all para todos
Preserve indentacao - copie exatamente do Read

Proximo Modulo:

2.3 - Glob e Grep: Busca Avancada no Codebase - encontre arquivos e conteudo de forma eficiente