Como ativar o mouse no editor Vim

Ativar e usar as funções básicas de um mouse, dentro do editor Vim é bastante fácil.
É possível ativar o dispositivo para a sessão atual ou incluir o parâmetro de ativação no arquivo de configuração, para mantê-lo ativo permanentemente.

Ok. Usar o mouse no editor Vim pode parecer um contrassenso – e realmente é.
O editor foi concebido por pessoas que se deram conta de que usar o mouse durante o trabalho de escrever é extremamente contraproducente.

Mas, se você precisa, é muito fácil ajeitar isto.
Dentro do Vim, tecle ESC para ir para a linha de comando e rode


:mouse=a

Para desativar o dispositivo, dentro do Vim, execute:


:mouse=""

Para desativar o mouse apenas no modo comando, use ‘-=c’:


:mouse-=c

Foi difícil?! 😉
Para quem usa o GVim algumas outras opções de ajuste do mouse.

Como organizar as janelas dentro do editor Vim

As janelas, dentro da sessão do Vim, podem ser reorganizadas para fornecer uma visão melhor da área de trabalho.
Podem ser usadas combinações de teclas de atalho para rodar ou mudar a posição de uma janela, dentro do editor.

Se quiser obter mais informações sobre como trabalhar com múltiplas janelas dentro do Vim, sugiro ler este post.

Todos os comandos de janelas começam com a combinação Ctrl + W, seguida da combinação/tecla de comando específica.
Segue a primeira relação de teclas básicas:

  • Ctrl + w, r — Mantenha a tecla Ctrl pressionada, seguido das teclas W e R.
    Este comando é cíclico. Ou seja, move a janela atual para a direita e, quando chegar ao final, volta à posição inicial.
    Há diferença de comportamento entre ‘r’ e ‘R’: A primeira move o elemento para a direita e a outra faz o contrário.
  • Ctrl + w, x — troca janelas vizinhas de lugar (uma com a outra).

Se não houver janela ao lado, para participar da interação, o comando é inócuo (não faz nada).
Múltiplas janelas abertas dentro da sessão do Vim

Tal como muitos outros comandos no Vim, é possível especificar um número de janela para participar da ação.
Para isto, tecle um número antes do comando. Por exemplo: 3, Ctrl + w, x.

Mais comandos para mover janelas dentro do Vim

Há outros comandos para mover e alterar os layouts das janelas no Vim.
Na lista, que segue, vou usar o símbolo ^ para indicar o uso da tecla Ctrl. Assim, fica mais fácil escrever e entender (acho).
Fique atento(a) à caixa das teclas:

  • ^WK — Move a janela selecionada (atual) para o topo da tela, usando toda a largura da tela do terminal.
  • ^WJ — Reposiciona a janela atual para baixo de todas as outras, usando toda a largura do terminal.
  • ^WH — Move a janela selecionada para a esquerda de todas as outras janelas e amplia sua altura.
  • ^WL — Faz o contrário do comando anterior — ou seja, reposiciona a janela atual à direita das outras e também amplia totalmente a sua altura.
  • ^WT — Este comando abre uma nova aba (se já não houver alguma), na sessão atual do Vim, e move a janela atual para lá.

Para mim funciona assim: pressiono ^W e, em seguida, a tecla K (em maiúsculas).
Pratique bastante e anote os comandos em algum lugar para poder usar como referência rápida.

Como fechar as janelas do editor Vim

Há 3 comandos simples para fechar as janelas abertas dentro da sessão.
Segue a lista:

  • ^Wq — ou, ainda, ^WQ ou :quit (na linha de comando). Encerra a sessão.
  • ^Wc — ou, ainda, :close. Fecha a janela atual
  • ^Wo — Fecha todas as outras janelas e deixa apenas a atual aberta. Também é possível usar :only, para fechar a janela no modo comando.

Palavras finais

