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.

6 compiladores online para estudantes e profissionais de programação

Neste artigo, vou falar de alguns websites que oferecem a facilidade de compilar e rodar seu código, em variadas linguagens de programação — tais como, C, C++, Java, Python etc.
Desde que você tenha acesso à Internet, pode colocar o seu código à prova, de onde estiver.

Pode ser uma ótima solução para o caso de ter que usar um computador emprestado — no qual você não pode instalar o compilador ou interpretador que você precisa para estudar ou testar seu código.

Há vários sites, que podem ajudar na falta de um compilador ou, mesmo, de uma IDE adequada para você.
Neste post, vou citar 6 (os links abrem em nova janela/aba) que possuem múltiplas opções de compiladores de diferentes linguagens de programação.
Se você conhece outras soluções semelhantes, não deixe de compartilhar sua experiência com os outros leitores, nos comentários.

CodeChef IDE

screen shot codechef website
O CodeChef aceita código em mais de 35 linguagens.
Antes de tudo, é um site de competição para programadores. Você pode pegar um dos desafios da competição ou praticar nos diversos níveis disponíveis (beginner, easy, medium, hard, challenge e peer).
Seu editor de textos permite configurar a indentação e escolher entre mais de 30 temas (inclusive, com fundos escuros, para quem trabalha à noite).
Além disto, a IDE oferece recursos como atalhos de teclado — que facilitam enormemente quando o trabalho é grande.
Por exemplo, não precisa rolar a tela para baixo e clicar no botão “Run” para compilar e rodar o código. Nem precisa tirar a mão do teclado. As teclas ‘Ctrl + Enter’, fazem isto.
Há mais de 80 atalhos de teclado e isto, com certeza, é um bom motivo para usar o editor.
Link para ir direto para a IDE do CodeChef: https://www.codechef.com/ide.

CodePad

captura de tela codepad sobre o GNOME
Com um editor mais simplificado e uma quantidade limitada de linguagens suportadas (C/C++, D, Haskell, Lua, OCcami, PHP, Perl, Python, Ruby, Scheme e TCL), este vale pela simplicidade e eficiência — se a sua linguagem de trabalho/estudo estiver na lista, claro.
O CodePad não é uma IDE, mas um editor integrado ao compilador/interpretador.
É também uma ferramenta de colaboração (ou pastebin).
Ao escrever e executar seu código, o site gera um link para ele — e você o pode compartilhar fácil.

A função de compartilhamento, pastebin, gera um link específico para o site com o seu código, o que torna fácil mostrá-lo a outras pessoas.

Por curiosidade, o website foi desenvolvido em Python, com o uso de Pylons e SQLAlchemy.
Você o encontra aqui: http://codepad.org/

Ideone

captura de tela ideone
O Ideone, não chega a ser uma IDE (como o nome leva a crer). Trata-se de um compilador e ferramenta de debugging online.
Você pode escrever seu código no seu editor local (ou no próprio site). Em seguida, pode escolher entre mais de 60 linguagens de programação, para compilar e rodar seu trabalho.
Mesmo tendo aparência simples, possui syntax highlighting também e permite compartilhar fácil o seu código, como um pastebin.
Confira aqui: http://ideone.com/

OnlineCompiler

onlinecompiler web online compiler
Com opções de linguagens de programação limitadas a C/C++, FORTRAN, Java, Pascal e Basic, permite compilar e baixar o seu executável — para Windows ou Linux.
Confira aqui: http://www.onlinecompiler.net/.

Repl.it

captura de tela compilador online replit
Com suporte a 30 linguagens de programação, o Replit é um trabalho de uma equipe pequena, porém muito bem feito.
O Replit Classroom é uma ferramenta, dentro do site, voltada para professores. Com ela, se cria uma “sala de aula”, para ensinar programação para quantos estudantes se quiser.
O editor permite configuração da identação e de seu visual. Possui 2 opções de tema (clara/escura).
A função de compartilhamento de código tem a “burocracia” de pedir cadastro.
Confira o site aqui: https://repl.it/.

RemoteInterview

captura de tela remoteinterview
Com uma interface limpa, 2 opções de tema (clara/escura, também) e mais de 20 opções de linguagens de programação (entre as mais populares), o RemoteInterview tem a concepção de ser um site de “entrevista” para a contratação de programadores, onde o profissional pode mostrar seu conhecimento etc. Ele vai muito além disto, com certeza.
A interface é eficiente e tem opções de teclas de atalho, que simulam os editores Vim, Sublime e Emacs. Se você já estiver acostumado com um deles, este local pode ser de grande produtividade para você.
O RemoteInterview também tem a funcionalidade de pastebin, para compartilhar seu código em fóruns, chats, nas redes sociais etc.
Confira o site aqui: https://codepad.remoteinterview.io/.

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!.