vim com corretor ortográfico em pt_BR/es_ES/en_US

Introdução

O vim/vi pode ser desconsiderado por muitos como uma boa ferramenta de edição para textos, entretanto, vejo tantas possibilidades e recursos disponíveis nesta ferramenta, que hoje é o meu principal editor de textos — considerando que exitem editores e processadores de textos, tanto para programação quanto para outros documentos mais complexos, como dissertações e artigos.

E com a minha crescente utilização, surgiu a necessidade de um corretor ortográfico no vim/vi, que considera-se os idiomas português e inglês, os quais já vêm incluso nos processadores de texto mais utilizados, como MS-Office, OOffice e LibreOffice.

Então resolvi publicar a minha experiencia particular neste assunto, pois deve haver alguém com a mesma necessidade na comunidade.

Instalação

A comunidade BROffice, possui um projeto chamado VERO – acrônimo para VERificador Ortográfico em http://broffice.org/verortografico, e faremos uso da base de verbetes deste verificador, por estar sempre atualizada e em conformidade com o idioma oficial.

Neste tutorial far-se-á o uso da VERO versão 2.0.9 com acordo ortográfico e divisor de sílabas, para o idioma português, o dicionário padrão OOffice para o idioma Inglês Americano.

Para download do VERO, em sua versão mais recente, acesse a URL e http://broffice.org/verortografico/baixar; e para download do dicionário nos outros idiomas acesse a URL http://wiki.services.openoffice.org/wiki/Dictionaries ou http://linorg.usp.br/OpenOffice.org/contrib/dictionaries/.

Download

Download pt_BR – VERO v.3.2.0
http://pt-br.libreoffice.org/assets/Uploads/PT-BR-Documents/VERO/VeroptBRV320AOC.oxt Download pt_BR – VERO v.2.1.4
http://pt-br.libreoffice.org/assets/Uploads/PT-BR-Documents/VERO/VeroptBRV214AOC.oxt Download pt_BR – VERO v.2.0.9
wget http://broffice.org/files/Vero_pt_BR_V209AOC.oxt
Download es_ES
wget http://linorg.usp.br/OpenOffice.org/contrib/dictionaries/es_ES.zip
Download en_US
wget http://linorg.usp.br/OpenOffice.org/contrib/dictionaries/en_US.zip; ou
wget http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries/en_US.zip


Preparação

mkdir -p /tmp/vim_spell/{pt_BR,es_ES,en_US};
unzip -x Vero_pt_BR_V209AOC.oxt -d pt_BR/;
unzip -x es_ES.zip -d es_ES/;
unzip -x en_US.zip -d us_EN/


Após extraídos deverão estar contidos nos diretórios os seguintes arquivos:
pt_BR/:
  • description.xml
  • dictionaries.xcu
  • hyph_pt_BR.dic
  • META-INF
  • pt_BR.aff
  • pt_BR.dic
  • README_en.TXT
  • README_hyph_pt_BR.TXT
  • README_pt_BR.TXT
us_EN/:
  • en_US.aff
  • en_US.dic
  • README_en_US.txt
./es_ES:
  • Changelog_es_ES.txt
  • es_ES.aff
  • es_ES.dic README_es_ES.txt
Os arquivo a serem utilizados de fato, são os *.dic e *.aff.

Compilação

A compilação do dicionário é realizada pelo próprio vim/vi.

Para proceder a compilação é necessário estar no diretório onde foi descompactados os arquivos do dicionário.

Para o corretor ortográfico pt_BR:
  1. Passo:
    cd /tmp/vim_spell/pt_BR;
  2. Passo:
    vim;
  3. Passo:
    Dentro do vim, digite:
    :mkspell pt pt_BR
    Após a compilação será gerado o arquivo pt.utf-8.spl.


Para o corretor ortográfico es_ES:
  1. Passo:
    cd /tmp/vim_spell/es_ES;
  2. Passo:
    vim;
  3. Passo:
    Dentro do vim, digite:
    :mkspell es es_ES
    Após a compilação será gerado o arquivo es.utf-8.spl.


Para o corretor ortográfico en_US:
  1. Passo:
    cd /tmp/vim_spell/en_US;
  2. Passo:
    vim;
  3. Passo:
    Dentro do vim, digite:
    :mkspell en en_US
    Após a compilação será gerado o arquivo en.utf-8.spl.


Configuração

Assim como toda a configuração no Linux, o dicionário também pode ser configurado para todo o sistema ou para um usuário específico.

Configuração Sistemíca

Vale para todos os usuários que utilizam o vim no sistema operacional. Geralmente o dicionário de inglês já compõe a distribuição, não necessitando ser incluída neste momento.
find /tmp/vim_spell/ -name "*.spl" -exec cp -v {} /usr/share/vim/vim*/spell/ \;