Se você estiver executando o Vim dentro de um emulador de terminal, na GUI do Linux, leve em conta que este é o primeiro a capturar as entradas do teclado.
Isto quer dizer que, se houver algum atalho de teclado coincidente entre o aplicativo emulador de terminal e o app executado dentro dele, vai valer o significado que a combinação de teclas tiver para o emulador.
Em outras palavras, o GNOME-terminal (para citar um exemplo), tem prioridade de captura dos comandos de teclado.
Se você tiver conflitos relacionados a isto, pode ser mais fácil alterar, nas preferências do aplicativo emulador de terminal, os atalhos de teclado que ele usa.

Como abrir múltiplas janelas no editor Vim

O padrão do Vim é abrir apenas uma janela para o arquivo que você irá editar.
Contudo, se houver necessidade, é possível abrir várias janelas, dentro de uma única sessão do editor, cada qual com o conteúdo de um arquivo.

Neste post vou mostrar como realizar as seguintes tarefas:

  1. Abrir o Vim, já com múltiplas janelas abertas, cada qual com um arquivo.
  2. Dentro de uma sessão do Vim, abrir novas janelas para abrigar novos arquivos dentro.
  3. Se mover entre as janelas.

Veja alguns exemplos de que trabalhar com múltiplas janelas pode facilitar sua vida:

  1. Com este recurso, é fácil aplicar a mesma formatação de um arquivo em vários outros, pois ele permite observar o modelo na mesma tela.
  2. Copiar e colar (inclusive através do mouse/touchpad) texto entre múltiplos arquivos.
  3. Manter um arquivo visível, para referência, enquanto trabalha em outro.
  4. Fazer comparações entre arquivos.

Isto posto, vamos ao que interessa!

Como iniciar o Vim com múltiplas janelas abertas, cada qual com um arquivo

Você pode enfileirar arquivos, na linha de comando, para cada um abrir em uma janela própria, dentro do Vim, com o uso da opção ‘-o’
segue um exemplo:


vim -o arquivo1.txt arquivo2.txt

O comando, acima, irá abrir uma sessão do Vim com uma janela ocupada por “arquivo1.txt” e outra por “arquivo2.txt”.
Se um dos arquivos não existir, o Vim irá criar um em branco com o nome dado.

Como comportamento padrão, o Vim abre os arquivos organizados horizontalmente, um sobre o outro.
vim multiplas janelas

É possível determinar também exatamente quantas janelas serão abertas, indicando um número para a opção ‘-o’:


vim -o3 arquivo1.txt arquivo2.txt

Neste caso, a terceira janela será aberta com um arquivo em branco (esperando conteúdo).

Como ajustar os tamanhos das janelas

Você pode alterar a altura da janela atual com o comando :set winheight=x, em que ‘x’ é o valor referente às linhas de altura que a janela passará a ter.
Quando você altera a geometria de uma janela, o Vim, muda a das outras janelas automaticamente.
Em um ambiente com janelas dispostas lado a lado, é possível editar a largura com o comando :set winwidth=x.

Como abrir novas janelas dentro de uma sessão do Vim

Use o comando :split para dividir a janela atual.
A nova janela será uma cópia da atual — ou seja, tudo o que você escrever em uma, será atualizado na outra.
Apenas experimente.
vim split window

E, se eu quiser que a nova janela fique ao lado da atual?
Para posicionar a nova janela (clone) do lado direito da atual, use o comando :vpslit (vertical split ou divisão vertical).
Vim vertical split

Se você quiser editar um arquivo na nova janela, indique o nome dele ao lado do comando split. Por exemplo:


:vsplit hello.c

As opções do comando :split no Vim

Os comandos – :split e :vsplit – aceitam algumas opções e parâmetros.
Basicamente a sintaxe é a seguinte:

:[n]split [++opt] [+cmd] [nome-do-arquivo]

… em que:

  • n — estabelece a quantidade de linhas (altura) da nova janela, posicionada no topo.
  • opt — passa opções para o comando split, que precisam ser precedidos pelos sinais ++.
  • cmd — precedido por um único sinal +, passa um comando a ser executado em relação à nova janela.
  • nome-do-arquivo — especifica o nome do arquivo a ser editado dentro da nova janela.

Veja outro exemplo:


:vsplit ++fileformat=unix hello.c

Abre uma janela ao lado, usando o formato UNIX de edição e dentro dela o arquivo hello.c.

Você também pode usar os comandos :new e :vnew para abrir novas janelas horizontais e verticais, respectivamente.
Os comandos ‘new’ aceitam os mesmos parâmetros dos ‘split’.

Para abrir uma nova janela com um arquivo dentro, no modo read only (somente leitura), use o comando :sview nome-do-arquivo.

Para fechar a janela atual, use o mesmo comando que usa para fechar um arquivo. Por exemplo, :q! (sair sem gravar) ou :wq (gravar e sair).

Atalhos de teclado para dividir e criar novas janelas

Você também pode criar/fechar janelas através de atalhos de teclado, usando a tecla Ctrl (^).
Os atalhos de teclado do Vim, para comandos relacionados às janelas (windows) começam com ‘W’.
Veja alguns:

  • Ctrl + W + S — divide a janela atual. Por padrão, a nova janela clona a atual.
  • Ctrl + W + N — Cria uma nova janela dentro da sessão atual, com um arquivo novo e sem nome.
  • Ctrl + W + V — Faz um split vertical

Vale ressaltar que Ctrl + Shift + W é usado para fechar a janela do GNOME-Terminal.
Como o terminal tem prioridade, ele irá capturar esta sequência, antes do programa que está sendo executado dentro dele.
gnome terminal atalhos

Se você isto estiver causando problemas para você, é mais fácil alterar o atalho de teclado do GNOM-Terminal.

Como se mover entre as janelas abertas dentro do Vim

As principais teclas de movimentação dentro das janelas obedecem a 2 princípios básicos (que você já deve conhecer...):

  1. Como se referem a janelas (windows), elas começam com o 'Ctrl + W' — tal como mencionei antes.
  2. Usam as teclas de movimentação padrão do Vim.

Segue a relação dos atalhos de teclado para "pular" entre janelas no Vim:

  • CTRL + W + ↓, CTRL + W + J — Move o cursor para a próxima janela abaixo. Note que o comando não é cíclico, ou seja, quando chegar à última janela, embaixo, ele para de ter efeito.
  • CTRL + W + ↑, CTRL + W + K — Move para a janela de cima.
  • CTRL + W + ←, CTRL + W + H — Move para a janela à esquerda.
  • CTRL + W + →, CTRL + W + L — Move para a janela à direita.
  • CTRL + W + W — Move o cursor para a próxima janela, ao lado ou embaixo. Já este comando é cíclico, ou seja, ele não para e recomeça após chegar à última janela, voltando para a primeira, que estava selecionada, quando você começou.
  • CTRL + W + T — Move o cursor direto para a janela mais próxima do canto superior esquerdo (topo).
  • CTRL + W + B — Move o cursor direto para a janela mais próxima do canto inferior direito.
  • CTRL + W + P — Move o cursor para a janela previamente acessada.

Tenha em mente que você precisa estar no modo comando, para poder se mover entre as janelas com estas teclas.

instale e gerencie extensões e plugins para Vim com o vim-addons

A ferramenta vim-addons facilita a instalação e configuração de plugins para o editor de textos Vim.
A sua distro Linux provavelmente tem um repositório abarrotado de extensões para o Vim.
Como não é tarefa do gestor de pacotes se envolver nos meandros de um software e configurar seus add-ons, o vim-addon pode ser necessário.

Para contextualizar, este post foi escrito no Debian 10 testing (de codinome “Buster”). Portanto, adeque os comandos dados à sua distro favorita.

Não esqueça de ler (e compartilhar) meus outros posts sobre o editor de textos Vim.
Mantido pelo grupo Vim Maintainers, o pacote vim-addons-manager se propõe a gerenciar extensões para o editor — ele instala e, quando necessário, ajusta o arquivo de configuração em ~/.vim/
Use o seu gestor de pacotes para instalá-lo:


sudo apt install vim-addon-manager

O utilitário permite listar os addons eventualmente já instalados no seu sistema.
Também é possível remover o que você “não gosta mais”.

O vim-addon-manager ou vim-addons deve ser executado fora do Vim, na shell.

As limitações do VAM

O Vim Addon Manager (VAM) foi concebido para instalar plugins empacotados no padrão Debian (.deb).
Em outras palavras, a intenção é gerenciar apenas as extensões distribuídas em pacotes debian — usualmente, no repositório.
Isto limita (e muito) a quantidade possível de extensões instaláveis, mas garante maior segurança e estabilidade para os usuários.

Como listar as extensões atuais do Vim

Use o comando list, para obter uma relação das extensões/plugins presentes na sua instalação Vim:


vim-addons list

editexisting
espeak
justify
matchit

A lista, acima, mostra os itens disponíveis no sistema. Eles não estão, necessariamente ativos.
No meu caso, estes itens estão todos com o estado “removido”.
Para saber disso, use o comando status:


vim-addons status 

# Name                     User Status  System Status 
editexisting                removed       removed       
espeak                      removed       removed       
justify                     removed       removed       
matchit                     removed       removed

Para obter mais informações sobre algum item da lista, use o comando show:


vim-addons show espeak

Addon: espeak
Status: removed
Description: habilita realce de sintaxe (syntax highlighting) para o eSpeak e arquivos de dados texto-para-fala do eSpeak NG (dicionários, etc.)
Files:
 - ftdetect/espeakfiletype.vim
 - syntax/espeaklist.vim
 - syntax/espeakrules.vim

Como encontrar mais pacotes de plugins no repositório do Debian

Para encontrar, instalar e ativar plugins, siga o passo a passo:

  1. use o comando apt search com o comando grep, para encontrar possíveis plugins para o seu sistema:
    
    apt search vim | grep -B1 -i plugin
    
  2. instale o pacote do plugin, como qualquer outro pacote Debian. Segue um exemplo:
    
    sudo apt install vim-python-jedi
    

    Depois de instalado, o novo plugin já pode ser visto na relação do VAM:

    
    vim-addons
    
    # Name                     User Status  System Status 
    editexisting                removed       removed       
    espeak                      removed       removed       
    justify                     removed       removed       
    matchit                     removed       removed       
    python-jedi                 removed       removed
    

    Agora é possível obter informações sobre a nova extensão:

    
    vim-addons show python-jedi
    

    Addon: python-jedi
    Status: removed
    Description: autocompletion tool for Python
    Files:
    - after/ftplugin/python/jedi.vim
    - after/syntax/python.vim
    - autoload/jedi.vim
    - autoload/health/jedi.vim
    - doc/jedi-vim.txt
    - ftplugin/python/jedi.vim
    - plugin/jedi.vim
    - pythonx/jedi_vim.py
    - pythonx/jedi_vim_debug.py

  3. Por fim, instale e ative o plugin. Siga os exemplos, abaixo.
    Para instalar o python-jedi:

    
    vim-addons install python-jedi
    
    Info: installing removed addon 'python-jedi' to /hem/justincase/.vim
    Info: Rebuilding tags since documentation has been modified ...
    Processing /hem/justincase/.vim/doc/
    Info: done.
    

    Para obter informações específicas sobre a extensão:

    
    vim-addons status python-jedi 
    
    # Name                     User Status  System Status 
    python-jedi                 installed     removed
    

    De acordo com a informação, acima, a extensão python-jedi já instalada. Basta rodar o Vim, para vê-la funcionando.

Como remover os plugins

Se quiser remover um dos plugins instalados, use a opção remove do vim-addons:


vim-addons remove python-jedi

Se você remover apenas o pacote vim-addon-manager, os plugins instalados através dele, permanecerão.

