Como incluir esquemas de cores no Vim

O Vim (ou Vi) é um dos editores mais completos e complexos que há.
Apesar de ser muito (muito, mesmo) leve, inclui possibilidades de adicionar recursos através de extensões ou pequenos ajustes.
Não esqueça de dar uma olhada na nossa thread sobre o Vim — tem muita coisa interessante lá.


Neste artigo, vou mostrar como baixar e incluir novos esquemas (temas) de cores para usar no Vim.
Vou começar explicando aonde os temas devem ser guardados (para o Vim conseguir achar) e como carregá-los.
Em seguida, vou passar alguns sites que conheço que têm temas legais para você baixar e, se quiser, alterar para ficar do seu gosto.

Aonde os esquemas do Vim são guardados

No Linux, as configurações e outros arquivos de ajustes são guardados dentro de uma pasta (escondida) no seu home ou ~/.
O nome da pasta (diretório) é .vim.
Os esquemas de cores são guardados em .vim/colors/
Para chegar lá, use o cd:


cd ~/.vim/colors

No meu caso (Debian 10), o diretório colors precisou ser criado e, portanto, não havia nada lá dentro ainda.

Onde baixar novos esquemas de cores para o Vim

Editor de textos vim
Esquema de cores Ekvoli.

Peguei minha relação de links nos sites do Vim Ninjas e outros. Veja as referências, ao final do artigo.

  1. GRB256 by Gary Bernhardt — https://github.com/garybernhardt/dotfiles/blob/master/.vim/colors/grb256.vim.
  2. Guardian by Miikka-Markus Leskinen — https://vim.sourceforge.io/scripts/script.php?script_id=1240.
  3. Distinguished by Kim Silkebækken — https://github.com/Lokaltog/vim-distinguished/tree/develop/colors.
  4. Github Vim by Anthony Carapetis — https://vim.sourceforge.io/scripts/script.php?script_id=2855.
  5. Jellybeans by nanotech — https://github.com/nanotech/jellybeans.vim/tree/master/colors.
  6. Railscasts by Ryan Bates — https://github.com/ryanb/dotfiles/tree/master/vim/colors.
  7. Twilight by Henning Hasemann — https://vim.sourceforge.io/scripts/script.php?script_id=1677.
  8. Vividchalk Tim Pope — https://github.com/tpope/vim-vividchalk/tree/master/colors.
  9. Candy by Takeshi Zeniya — https://vim.sourceforge.io/scripts/script.php?script_id=282.
  10. Solarized by Ethan Schoonover — https://github.com/altercation/vim-colors-solarized/tree/master/colors.
  11. Gruvbox by morhetz — https://github.com/morhetz/gruvbox/tree/master/colors.
  12. Ekvoli by Preben Randhol — https://vim.sourceforge.io/scripts/script.php?script_id=1681.
  13. Mango by goatslacker — https://vim.sourceforge.io/scripts/script.php?script_id=1681.
  14. Herald & Moria (já citado, acima) — https://h3rald.com/articles/herald-vim-color-scheme/.
  15. Badwolf & Goodwolf by sjl — https://github.com/sjl/badwolf/tree/master/colors.
  16. Molokai by tomasr — https://github.com/tomasr/molokai/tree/master/colors.
  17. Tomorrow by troeggla (em 5 variações) — https://github.com/chriskempson/tomorrow-theme/tree/master/vim/colors.

Baixe quantos quiser e grave-os dentro de .vim/colors/, como mencionado acima.
Vim Color schemes

Como aplicar um esquema de cores ao Vim

Logo após abrir o editor, no modo de comando, digite o comando :colorscheme seguido do nome do esquema desejado.
Segue um exemplo, com o esquema ‘autumnleaf.vim’

:colorscheme autumnleaf

Use a tecla Tab, para agilizar a digitação.


Encontrou algum erro ou tem algum tema para sugerir? Deixe-nos saber, nos comentários.

Referências

Dicas sobre o editor Vim: https://www.guru99.com/the-vi-editor.html.

Confira a coletânea do Chris Kempson: https://github.com/chriskempson/base16-vim/tree/master/colors.

Artigo sobre o assunto no Quora: https://www.quora.com/What-are-some-of-the-best-Vim-color-schemes.

Artigo do Veselin Todorov, no Vim Ninjas: www.vimninjas.com/2012/08/26/10-vim-color-schemes-you-need-to-own/.

Como sair do editor vim

Sair do editor Vim, embora seja fácil, parece ser uma tarefa ingrata para muitos usuários novatos.
Tenho alguns textos sobre como usar e configurar o vim e, recentemente, me surpreendi com a quantidade de pessoas que perguntam justamente como se faz para finalizar o editor.
A resposta curta é a que segue.
Comece por teclar ‘Esc’, para sair do modo de inserção do editor. Em seguida:

  • tecle :wq e ‘Enter’, para gravar (write) e sair (quit) ou
  • tecle :q! e ‘Enter’, para sair arbitrariamente do editor — ele sequer vai pedir confirmação.

