Vim

From absortowiki

Revision as of 10:00, 18 August 2021 by Absorto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

OpenMoji-black 1F6A7.svg Esboços são artigos que ainda não receberam atenção substancial.
São artigos curtos ou pedaços insuficientes de informação e carecem de adição para aumentar a utilidade do artigo.


Vim

Vimlogo

Vim é um editor de texto baseado no editor Vi, criado por Bill Joy. Seu nome também tem inspiração nesse editor, sendo uma contração das palavras Vi e Improved. Seu autor, Bram Moolenaar, lançou a primeira versão do Vim em 1991. É possível utilizar o editor Vim na linha de comando e também com interface gráfica usando o GVim. Vim é software livre de código aberto e utiliza uma licença compatível com a Licença Pública Geral GNU, mas que adiciona a sugestão de que àquelas pessoas que utilizam o editor doem para uma entidade que ajuda crianças na Uganda.

Vim foi votado em 2006 como o editor mais popular entre usárias Linux[1] e considerado o quinto ambiente de desenvolvimento mais popular em 2019 [2]

Algumas das suas principais características são:

  • árvore persistente multi-niveis de desfazer ações
  • sistema de plugins extensível
  • suporte para centenas de linguagens de programação e formatos de arquivos
  • poderoso motor de busca e substituição
  • integra com muitas ferramentas

Lista de Comandos Úteis

Nome Comando Exemplo
Search and Replace :%s/Busca/Substituição/modificador :%s/Tired/Wired/g irá substituir todas as aparições de 'Tired' pela palavra 'Wired'. Use 'c' junto ao 'g' para que o Vim confirme antes de cada ação
Encontra par do colchete atual [{ e ]} ou % -
Máquina do Tempo :earlier {N}{u} ou :later {N}{u} Onde 'N' é uma porção de tempo e 'u' uma unidade de medida de tempo, 's', 'm', 'h' ou 'd' para segundos, minutos, horas e dias, respectivamente.
Rolagem - linha atual no topo da janela zt ou z<Enter> -
Rolagem - linha atual no centro da janela zz ou z. -
Rolagem - linha atual no topo da janela zb ou zl -
Rolagem - meia tela para a direita ou esquerda zH ou zL -
Salva e fechar todos os buffers abertos :wqa -
Fecha sem salvar todos os buffers abertos :qa -
Salva e fecha o buffer atual :wq ou ZZ -
Fecha sem salvar o buffer atual :w ou ZQ -


Compilando Vim Manualmente

As razões para compilar manualmente o Vim podem ser muitas, mas para mim a razão principal é ter suporte ao Python3.

É necessário checar qual o caminho e a versão da sua instalação Python, para isso basta listar o conteúdo da pasta /usr/lib/. No meu caso a versão de Python mais recente instalada no meu computador é a 3.9, por isso vou usar na configuração do vim durante a compilação o caminho /usr/lib/python3.9/config-*, adapte para a sua versão caso necessário.

$ sudo apt-get install -y python3-distutils python3-dev
$ git clone https://github.com/vim/vim.git
$ cd vim
$ ./configure --prefix=/usr/local --enable-python3interp --with-python3-config-dir=/usr/lib/python3.9/config-*
$ make
$ sudo make install

Muitos outros valores podem ser passados durante a configuração pré-compilação (no passo ./configure) dependendo da sua necessidade, alguns exemplos:

--with-compiledby
--with-features=huge
--enable-fontset 
--with-compiledby="Your-Name-Here"
--disable-gui
--without-x


Confirme que a sua versão do Vim foi compilada corretamente com suporte para Python3:

$ vim --version | grep python
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra
Vinculação: gcc -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lselinux -ldl -L/usr/lib/python3.9/config-* -lpython3.9

Plugins Úteis

  • Gerais
    • Vim Polyglot - Suporte para mais de 151 linguagens de markup e programação. Os pacotes são só carregados em contexto.
    • ALE
    • TagBar - Navegue pela árvore de tags do arquivo atual
    • VIm Commentary - Comente uma ou mais linhas de forma fácil, independente da linguagem do arquivo atual
    • VIm Surround - Altere fácilmente pares de colchetes, parenteses, chaves...
    • NerdTree - Navegue pelos seus diretórios de dentro do VIm
    • FZF
    • CtrlP
    • VIm Tmux Navigator - Aprimora a navegação em painéis do VIm dentro de uma sessão do Tmux
    • VIm Obsession - Melhor gerenciamento de sessões
    • Ack - Busca geral em todos os diretórios com alguns simples comandos
    • VIm Bbye - Permite fechar painéis abertos sem perder a formatação dos painéis
    • VIm EasyMotion - Para navegar ao redor do arquivo de forma ainda mais rápida e direta

Links