Referẽncias

A quantidade de opções de extensões é muito pequena, para ser instalada pelo vim-addon-manager.
há outras opções de instalação facilitada de plugins para Vim, que procuram direto no GIT e te poupam de ter que passar primeiro pelo repositório da sua distro.

https://vi.stackexchange.com/questions/7266/when-should-i-use-vim-addon-manager-instead-of-a-regular-package-manager.

https://vi.stackexchange.com/questions/7249/using-vim-addon-manager.

3 editores de código para Debian e Ubuntu

O Linux é uma plataforma valiosa para desenvolvedores(as). É estável e cresceu pelas mãos de programadores.
A concepção inicial era ser um sistema operacional feito por e para desenvolvedores, mas o projeto acabou crescendo muito além disso.

O GNU/Linux, hoje, é para todos.
É possível afirmar que apenas alguns nichos de usuários é que não irão encontrar utilidade para o sistema operacional do pinguim (sorte que não sou um deles) 😉

Programadores(as), dispõem de um enorme “manancial” de ferramentas e documentação, dentro da plataforma GNU/Linux.
Parte já vem instalada por padrão.
Outra parte pode ser baixada dos repositórios da sua distro (ou seja, a lojinha de apps).
Debian Ubuntu Instalar programas

Este post, tem algumas limitações — ou a lista ficaria insanamente grande.
Só vale editores gráficos (GUI) e que estejam presentes na lista do aplicativo Programas (Debian/GNOME).
Por exemplo, o Kate é tão bom quanto o Gedit, para editar código — mas é voltado ao KDE.
Nada impede que o usuário instale software para KDE no GNOME, mas isto vai contra algumas regras básicas de uso do Linux

Se você percebeu que deixei algum software de fora, por favor, use a sessão de comentários para avisar.

O Gedit

Este é um dos itens padrão de qualquer instalação que usa o desktop GNOME — ou seja, é pré-instalado.
O editor tem suporte a dezenas de linguagens de programação.gedit editor

Conta com suporte a syntax highlighting e vários outros recursos, via plugins.
Abaixo, painel para alterar o tema visual do editor.
temas do Gedit

GVim

Derivado do Vim, editor de textos CLI, esta versão mantém todos os atalhos de teclado e comandos do original e adiciona a possibilidade de realizar as tarefas pela GUI, com o mouse, claro.
gvim editor

Podemos dizer que o Vim é algo muito poderoso na CLI, mas isto seria verdade também na sua versão gráfica?
Eu acredito que traz todas as suas vantagens para o ambiente gráfico, sim. Mesmo sendo um ávido usuário do editor na CLI, também gosto do conforto de usar o conceito de “apontar e clicar” no meu editor favorito, de vez em quando.

Outra vantagem do editor é que você pode levar e usar toda a sua base de conhecimento no Vi e Vim.

Pluma

Este seria o editor padrão do Ubuntu MATE, assim como o Kate e o Kwrite são do KDE e o Gedit do GNOME.
Não recomendo usar editores de outros ambientes desktop apenas pelo princípio de manter o sistema enxuto.
Ao instalar programas do KDE, em um ambiente GNOME, várias novas bibliotecas (QT, por exemplo) são acrescentadas ao sistema, que ficará “inchado” apenas para satisfazer aquele programa novo.
editor texto pluma

O Pluma irá acrescentar, além do pacote do editor, em si, o mate-dekstop (393 Kb) e o próprio Pluma (12.8 MB).
Neste caso, o pacote adicional do Mate, representa apenas uma pequena fração do carro-chefe.
Vale a pena experimentá-lo, portanto.

O que ficou de fora

Eu fiz um esforço para não incluir editores mais avançados, como o Geany e o Aptana (entre outros).
Estes programas são IDEs (Ambientes de Desenvolvimento Integrado) e, portanto, não são “apenas editores de texto”.

Tem outras sugestões de editores, que não abordei neste post?
Então, comente sobre isso 😉