Num desktop doméstico também é necessário ter um bom editor de textos. Para essa tarefa no modo texto existem atualmente vários editores, como o ed, nano, pico, mcedit (que vem junto com o midnight commander) e dois concorrentes de peso: o vim e o emacs.
Adorados como religião, esses dois editores de texto duelam pela preferência dos linuxers e são alvos de intermináveis discussões entre quem gosta de um e quem gosta de outro. E não é para menos, os dois softwares seguem filosofias totalmente diferentes.
Na minha escolha dei preferência ao VIM, já que desde que conheço o
Linux eu utilizo ele pra editar meus arquivos de configuração no shell e estou mais familiarizado com sua interface e comandos.
Instalando.
No Debian basta:
# apt-get install vim vim-common
Algumas características do VIM:
Apesar do VIM ser um editor de textos extremamente voltado para programação (assim como o emacs), ele também é um poderoso editor de textos comuns e possui muitas funcionalidades avançadas que outros editores gráficos como o Microsoft Word e OpenOffice Writer possuem, como abrir vários arquivos ao mesmo tempo, auto-correção, auto-identação, seleção visual, macros e várias outras como seleção vertical de texto, interação total com o sistema operacional, uso de expressões regulares, sintaxe colorida etc, além do uso do mouse (através do gpm).
O sucesso do VIM foi tão grande que ele já foi portado para várias outras plataformas, como Amiga, MacOs, SunOs, DOS, Windows e muitas outras.
Tanto o VIM quanto o EMACS possuem versões para interfaces gráficas diversas, como o gvim e o xemacs.
O VIM tem uma característica básica: ele tem dois modos de operação, um de inserção, em que as letras do teclado são puramente letras, como em qualquer outro editor, identificado por um "-- INSERT --" na parte inferior esquerda da tela, e o outro que é o modo de comandos, em que as letras são comandos de edição e é o modo padrão ativo quando você abre um arquivo no vim.
Para entrar no modo de inserção basta digitar i. Para sair do modo de inserção e voltar ao de comandos, basta apertar a tecla Esc. Todos os comandos que serão apresentados nesta parte do artigo deverão ser executados no modo de comandos.
Como o VIM é um editor de textos para funcionar no modo texto, ele tem suas limitações visuais, que não lhe permitem deixar uma palavra em itálico ou sublinhada por exemplo. Porém, existem várias possibilidades, como por exemplo: centralizar a linha atual.
Basta no modo de comando dar um :ce, ou o nome completo, :center. De maneira similar temos o :left e o :right.
Todos esses comandos podem ser aplicados em várias linhas ao mesmo tempo usando a seleção visual do VIM.
Para isso, no modo de comandos digite v e com as setas selecione o texto e depois digite :ce que todo o texto será centralizado.
Como característica tradicional do vi, um mesmo comando com letra maiúscula faz uma operação complementar, ou similar, mas com uma variante.
No caso da seleção, se usar V (Shift+v) ao invés de v, a seleção automaticamente pega a linha toda. E para seu deleite, e inveja de outros editores, com o Ctrl+v, temos a seleção vertical!
Como selecionar as três primeiras letras de várias linhas?
O Ctrl+v faz isso pra você.
Mais um exemplo: o comando x apaga um caractere à direita, enquanto o X apaga à esquerda (como as teclas Delete e BackSpace).
Também podemos editar dois ou mais arquivos ao mesmo tempo e ver todos simultaneamente, separados horizontalmente.
Enquanto estiver editando um arquivo qualquer no vim, digite :split /home/usuário/meuarquivo.txt. Para alternar entre as janelas, basta dois Ctrl+w (w de window).
Como na linha de comando, a tecla TAB completa nomes de arquivos e também comandos do vim. Então no "split" acima, apenas um :split /home/usuário/meuarq<TAB> já funcionaria.
Comparável a editores de textos gráficos, o vim tem facilidades incríveis. Uma delas é a auto-correção (abbreviation), que funciona como apelidos, por exemplo ":ab AMJ aurélio marinho jargas". Então sempre que eu estiver digitando um texto qualquer e digitar AMJ, o vim automaticamente o expandirá para meu nome completo.
Outra característica simples e eficiente é a definição de marcas ao longo do texto. Por exemplo, na linha em que começa a conclusão do texto, você faz uma marca de nome 'c' :mc, em que m é o comando de marcação e c é o nome da marca, que pode ser qualquer letra ou número.
De maneira similar, na introdução você pode fazer um mi e no meio do texto você faz um mm. Para pular para uma marca o comando é '. Então para ir para a marca 'c', da conclusão, basta um 'c.
Porém, como nós utilizamos o sinal ' para representar a crase, fica incômodo utilizá-lo como comando. A solução então é fazer um mapeamento de teclas, por exemplo mapear esse comando para a tecla de função F4: :map <f4> '. Pronto, agora para irmos para a marca 'c', basta digitar <f4>c.
Mais um exemplo, um mapeamento útil para inserir a data atual pegando a saída do comando do Linux chamado date, fica :map <f5> r!date<cr>. O "r!" joga para o arquivo a saída do comando date e o "cr" representa a tecla Enter.
Corretor ortográfico no Vi/Vim:
Lendo o guia de consulta rápida sobre o Editor Vi de Roberto Severo de A. Coelho, descobri que é possível fazer a correção ortográfica dentro do VIM.
O autor menciona que esse recurso só é válido para textos em língua inglesa, pois o processo invoca o comando spell do sistema operacional. Contudo é possível fazer a correção ortográfica em português.
Para isso basta instalar o ispell e o dicionário ibrasilian ou o aspell e o dicionário aspell-pt-br.
No Debian basta:
# apt-get install ispell ibrasilian
ou
# apt-get install aspell aspell-pt-br
Para utilizá-los dentro do vim basta executar os seguintes comandos:
:!ispell -d brasileiro %
ou
:!aspell -c %
Caso instale uma nova versão ou instale o dicionário iportuguese basta executar:
# select-default-ispell
e selecionar o dicionário desejado.
Eu prefiro o aspell como corretor ortográfico, já que ele possui uma interface bem intuitiva em ncurses.
Quando é finalizada a correção no documento, você tecla ENTER e em seguida aparece uma linha no rodapé com as opções [O]K e [L]OAD. Basta digitar L e dar o comando :q!.
O aspell cria um backup do documento original com a extensão .bak no diretório corrente.