Digitando caracteres especiais no VIM

Uma dica (velha) que me chagou as mãos recentemente, me fazendo relembrar desse excelente recurso do VIM, foi a do uso de digrafos para digitação de caracteres especiais. Você pode ver a lista de digrafos usando:

:dig

Assim, se vocẽ quer digitar o caracter ±, pode usar (em modo insert) a hotkey <ctrl>k e os caracteres + e -. Se quiser digitar µ pode usar <ctrl>k e os caracteres m*. Para → é só usar <ctrl>k e os caracteres – e >.

Dê uma olhada na documentação do comando digraph:

:help dig

Além de seu uso, tem umas dicas sobre digrafos default. Por exemplo: Letras gregas são obtidas com a letra seguida de *. A sequência b*, por exemplo, nos dá o beta minúsculo (β), a sequência O* nos dá o ômega maiúsculo (Ω) e por ai vai…

Agora, eu não posso deixar de achar que tenha havido algum brasileiro engraçadinho que atribuiu a sequência “Cu” para o caracter ¤.

Cavalgando os chars com o VIM

O amigo Fred publicou algumas dicas interessante sobre conversão de caracteres aqui e aqui.

Resolvi colocar meus dois centavos neste tema e aumentar a nossa coluna de dicas do Vim.

Bom, a coisa é simples. Mais do que parece.

Se você ainda sofre com o rwindowze e fica babando quando vê dicas do mundo livre aqui ou pela net afora, seus problemas começaram: você tem que aprender o Vim.

Este “maravilhoso canivete suiço digital” possui muitas coisas embutidas que, na minha opinião, não deveriam ser desconhecidas por alguém que quer trabalhar seriamente com programação e edição de fontes, incluindo xml, html e outras lingos da “scriptlândia”.

No caso das dicas de conversão de caracteres usando utilitários como o iconv, podem ser facilmente obtidas com o vim.

Abra o arquivo no formato que você desejar.

Para os “mouse addicteds”, “clicando com o direito” no arquivo e selecionando “abrir com …” (é claro que você tem que ter o vim instalado, e pode ser baixado daqui).

Que corresponde ao que nós, da linha de comando, fazemos:

$ vim meu-arquivo-encoding-utf-8.txt

Digite ‘:’, e o seguinte comando (na frente dos dois pontos que aparecerâo no fundo da janela/tela:

:set fileencoding=windows-1252

Digite ‘:’ novamente e salve como meu-arquivo-w1252.txt

:wq meu-arquivo-w1252.txt

As conversões podem ser feitas nos dois sentidos mudando-se, de acordo, o tipo. Ele vem depois do ‘=’ e pode ser utf-8,iso-8852-1, latin1, cp850, etc…

RTFM do vim – help fileencoding  – para mais detalhes, versão do vim e chaves de compilação. Mas o meu, v 7.2, pacote “normal” funciona bem aqui e creio que deve funcionar no rwindows também.

Happy Vimming.

Make”ing” no Vim

Sabe-se que é interessante compilar o programa estando no vim, utilizando o make.
Sabe-se também que podemos navegar nos erros usando :cprev, :cnext.

O que eu não sabia, e isto me aborrecia bastante, era que podemos compilar direto o fonte editado, sem muita complicação estando no vim.

Sabe-se que quando se executa o comando make com o nome do alvo desejado, diretamente na linha de comando, o make, baseado em suas regras gera o alvo com o nome do fonte sem a extensão.

Ex: (na linha de comando)

$ # fonte:   foo.c
$ make foo
$ # gera o alvo ./foo

Contrariamente, quando se usa o compilador diretamente, obtemos o infame a.out

Ex: (linha de comando)

$ #fonte foo.c
$ gcc foo.c
$ # gera o alvo ./a.out

Ok, finalmente estando no vim, basta compilar com (:”modo command):

:make %<

E, para não ter que ficar digitando %< (atalho para nome de arquivo sem a extensão), coloque a seguinte linha no seu ~/.vimrc

set makeprg=make\ %<

E resolva de vez o problema.

{}'s
MaRZ

Organizando um código fonte com o VIM

Já que parece que dicas para o VIM virará uma tradição neste blog, eis a minha contribuição…

Eu costumo ser meio chato com a aparência de um código fonte. Se a identação estier muito bagunçada ou se os estilos estiverem misturados, eu torço o nariz… Então, uso o VIM para corrigir o código para mim. Nada mais fácil, no modo normal (fora do modo de inserção), digite:

gg=G

“gg” pula para o início do texto, “=G” usa o filtro de identação até o final do texto.

 

Cortar do buffer de edição e colar na linha de comando ou no search (/)

Versão mais simples

1- Faça um yank do que vc quer (palavra, linha, etc)
2- Verifique em que registrador foi parar :register
3- Cole com × onde × e o número do registrador
4- Se for usar o clipboard, o conteúdo fica em ˝* ou ˝+

Versão antiga
/ : Pull onto search/command line
na realidade o copia do buffer no caso.
Ex: se deletar um texto no buffer, ele vai pra o “-,
entao para colar na linha de comando, deve-se estar no modo :
e digitar -\”+ ou \”* que sao registradores do clipoard