Mostrando postagens com marcador vim. Mostrar todas as postagens
Mostrando postagens com marcador vim. Mostrar todas as postagens

1 de outubro de 2010

Minimal Vim - Estética

Quem diz que desenvolvedores não se importam com o visual das aplicações está muito enganado. Eu não quero ficar olhando para um editor feio enquanto trabalho e acho que você também não. Ainda bem que o Vim tem um visual minimalista muito bonito.

Atualmente eu estou usando o tema Molokai, mas existem outros que também deixam o editor muito bem esteticamente. Além do Molokai os temas Ir_black e Mustang me agradam bastante. Todos usam um background escuro que cansa menos a vista.

Para carregar um tema sempre que o Vim iniciar adicione a seguinte linha ao .vimrc:

colorscheme molokai

Nesse caso o tema molokai é carregado, para usar outro tema mude o nome molokai para o do tema desejado.

Para ativar o syntax highlight adicione ao .vimrc:

syntax on

O Vim irá colorir todos os arquivos adequadamente usando o tema de cores que você escolheu. O editor suporta uma grande quantidade de tipos de arquivos, dificilmente você ficará sem cores ao abrir algum arquivo de código fonte.

Uma modificação que raramente eu vejo em tutoriais pela Internet para melhorar o visual do Vim é aumentar um pouco o espaçamento entre as linhas. Para isso adicione ao .vimrc:

set linespace=3

Você pode tentar outros valores diferentes de 3 para ver o que mais agrada.

No post minhas configurações eu mostrei como esconder o menu e o toolbar do GVim. Vou repetir aqui o que deve ser adicionado ao .vimrc para diminuir a poluição visual do editor:

set guioptions-=m
set guioptions-=T

A primeira linha esconde o menu e a segunda a toolbar.

Com essas configurações o Vim além de funcional ficará bonito, mais bonito que muito editor considerado user-friendly.

Screenshot do meu vim:


24 de setembro de 2010

Minimal Vim - Pathogen, organizando os plugins

Os scripts instalados no Vim ficam todos num mesmo diretório, no Linux o ~/.vim ou no Windows o c:/vimfiles. Dentro dele os scripts são separados de acordo com o seu tipo. Existe uma pasta para scripts que definem a sintaxe de uma linguagem, outra pasta para plugins que cuidam de funcionalidades de um determinado tipo de arquivo, etc.

Essa organização parece boa, mas muitos plugins espalham seus arquivos por vários desses diretórios. Em pouco tempo, ao instalar diversos plugins, a maior bagunça é criada.

Também não é muito prático atualizar os seus plugins. Hoje é comum encontrar scripts do Vim no github, não seria muito bom poder baixar o repositório e atualizar seus scripts pelo git?

Pensando nesses problemas foi criado o Pathogen, ele melhora o gerenciamento dos plugins e facilita a atualização e integração com repositórios. 

Faça o download do pathogen aqui: http://www.vim.org/scripts/script.php?script_id=2332

Para instalar coloque o arquivo na pasta autoload dentro de ~/.vim.

Também é necessário editar o .vimrc. Coloque as seguintes linhas no início do arquivo de configurações:

filetype off
call pathogen#runtime_append_all_bundles()

A primeira linha é necessária para fazer o pathogen funcionar corretamente em algumas distribuições. A segunda carrega os scripts usando o pathogen.

Os plugins agora devem ficar cada um na sua pasta, eles não se misturam mais. Crie um diretório bundle dentro de ~/.vim e para cada plugin você deve criar uma pasta dentro de bundle, por exemplo, para o plugin Command-T crie uma pasta commandt dentro de bundle e coloque todos os seus arquivos dentro.

Você agora pode baixar código de repositórios para dentro da pasta bundle, assim é possível atualizar os plugins com apenas um comando de acordo com o controle de versão que estiver sendo usado.

Apagar um plugin também fica mais simples, basta deletar sua pasta dentro de bundle. Você não precisa mais procurar todos os arquivos que estariam espalhados pelas diversas pastas do ~/.vim.

Se você tinha muitos plugins instalados sem o uso do pathogen vale a pena gastar um tempinho para organizá-los, fica muito mais fácil gerenciar tudo com o pathogen.


Veja outros posts da série Minimal Vim:

17 de setembro de 2010

Minimal Vim - Localizar e substituir

A busca do Vim é excelente. Ele possui uma das melhores pesquisas incrementais que eu já usei e operar a busca apenas pelo teclado torna tudo ainda mais rápido. Por isso, dessa vez, não vamos usar nenhum plugin externo, apenas comandos nativos.

Antes de começar a ensinar como usar a busca do Vim vamos adicionar algumas configurações importantes ao .vimrc:

set incsearch
set hlsearch

A primeira linha ativa a busca incremental e a segunda ativa o destaque dos resultados da pesquisa, ou seja, todas as ocorrências da busca ficam marcadas com outra cor.

Para iniciar uma busca, no modo normal, pressione / e comece a digitar. Você já pode ver o resultado enquanto digita, afinal essa é uma pesquisa incremental. Para finalizar a busca pressione Enter.

A navegação pelos resultados é feita usando os atalhos n para ir para o próximo resultado e N (shift-n) para ir para o resultado anterior.

Um atalho bastante útil é o *, colocando o cursor sobre uma palavra e pressionando essa tecla no modo normal o Vim procurará ocorrências dessa palavra.

A substituição do Vim é muito poderosa, assim como todo o editor ela é um verdadeiro canivete suiço. Aqui vamos aprender o suficiente para a maioria dos casos, não é muito útil aprender mais meia dúzia de opções que raramente você utilizará, para isso temos ótimas referências espalhadas pela Internet ou até mesmo o help do Vim. Minha intenção nunca foi fazer um guia completo, a série Minimal Vim funciona como um filtro trazendo o mínimo de comandos para a maioria das tarefas, meu objetivo é fazer o Vim caber na sua cabeça.

A substituição no Vim é feita usando o comando s. Vejamos um exemplo com o caso mais usado para substituições:

:%s/original/modificada/gc

Vamos analisar cada parte do comando.

  • % define que a substituição será feita no arquivo todo.
  • s (substitute) é o comando de substituição.
  • /original após a primeira "/" fica o texto original que será substituído.
  • /modificada após a segunda "/" temos o texto que substituirá o original.
  • g (global) define que todas as ocorrências, não apenas a primeira de cada linha, serão substituídas.
  • c (confirm) o Vim perguntará se você deseja substituir cada ocorrência, sem essa opção todas as substituições são feitas automaticamente.


Quando o Vim pede a confirmação de uma substituição várias opções aparecem, são elas: y, n, a, q, l, ^E e ^Y. As mais importantes são:

  • y (yes) confirma a substituição.
  • n (no) pula a ocorrência atual e não substitui.
  • a (all) substitui todas as ocorrências.
  • q (quit) cancela a substituição.


Os comandos são bem intuitivos.

Isso é o essencial de pesquisa e substituição, eu raramente preciso usar algo mais complexo. Se você quiser aprender mais sobre esse assunto eu aconselho o Vimbook, mas use-o apenas como referência ou se você já for um usuário avançado, ler um livro tão grande para começar a usar o editor não é uma boa ideia.


Veja outros posts da série Minimal Vim:


10 de setembro de 2010

Minimal Vim - Alternando entre buffers

O Vim separa diferentes documentos abertos em buffers. A primeira vista quando você abre um novo documento ele parece sobrescrever o arquivo anterior, mas na verdade foi criado um outro buffer e o arquivo que você estava editando anteriormente continua aberto. Não existe nenhuma indicação clara que mais de um arquivo está aberto, isso pode parecer ruim, mas a interface limpa sem abas ou barras laterais acaba sendo algo positivo.

Procurando a melhor solução para alternar entre os buffers eu primeiro testei os comandos nativos do Vim. Existem vários, algumas configurações no .vimrc talvez os tornassem mais práticos, mas o fato de existirem diferentes comandos para listar e abrir os buffers me fez procurar alguns plugins que facilitassem essa tarefa.

O popular plugin BufExplorer foi a melhor solução que eu encontrei. Ele é fácil de usar e não acrescenta nenhuma poluição visual a interface. O Vim continua limpo como ele deve ser.

Faça o download do BufExplorer aqui: http://www.vim.org/scripts/script.php?script_id=42

Para instalar apenas extraia o arquivo no ~/.vim, se você estiver no Linux, ou c:/vimfiles, se você for usuário do Windows.

O comando para acessar o BufExplorer é o :BufExplorer, mas não é prático digitar isso toda vez que for necessário mudar para outro arquivo. Vamos criar um atalho no .vimrc, ctrl+b abrirá o BufExplorer:

nnoremap <c-b> :<c-u>BufExplorer<cr>

O BufExplorer toma toda a tela com a lista dos buffers abertos. Seu uso é muito simples. Para mudar para um arquivo basta colocar o cursor na sua linha e pressionar enter. Grande parte do uso do do BufExplorer se resume a pressionar ctrl+b, usar as setas para cima e para baixo para escolher o buffer e pressionar enter. Para fechar um buffer pressione d e para sair do BufExplorer use a tecla q.

