24 de setembro de 2021

Do bit Ao Byte

Embarcados, Linux e programação

vim-addon-manager e .vimrc turbo!

vim-addon-manager

Para os amantes de linha de comando (que já não são muitos) e os amantes do editor vim (que são menos ainda), esse artigo deve lhe interessar. O .vimrc já é conhecido, mas não tão aplicado. Já o vim-addon-manager, que delícia!

Nesse breve artigo vamos instalar os plugins, um .vimrc “turbo” e ver alguns comandos práticos do vim que são pouco usados.

Instalando plugins para vim com vim-addon-manager

Existem montes de plugins, mas os que costumo usar são poucos. Normalmente uso quando fazendo acesso remoto aos meus Raspberry, porque faço por ssh. Também quando faço configurações em clientes, procedo da mesma maneira, principalmente por não demandar tanto da conexão com a Internet, que normalmente são lentas mundo afora.

Pesquise mais caso deseje conhecer outros plugins. Minhas recomendações para o vim-addon-manager são essas:

apt-get install vim vim-common vim-scripts vim-python-jedi vim-youcompleteme

Após instalar, dê uma conferida na lista de plugins disponíveis no vim-addon-manager do seu sistema:

vim-addons

Esse comando retornará uma lista dos plugins e seus status, dessa maneira:

vim-addon-manager

Para habilitar algum, use o comando:

vim-addon-manager install python-jedi

Esse addon faz autocomplete para código Python, na linha de comando! Além de install, posteriormente podemos remover, desabilitar ou reabilitar, com os parâmetros remove, disable e enable, respectivamente.

Após instalar o plugin, crie o arquivo e então salve-o. Abra-o mais uma vez e comece a digitar. Eis um exemplo:

vim-addon-manager

Nesse exemplo fiz o import do módulo os e após colocar um ponto, as opções apareceram. Então podemos navegar com as setas e o help de cada função é mostrado acima do código. Com Tab completamos a opção.

Tem análise de sintaxe para c++, outros plugins, tetris e mais um monte de coisas!

Instalando um .vimrc turbinado

Instalar um .vimrc é muito simples e se encontram aos montes em uma pesquisa no google. Talvez o que aconteça é que muita gente não conhece o recurso. Bem, já usei vários, mas pra hoje minha sugestão é essa:

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

Com isso o .vimrc já será baixado e instalado. Esse script de instalação já configura uma fonte pro vim também, deixando-o mais agradável de usar.

Esse script instala uma série de plugins, que podem ser conferidas no próprio repositório.

Comandos interessantes para usar com vim

Numerar linha

O vim pode numerar linha através do .vimrc, mas nem sempre é desejável a linha numerada. Para numerar linhas, use:

:set number <aperte enter>

O resultado será um arquivo numerado, como esse:

vim-addon-manager

Para desabilitar de maneira “limpa”, use:

:set nonumber

Comando externo sem sair do editor

Às vezes estamos editando, por exemplo, uma documentação e precisamos colocar o nome de um arquivo, mas esquecemos o nome correto. Invés de sair do editor para ver, podemos listar o diretório do arquivo sem sair do programa:

:!ls /home/usuario/Imagens

Isso listaria o diretório de imagens. Mas também podemos incluir algo externo dentro do nosso arquivo. por exemplo, quero incluir um calendário:

:r!cal
vim-addon-manager

Abas

Isso é velho pra caramba, mas não vejo muito as pessoas usarem também. Imagine que está conectado remotamente a um servidor por SSH. Não há opção de múltiplos terminais abertos simultaneamente e precisamos verificar um código, comparar arquivos ou algo do tipo. Bem, podemos fazer isso com o comando :tabnew. Para navegar entre as abas (que podem ser inúmeras), usamos :tabp e :tabn para previous e next, respectivamente. Se não houver modificações, podemos fechar a aba com :tabclose. Caso haja modificações, podemos salvar e sair com :wq ou :x.

Splits

Quando queremos comparar código, o ideal é que estejam lado a lado. Se tiver área de visualização suficientemente grande para esse conforto, então podemos usar o comando :split para dividir a tela em superior e inferior e :vsplit para divisão vertical. Para navegar entre os splits, usamos Ctrl+W+<seta direcional>, onde a seta apontará para a direção que desejamos ir. Isso significa que podemos ter múltiplos splits, verticais e horizontais simultaneamente!

Substituição

Aqui já começamos entrar em outro assunto, que envolve regex. Vou mostrar apenas um exemplo simples de substituição, mas podemos usar amplamente regex para manipular dados em um arquivo. Suponhamos que estamos editando um código que tem N ocorrências de uma variável chamada ojbeto. Copiamos e colamos o nome da variável por todo o arquivo, agora precisamos corrigir isso. Pra fazer tudo de uma vez, usamos:

:1,$s/ojbeto/objeto/g

As 3 barras indicam condição inicial, chave, substituição e condição final. No caso “da linha 1 até o final ($), substitua ‘ojbeto’ por ‘objeto’ em todo o arquivo (g)”. Dá pra fazer uma infinidade de coisas por comando, mas não vou escrever um livro nesse artigo, ainda mais que esse editor tem um público muito específico, normalmente administradores de sistema.

Enfim, a intenção era exclusivamente deixar algumas anotações a respeito, já que há tempos que não escrevo sobre minha especialidade, que é Linux.