Como sair do editor vim

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.


Seja como for, não entre em desespero.
O método, no vídeo abaixo, é totalmente inadequado para terminar o vim… ou qualquer outro programa.

Editor vi avançado

Neste texto, vamos abordar alguns comandos, recursos e técnicas para usar o editor de textos vi, de maneira mais avançada.
No texto Editor vi básico, mostramos uma série de comandos para iniciantes — incluindo 2 papéis de parede com a relação de comandos básicos do vi, para ajudar a memorizar.
vi text editor
Este post é voltado para usuários que desejam poupar tempo e escrever (código de programação ou outros textos) com mais eficiência — fazendo uso de recursos avançados, que o livram do trabalho repetitivo.

O vi é um editor de textos tradicional no UNIX/Linux. Foi muito popular, mas os termos da sua licença não eram 100% livres (até 2002).
Isto abriu caminho para vários editores compatíveis — como o nvi e o elvis. O Vim, é também um deles.
Em muitas distribuições Linux, ao digitar ‘vi’, o Vim é o que será executado.

Vamos ao que interessa! 😉

Como fazer busca de strings dentro do editor vi

Segue a lista de referência rápida, para encontrar strings dentro de um arquivo aberto no vi.
Funciona igual às páginas do manual do sistema (comando man) ou ao player de música cmus.

  • /   — faz a busca pela próxima ocorrência da string, no texto
  • ?   — faz a busca (pra trás) pela ocorrência anterior da string escolhida
  • /^   — faz a busca pela ocorrência da string em inícios de linha
  • /.   — faz a busca pela ocorrência de um único caractere
  • /*   — faz a busca por qualquer caractere presente após a string
  • /$   — faz a busca pela ocorrência da string em fins de linha
  • n   — move o cursor para a próxima ocorrência durante a busca
  • N   — move o cursor para a ocorrência anterior durante a busca

Como fazer busca e substituição de texto no vi

Para completar a lista, acima, veja como encontrar strings no texto e susbstituí-las:

  • :s/string-atual/string-nova   — encontra a string atual e substitui pela nova
  • :s/string-atual/string-nova/g   — encontra a string atual e substitui pela nova, em uma linha
  • :%s/string-atual/string-nova/g   — encontra a string atual e substitui pela nova, em um arquivo

Faça ajustes no vi, com o comando set

  • :set ic   — ignore case, ou seja, passa ignorar a caixa (se maiusculas ou minúsculas) dos caracteres, durante as buscas
  • :set number ou :set nu   — liga a exibição da numeração das linhas na tela
  • :set nonu   — desliga a exibição da numeração das linhas na tela
  • :set ai   — liga a autoindentação
  • :set noai   — desliga a autoindentação
  • :set list   — liga a exibição de caracteres invisíveis
  • :set nolist   — desliga a exibição de caracteres invisíveis
  • :set sw=n   — ajusta a largura do shift para o valor de n
  • :set wm=n   — ajusta a margem de palavra para o valor definido em n
  • :set ws   — ao encontrar o final do arquivo, recomeça a busca do começo
  • :set bf   — para descartar caracteres de controle do input
  • :set ro   — altera o modo de acesso do arquivo para “apenas leitura” (read only
  • :set showmatch   — liga exibição de pares de parênteses à medida em que forem digitados
  • :set noshowmatch   — desliga exibição de pares de parênteses à medida em que forem digitados
  • :set showmode   — exibe o modo do editor, na linha de status
  • :set noshowmode   — oculta o modo do editor.
  • :set term   — mostra o tipo de terminal
  • :set all   — mostra valores de todos os possíveis tamanhos

Mais comandos

  • J   — junta duas linhas
  • ~   — altera a caixa de um caractere
  • U   — restaura o estado de uma linha, desfazendo alterações
  • u   — defaz a última alteração
  • Ctrl + G   — exibe o nome do arquivo e status
  • :f   — exibe a posição atual do arquivo em %, nome do arquivo e o número total de arquivos
  • :f nome-do-arquivo   — renomeia o arquivo atual para nome-do-arquivo
  • :f nome-do-arquivo   — grava o conteúdo atual para nome-do-arquivo
  • :e nome-do-arquivo   — abre
  • :new nome-do-arquivo   — abre novo arquivo, com o nome dado
  • :n   — se tiver múltiplos arquivos abertos, este comando move para o próximo arquivo da fila
  • :p ou :N   — se tiver múltiplos arquivos abertos, um destes comandos para mover o foco para o anterior da fila
  • :r nome-do-arquivo   — lê e posiciona o conteúdo de nome-do-arquivo após a linha atual do cursor
  • :nr nome-do-arquivo   — lê e posiciona o conteúdo de nome-do-arquivo após a linha n
  • :cd nome-do-diretorio   — altera o diretório atual
  • G   — move o cursor para a última linha
  • nG ou :n   — move o cursor para a linha n

Referência

http://www.ctrlageeks.com/advanced-vi-editor/.

Introdução ao editor de textos vi

O vi é um editor de textos orientado à tela, ou screen-oriented, originalmente criado para uso no ambiente do sistema operacional UNIX.
vim logo
O nome “vi” é uma abreviação para “visual editor”
Atualmente, o Vim tem se tornado mais comum e presente em muitas distribuições Linux. Tudo o que falarmos, neste post, serve para ele também.

Editores visuais, também chamados de editores de tela cheia ou screen-oriented são programas que exibem o texto editado, na tela, à medida em que são alterados.
Todos os editores GUI se encaixam nesta categoria e, talvez, você não conheça nenhum outro tipo.
Entre os editores CLI, contudo, há a categoria baseada em linhas, ou line-oriented, que são muito pouco usados

Não esqueça de clicar nos links do texto, para se aprofundar mais em algum assunto e dar uma olhada na sessão de referências, ao final, para obter mais informações.

Modos de operação do vi

O vi pode se apresentar em 2 modos de operação:

  1. Modo de comando — em que se executam as tarefas administrativas: gravar arquivos, abrir novos arquivos, executar comandos relacionados aos arquivos, mover o cursor, cortar/copiar/colar texto, encontrar/substituir texto etc.
  2. modo de edição/texto — em que o usuário pode editar seu texto.

Como escrever um programa, usando o editor vi

Veja como abrir, escrever o código, gravar e sair do editor vi.
Neste exemplo, vou mostrar como escrever um pequeno programa em Python, mas você pode readequar cada passo do exemplo da maneira que lhe convier.
Comece por abrir um terminal.
A seguir abra o vi com um novo arquivo:

vi hello.py

O vi já abre no modo de comando — onde ainda não é possível inserir texto novo.
Para começar a inserir caracteres, tecle ‘i’.
Em seguida, pode digitar o código:

print "Ola, nerds!"

Para gravar, é preciso entrar no command mode. Para isto, tecle ‘Esc”.
Agora, tecle ‘:w’, para gravar seu teto
Para sair do editor, tecle ‘:q’, ainda dentro modo de comando.
Você pode também usar ‘:wq’, para gravar e sair.
Se cometer erros de digitação, durante a edição do arquivo, tecle ‘Esc’ para entrar no command mode.
Use as teclas direcionais, para se movimentar e ‘x’ para apagar caracteres sob o cursor.
Se quiser inserir caracteres, use o ‘i’.

Saiba mais

O vi não é complicado. Mas a gente precisa de um tempo para entender sua lógica e aprender seus comandos.
Com o tempo ele vai ficando mais fácil e editar arquivos de configuração, bem como escrever alguns scripts para a manutenção do sistema, vai se tornando cada vez mais natural.
Se quiser aprofundar o seu aprendizado no vi, não se esqueça de dar uma olhada nestes outros textos:

Referências

https://www.ccsf.edu/Pub/Fac/vi.html.
http://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxa400/bpxug135.htm.
https://en.wikipedia.org/wiki/Visual_editor.
http://www.learnpython.org/en/Hello,_World!.

Como forçar o realce de sintaxe no vim

O editor de texto vi ou vim costuma detectar automaticamente a sintaxe correta a ser realçada, em função da linguagem de programação usada.
Em inglês, este recurso é chamado de syntax highlighting.
O editor de textos, no caso, confia na extensão de cada arquivo, para determinar o syntax highlighting a ser usado.
Mas, se você estiver editando um arquivo com código em PHP, mas a extensão dele é diferente de ‘.php’, isto pode não permitir ao vim realçar adequadamente as palavras-chave, as strings, as variáveis etc.
Caso não esteja, o realce de sintaxe pode ser ativado, genericamente, com o comando:

:set syntax=on

Se você quiser um realce específico, então indique a linguagem:

:set syntax=python
:set syntax=perl

Para desligar, use ‘off’:

:set syntax=off

Onde encontrar as linguagens de programação suportadas

Você pode encontrar a relação de arquivos de configuração do realce de sintaxe, para as diversas linguagens de programação suportadas pelo vim (versão 7.x), no diretório /usr/share/vim/vim74/syntax/
Use o comando ‘ls’ para ver o conteúdo deste diretório.
diretorio de configuração do vim

Como resolver a sintaxe de 2 linguagens em um mesmo arquivo?

Programadores PHP, por exemplo, frequentemente precisam mixar HTML no meio do código.
Usualmente, o vim consegue resolver bem este tipo de situação.
Algumas vezes, contudo, ele “esquece” qual a linguagem do realce, em determinado ponto (PHP? HTML?) 😮
Neste caso, use o comando ‘Ctrl+L’ para refrescar a tela.
Se, ainda assim, o problema não se resolver, ajuste o parâmetro ‘php_minlines’ no arquivo de configuração .vimrc:

let php_minlines=500

O padrão costuma ser 100 linhas.

Referências

http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions.