Tabulação no vim. Como indentar corretamente o seu código. – Elias Praciano
Categories
Linux Programação Tutoriais UNIX

Tabulação no vim. Como indentar corretamente o seu código.

Dicas, truques e exemplos para configurar e ajustar a tabulação e a indentação do seu texto nos editores vi, vim, gvim etc.

Este post é para aquelas pessoas que acreditam que a indentação é muito mais do que uma questão de mera estética.
Código bom, começa com uma boa indentação e comentários pertinentes.
Fora disso, é a barbárie! 😉
vim editor on kde
Há vários padrões de indentação, contudo. Alguns usuários preferem uma tabulação um pouco mais distante da margem, outros preferem um espaçamento menor entre uma tabulação e outra etc.
Neste post, vamos abordar como configurar o editor de textos vi, para organizar a tabulação do jeito que você acha melhor.
Veja alguns modelos populares de indentação:

  • Tabulações ou tabs com a largura de 8 colunas e cada nível de indentação corresponde a um tab — popular no kernel do Linux
  • Tabs com largura de 4 colunas e cada nível de indentação corresponde a um tab — comum entre desenvolvedores Windows (Visual Studio)
  • Cada nível de indentação tem 4 espaçamentos. A tabulação não é usada — comum entre programadores Java

Veja, a seguir, como ajustar cada item, direto na interface do programa e no arquivo de configurações.
Para teste, estamos usando o Ubuntu 16.04 LTS (também chamado Xenial Xerus)com a versão 7.4 do Vim.
Para saber qual a versão do aplicativo, use a opção ‘–version’:

vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 16 2016 10:50:38)

Conceitos de tabulação, indentação etc.

Vamos entender alguns conceitos e parâmetros, que podem ser usados para configurar a tabulação e a indentação dentro do texto.

  • tabstop —   determina quantas colunas são inseridas para cada vez que for pressionada a tecla Tab.
    É o único que afeta um texto já existente. Os outros, afetarão o texto que for escrito, daqui em diante.
  • expandtab —   quando ajustado, pressionar a tecla Tab, no modo de inserção, irá produzir o número apropriado de espaços.
  • shiftwidth —   controla quantas colunas e texto são indentadas com as operações de reindentações.
  • softtabstop —   controla quantas colunas o vim usa quando a tecla Tab é pressionada, no modo de inserção.
    Se o ‘softtabstop’ tem valor inferior ao ‘tabstop’ e o ‘expandtab’ não estiver ligado, o vim irá usar a combinação de tabulações e espaços para obter o espaçamento desejado.
    Se o ‘softabstop’ for igual ao ‘tabstop’ e o ‘expandtab’ não estiver ligado, o vim só usará tabulações.
    Quando o ‘expandtab’ estiver ligado, o vim irá usar sempre o número apropriado de espaços.

A melhor maneira de entender é experimentando. Vejamos alguns exemplos, fáceis de aplicar.
vim tab and indent

Indentação na vida real

Lembre-se, somente o ‘tabstop’, terá efeito imediato, dentro do texto que você for usar para aplicar os exemplos.
Os outros ajustes só terão efeitos perceptíveis, à medida em que você inserir texto novo.
O primeiro exemplo, reproduz o tipo mais usado por desenvolvedores do kernel Linux, de que já falamos acima.
Para obter tabulações com largura de 8 colunas e cada nível de indentação com uma só tabulação:

:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab

O próximo exemplo, é o do Visual Studio.
Para obter tabulações com largura de 4 colunas e cada nível de indentação com uma só tabulação:

:set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab

Veja o exemplo de uso mais comum entre desenvolvedores Java — cada nível da indentação tem 4 espaços. Tabulações não são usadas:

:set softtabstop=4 shiftwidth=4 expandtab 

Segue mais 2 exemplos de ajuste da tabulação e indentação no vim.
No primeiro, ajustamos a tabulação para a largura de 8 colunas e cada nível de indentação em 3 colunas – que pode ser em espaços ou tabulações:

:set tabstop=8 softtabstop=3 shiftwidth=3 noexpandtab 

No segundo, o ajuste da tabulação fica em 5 colunas e o nível de indentação em 6 colunas — em espaços ou tabulações:

:set tabstop=5 softtabstop=6 shiftwidth=6 noexpandtab 

Me conte como você prefere configurar o seu editor vi ou vim.

O arquivo de configurações do vim

Depois de experimentar vários ajustes, você provavelmente irá escolher uma configuração para ser o padrão, para todos os novos arquivos.
Se você usa o Linux/UNIX, o arquivo de configurações é o ~/.vimrc. No Windows, ele fica em $HOME/_vimrc.
Se você usa a versão gráfica, gvim, pode acessar o painel de configurações, através do menu Editar.
Se o arquivo de configuração, não estiver presente no seu diretório home (no Linux), vocẽ pode copiar a versão “de fábrica”, /etc/vim/vimrc e alterá-la de acordo com as suas necessidades.
Uma outra alternativa é abrir o vim, já com estas opções ‘setadas’, dentro de um comentário. Veja um exemplo de comentário de primeira linha:

/* vim: set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab : */ 

É importante deixar esta linha comentada, ou o seu compilador irá pensar que este código tem a ver com ele — o que poderá causar problemas para você.
Happy coding! 😉

Referências

http://tedlogan.com/techblog3.html.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.