Configuração por Usuário

Configuração indicada quando apenas um ou poucos usuários do sistemas necessitam do recurso.
mkdir -p ~/.vim/spell/;
find /tmp/vim_spell/ -name "*.spl" -exec cp -v {} ~/.vim/spell \;


Utilizando o Corretor Ortográfico

Para utilização do corretor ortográfico, deve-se informar explicitamente ao vim/vi para utiliza-lo e em qual idioma.

Para isto, execute o comando abaixo na interface do vim/vi:
ativar pt_BR:
:set spell spelllang=pt

ativar es_ES:
:set spell spelllang=es

ativar en_US:
:set spell spelllang=en
A desvantagem deste modo de utilização é a troca de idioma, que deve ser executada toda vez para cada idioma pretendido.

Habilitando a troca de idioma no corretor por script

Este script utiliza a tecla <F2> para alternar entre os idiomas, é bastante pratico no cotidiano, principalmente para quem necessita de desempenho no editor de textos.

No arquivo ~/.vimrc, acrescente o trecho abaixo, para alternar entre dois idiomas (pt_BR, todos, en_US e desligado):
##~/.vimrc 
set spell spelllang=pt

function! ToggleSpell()
    if &spell
        if &spelllang == "pt"
            set spelllang=pt,en
            echo "toggle spell" &spelllang
        elseif &spelllang == "pt,en"
            set spelllang=en
            echo "toggle spell" &spelllang
        else
            set spell!
            echo "toggle spell off"
        endif
    else
        set spelllang=pt
        set spell!
        echo "toogle spell" &spelllang
    endif
endfunction
map <F2> :call ToggleSpell()<CR>


No arquivo ~/.vimrc, acrescente o trecho abaixo, para alternar entre três idiomas (pt_BR, en_US, es_ES, todo e desligado):
set spell spelllang=pt

function! ToggleSpell()
    if &spell
        if &spelllang == "pt"
            set spelllang=en
            echo "toggle spell" &spelllang
        elseif &spelllang == "en"
            set spelllang=es
            echo "toggle spell" &spelllang
        elseif &spelllang == "es"
            set spelllang=pt,es,en
            echo "toggle spell" &spelllang
        else
            set spell!
            echo "toggle spell off"
        endif
    else
        set spelllang=pt
        set spell!
        echo "toogle spell" &spelllang
    endif
endfunction
map <F2> :call ToggleSpell()<CR>


No arquivo ~/.vimrc, acrescente o trecho abaixo, para alternar entre três idiomas (pt_BR, todos, en_US, es_ES, e desligado):
set spell spelllang=pt

function! ToggleSpell()
    if &spell
        if &spelllang == "pt"
            set spelllang=pt,es,en
            echo "toggle spell" &spelllang
        elseif &spelllang == "pt,es,en"
            set spelllang=en
            echo "toggle spell" &spelllang
        elseif &spelllang == "en"
            set spelllang=es
            echo "toggle spell" &spelllang
        else
            set spell!
            echo "toggle spell off"
        endif
    else
        set spelllang=pt
        set spell!
        echo "toogle spell" &spelllang
    endif
endfunction
map <F2> :call ToggleSpell()<CR>


Utilizando o corretor e atualizando o dicionário

No modo visual de comandos do vim/vi, posicione o cursor sobre a palavra marcada e execute algum dos comandos abaixo:
  • ]s — vai para a próxima palavra;
  • [s — vai para a palavra anterior;
  • z= — mostra a lista de sugestões para a palavra;
  • zg — adiciona a palavra sob o cursor no dicionário, assim ela não será mais marcada como errada;
  • zug — desfaz a última palavra adicionada;
  • zw — remove a palavra sob o cursor do dicionário, assim ela será marcada como errada;
  • zuw — desfaz a última palavra removida.


Backup e Restore das configurações

O corretor ortográfico do vim/vi permite adicionar as palavras personalizadas com a opção zg, as quais são adicionadas no arquivo ~/.vim/spell/[pt,es,en].utf-8.add, para manter toda a configuração e verbetes personalizados, faz-se necessário o backup de todas estas informações. Mas como realizar o backup do corretor e dicionário?

Realize o backup com os seguintes comandos:
cd ~;
tar uvf vim_bkp.tar .vim/spell/ .vimrc;


Realize o backup com os seguintes comandos:
tar xvf vim_bkp.tar -C ~/


Atualizado

20150601;

Referencias

http://broffice.org/verortografico
http://linorg.usp.br/OpenOffice.org/contrib/dictionaries/
http://wiki.services.openoffice.org/wiki/Dictionaries
http://misc.aspell.net/wiki/English_Dictionaries
http://wordlist.sourceforge.net/
http://ooo.mirrorbrain.org/contrib/dictionaries/en_US.zip.metalink

Comentários