Explore seu editor de texto além do básico

Marcelo P
Pelando
Published in
4 min readApr 22, 2020
Always pick the right tool for the job

Um aspecto talvez um pouco desprezado da programação é a familiaridade com o editor de texto (ou o editor de uma IDE como VS Code ou PyCharm). Nós passamos um bom tempo aprendendo novas linguagens e frameworks mas esquecemos da principal ferramenta que usamos para programar. As tecnologias mudam a todo tempo, mas o editor de texto permanece praticamente o mesmo. Por isso é tão importante conhecê-lo bem.

Além de editar código, às vezes precisamos lidar com tarefas ad-hoc de processamento de texto como substituição, conversão, formatação, etc. Quem nunca pegou um JSON enorme que precisava ser ajustado ou um texto bagunçado para ser convertido em algo como uma tabela? Note que para tarefas recorrentes, a solução ideal pode ser automatizar com um programa ou algo equivalente. Porém, a pior coisa a se fazer seria manualmente aplicar edições repetitivas em um texto enorme. Além de ter grande chance de cometer erros, há o tempo gasto nisso.

Mostrarei a seguir as funcionalidades não tão óbvias de um bom editor de texto que todo programador deveria conhecer. Os exemplos usam o Sublime Text 3, um editor multiplataforma e gratuito para usar, porém devem existir em outros editores avançados (isso exclui o bloco de notas). Os atalhos mostrados referem-se à versão Mac, mas devem ser parecidos em outros ambientes.

Find and Replace Like a Pro

Todo mundo já deve conhecer essa funcionalidade que existe em qualquer editor (isso inclui o bloco de notas), mas há formas de torná-la mais eficiente. Em primeiro lugar, você pode usar o próprio texto selecionado para preencher o campo do find, usando ⌘E. Depois, basta abrir a barra de Find and Replace (⌥⌘F) e apertar Tab para escrever o texto para substituir.

Queremos trocar o nome das variáveis sol1 e sol2 para x1 e x2

Mas espere! Se selecionarmos Replace All (⌃⌥⏎), vários outras strings serão trocadas e seu programa passará a imprimir “The xution are…”. Note que o editor está mostrando com retângulos verdes todos os matches, o que é muito útil para pré-visualização. Usar o Replace One (⌥⌘E) também não seria muito eficiente (imagine que o código é muito maior).

A solução nesse caso é usar expressões regulares outra coisa que todo dev precisa conhecer bem— e grupos de captura. Queremos substituir sol1 ou sol2 (e nada mais) trocando por x1 e x2, respectivamente. Portanto, devemos usar [1–2] dentro de parênteses para “capturar” o número e substituir usando \1 o que denota o primeiro grupo capturado (você pode usar vários grupos na mesma regex).

Agora sim! Certifique-se que a opção de regex está ativada (⌥⌘R)

É claro que esse exemplo tem apenas fins didáticos pois além de ser muito simples, poderia ter sido melhor resolvido em uma IDE usando a função de renomear variáveis. Porém, familiarize-se com as opções do Find and Replace, sendo preserve case (⌥⌘A), case sensitive (⌥⌘C) e in selection muito úteis também.

Um cursor é pouco

Quando precisamos fazer edições baseada em aspectos mais visuais ao invés de buscando algum texto, o suporte a múltiplos cursores pode ser muito útil. A forma mais simples de adicionar cursores é usando ⌃⇧⇡ para estender a seleção à linha acima (ou ⌃⇧⇣ abaixo). Esse tipo de seleção tem utilidade principalmente quando há algum alinhamento vertical no texto.

O mouse também pode ser usado para selecionar segurando ⌘ e o botão esquerdo para adicionar um cursor ou segurando o botão do meio para adicionar uma área, o que permite fazer seleção retangular. Finalmente, outra forma seria selecionando algum texto e usando ⌘D para selecionar também a próxima ocorrência ou ⌃⌘G para selecionar todas. Existem muitas situações para esse tipo de edição, mas requer uma certa prática para se acostumar.

Outras funcionalidades interessantes

Existem vários outras funcionalidades que podem ser exploradas mas não cabe aqui entrar em detalhes. Algumas das minhas preferidas são:

  • Usar bookmarks para navegar rápido entre trechos distantes do arquivo.
  • Folding permite esconder blocos de código para melhor visualização.
  • Mover, duplicar ou deletar várias linhas de código de uma só vez.
  • Snippets permitem colar textos pré-definidos digitando um alias + Tab.

Conclusão

Acredito que todo desenvolvedor deva explorar e conhecer bem seu editor de texto, afinal é a principal ferramenta usada na produção de código. Às vezes uma funcionalidade extra pode parecer complexa ou desnecessária, mas com a prática pode se tornar muito útil. Aprender os atalhos de teclado também são fundamentais para a produtividade.

Seja você usuário ferrenho de vi ou Emacs, fã do Sublime ou daqueles que só usam IDEs, vale a pena se aprofundar!

Referências

--

--