Existe ainda um atalho padrão do Vim que eu uso bastante, o ctrl+6. Ele alterna para o último buffer editado. É uma funcionalidade simples que pode ser usada para alternar rapidamente entre dois arquivos.

Experimente os atalhos aos poucos, mesmo com o meu esforço para reduzir o número de comandos necessários para usar o Vim, apenas a prática vai fazer o uso do editor ser natural. Continuem acompanhando a série Minimal Vim, pratiquem e adaptem o que foi aprendido às suas necessidades.

Veja outros posts da série Minimal Vim:


3 de setembro de 2010

Minimal Vim - Copiar, colar e recortar

Eu poderia reduzir as operações de copiar, colar e recortar aos conhecidos ctrl+c, ctrl+v e ctrl+x usados em praticamente todas as aplicações que conhecemos, mas os atalhos diferentes do Vim, nesse caso, ajudam bem mais que as simples operações que estamos acostumados.

Para selecionar um texto no Vim você precisa entrar no modo Visual, pressione v no modo normal, depois basta apenas movimentar o cursor para selecionar o que deseja. Você também pode usar shift+v para selecionar uma linha inteira.

Com o texto selecionado você pode copiar ou recortar a seleção. A tecla y de yank é usada para copiar o texto e a tecla d de deletar para apagar o que estiver selecionado. Não existe exatamente uma opção para recortar, entretanto ao deletar qualquer texto com o atalho d ele fica disponível para ser colado, então ele funciona como a conhecida operação de recortar. Para colar, o atalho é p de paste, o texto é colado imediatamente após o cursor. Esse comportamento é um pouco diferente dos editores comuns, pois no Vim o cursor fica em cima da letra e não antes ou depois de um caracter.

No Vim é possível copiar e recortar uma ou várias linhas inteiras de uma só vez com apenas um comando. Isso é muito útil e não é necessário entrar no modo Visual. Para copiar uma linha inteira vamos usar o atalho yy e para recortar uma linha inteira dd. Para copiar mais de uma linha o atalho é (número de linhas)yy, ou seja, 5yy copia a linha atual mais as quatro abaixo, totalizando cinco linhas. O mesmo pode ser usado para deletar as linhas, 3dd deleta três linhas. Na hora de colar também é possível usar um número antes do atalho, com isso a operação é repetida de acordo com ele, por exemplo, 5p cola o conteúdo cinco vezes.

Copiar, colar e recortar no Vim é ótimo, o único problema é a interação com outras aplicações, esses comandos não se comunicam bem com o mundo externo. Para colar texto vindo de outra aplicação o atalho é shift+insert (no modo de Inserção) e para copiar para fora do Vim temos um atalho bem complicado, o "+y. shift+insert é um bom atalho, mas o de copiar para fora do programa é complicado e pouco prático, por isso vamos criar um novo atalho para essa operação no .vimrc.

Adicione essa linha no arquivo de configuração:

vnoremap <C-Insert> "+y

Agora o atalho ctrl+insert pode ser usado para copiar texto para fora do Vim.

Outro motivo importante para não usar ctrl+c e ctrl+v é que o segundo é um atalho importante do Vim. Eu falarei sobre ele em breve.

27 de agosto de 2010

Minimal Vim - Acessando arquivos

Abrir arquivos para editar é uma operação fundamental em qualquer editor de texto. A maneira mais básica para abrir um arquivo no Vim é digitar no modo de comando:

:e caminho/para/o/arquivo

Existem vários plugins e outros comandos do próprio Vim que permitem o acesso aos diretórios e arquivos do seu computador. Mas lembre-se, o objetivo é simplificar o uso, quanto menos opções, melhor. Por isso vou apresentar o plugin Command-T.

O Command-T é um plugin que permite uma maneira extremamente rápida e simples para abrir arquivos no Vim. Ao executar o plugin você pode filtrar os arquivos em tempo real digitando seu nome ou parte dele e depois pressionar Enter para abrí-lo.

O plugin está disponível no site https://wincent.com/products/command-t/. Para instalar o Command-T siga os passos:

  • Abra o arquivo baixado no site do Command-T no Vim
  • No modo de comando digite :so %
  • Abra o terminal e entre no diretório onde o Command-T foi instalado: cd .vim/ruby/command-t
  • Digite: ruby extconf.rb
  • Por fim: make

Para facilitar o uso do Command-T vamos definir um atalho para ele no .vimrc. Acrescente a seguinte linha no arquivo de configuração do Vim:

nnoremap <C-t> :<C-u>CommandT<CR>

Para usar o Command-T, primeiro entre no diretório do seu projeto dentro do Vim. Use o comando:

:cd diretorio/do/projeto

Você poderia usar o Command-T sem alterar o diretório, ou seja, na raiz, mas indexar todos os arquivos a partir da raiz pode ser muito lento, entrando em um diretório específico esse problema dificilmente existirá.

Para acessar os arquivos simplesmente pressione Ctrl+T. Uma lista de arquivos vai aparecer e ela é filtrada de acordo com o que você digita.

Além de filtrar pelo nome do arquivo o plugin também filtra pelos diretórios. Por exemplo, se existem dois arquivos chamados "post" um dentro do diretório "blog_pessoal" e outro dentro de "blog_corporativo" é possível encontrar o arquivo post do primeiro diretório digitando "pesspos", "pess" casará com o nome do diretório blog_pessoal e o "pos" com o nome do arquivo post.

Para mais informações sobre o Command-T visite o site: https://wincent.com/products/command-t/.

O Command-T é útil sempre que precisamos acessar os arquivos dentro de um projeto, se por acaso for necessário acessar um outro arquivo em uma pasta bem distinta eu recomendo usar o comando padrão do Vim para editar um arquivo:

:e /caminho/do/arquivo

Espero que tenham gostado da primeira dica da série de posts Minimal Vim.

23 de agosto de 2010

Minimal Vim: minhas configurações

Antes de começar a falar mais profundamente sobre como eu estou usando o Vim é bom deixar claro para todos que eu uso no meu computador o Ubuntu mais recente, o 10.04, com o GNOME. A versão do Vim utilizada é a 7.2, mas eu não estou usando o Vim puro direto no terminal, eu estou usando o GVim. 

Diferente do que muitos possam pensar, eu não uso o GVim para ter acesso aos seus menus, eu até removi todos eles. O principal motivo para usar o GVim é ter um programa específico que rode apenas o editor. Eu acho melhor ter um ícone na barra de tarefas apenas para ele. O GVim também tem melhor suporte a cores e a alguns efeitos.

Para remover o menu e a barra de ferramentas adicione as seguintes linhas ao .vimrc, o arquivo de configuração do Vim:

set guioptions-=m
set guioptions-=T

Usuários do Windows e do OS X, se tiverem alguma observação sobre algo que funcione diferente nesses sistemas operacionais, eu agradeço muito uma contribuição nos próximos posts através dos comentários para alertar os leitores.

20 de agosto de 2010

Minimal Vim

Eu gosto do Vim. Já tive problemas com ele, mas sei que ele possui ótimas ferramentas que o tornam um poderoso editor, a grande dificuldade é aprender a usá-las. O Vim é diferente, seus atalhos são estranhos, sua interface é basicamente só texto e você precisa digitar i para começar a escrever.

O Vim não cabe na sua cabeça. Ele fornece muitas possibilidades para que o usa. O editor é totalmente configurável e existem diversas maneiras de estendê-lo através de plugins. São tantas coisas novas e são tantas opções que um novo usuário fica facilmente perdido.

Por que muita gente ainda usa o Vim se ele é tão mais difícil que os outros editores? Eu acredito que depois de um bom tempo usando o editor, o que era estranho vai se tornando natural. Outro motivo importante é a customização, ao longo do tempo os usuários vão ajustando o Vim de acordo com suas necessidades e ele passa a funcionar melhor que qualquer outro editor poderia funcionar. 

Dominar o Vim leva tempo, ele é muito complicado para ser absorvido rapidamente. Isso é verdade em muitos casos, mas eu resolvi tentar uma abordagem diferente na hora de usá-lo. Eu estou tentando limitar o uso das funcionalidades, focando no que é mais importante, para que eu consiga aprendê-las. Se eu leio como fazer 100 coisas diferentes no Vim e depois vou tentar fazer, com certeza eu vou esquecer grande parte do que eu li antes mesmo de usar. Além disso, estou customizando o Vim e aprendendo alguns truques para tornar o seu uso muito mais simples.

Eu compartilharei tudo aqui no blog. Mostrarei plugins interessantes e como usá-los de forma eficaz, configurações que vão ajudar a fazer o seu trabalho de forma mais rápida e alguns truques aprendidos. Espero ajudar a todos que assim como eu gosta da interface minimalista do Vim, sabe do poder do editor, mas sempre se sentiu repelido por toda sua complexidade.

Veja os posts da série: