sábado, 16 de maio de 2009

Usando o registrador-expressão (=) para entrar resultados de uma expressão no texto

O registrador-expressão permite que você avalie uma expressão e coloque o
resultado em alguma parte do texto.

Em modo normal, use a sequencia:
"=
o Vim salta para a linha de comando, aonde você pode digitar uma expressão, por exemplo:
38*56
em seguida, mova o cursor e cole resultado:
p
Em modo inserção pode-se usar a sequencia:
<Ctrl-R>"= (o Vim salta para linha de comando)
38*56
<Enter>
A expressão pode conter os operadores aritméticos comuns (*,+,-,/, etc) assim como as várias funções e operadores especializados do Vim.

Pode usar variáveis ambientais usando $NOME (por exemplo, $HOME), assim como variáveis Vim, simplesmente usando o nome dela como 'LineSize', por exemplo.

A linha de comando também dispõe de um histórico de expressões que pode ser recuperadas com as teclas de direção.

Usando o registrador buraco negro para evitar de salvar o texto deletado

Ao colocar texto no registrador 'buraco negro' (_), faz com que ele desapareça.

O registrador 'buraco negro' é útil se você quiser deletar um texto (com d ou c, por exemplo), mas não quer que ele vá para os registradores 1 a 9, como de costume.

Por exemplo, para deletar uma linha e coloca-la no registrador 1 use:
dd
Mas para deletar e não mexer no registrador 1 use
"_dd

Usando registradores especiais

O Vim possui uma série de registradores especiais. Aqui tem o seu conteúdo e se pode ser gravado pelo usuário:
0     O último texto copiado                      gravável
- O último texto deletado menor que uma linha read-only
. O último texto inserido read-only
% O nome do arquivo corrente read-only
# O nome do arquivo alternado read-only
/ O último string pesquisado read-only
: O último comando ':' read-only
_ O registrador 'buraco negro' gravável
= Uma expressão read-only
* O texto selecionado com o mouse gravável

sexta-feira, 15 de maio de 2009

Mostrando o conteúdo dos registradores

Use o comando:
:registers
Para mostrar registradores específicos:
:registers ax
mostra o conteúdo dos registradores 'a' e 'x'.

Colando texto

Após comandos de deleção ou cópia, você pode colar o texto em outro lugar.
Cola após o cursor:
{"registrador}p
Cola antes do cursor:
{"registrador}P
Cola após o cursor e deixa o cursor depois do novo texto:
{"registrador}gp
Cola antes do cursor e deixa o cursor depois do novo texto:
{"registrador}gP

quinta-feira, 14 de maio de 2009

Opção para definir que caracteres tem significado especial na expressão regular

A opção 'magic' quando ligada define que caracteres tem valor especial em uma
expressão regular.
Por exemplo '*' significa zero ou mais ocorrências.
Recomenda-se sempre deixa-la ligada (o default) para portabilidade.

Expressão regular: agrupamento

Você pode especificar um grupo na expressão regular através de:
\(...\)
Por exemplo:
a\(XY\)*b
obtém 'ab', 'aXYb', 'aXYXYb', etc.
Quando você define o grupo, o primeiro é assinalado ao item \1.
Por exemplo, para achar palavras repetidas:
\(\<\a\+\>\) \1
Descrevendo a expressão:
Inicia um grupo \(
início de palavra \<
uma ou mais letras, o máximo possível \a\+
fim de palavra \)
Fim do grupo \)
Um espaço
A ocorrência obtida dentro do grupo anterior
O primeiro grupo é assinalado a \1, o segundo a \2, e assim por diante.

Expressão regular: Classe de caracteres pré-definida

O Vim tem algumas classes de caracteres pré-definidas para coleções comuns de
caracteres.
Por exemplo, todas as letras maiúsculas, você pode usar a expressão [A-Z] ou
a classe:
[:upper]
obtém um caractere de letras maiúsculas.
Para obter um caractere dentro alfabeto inteiro use:
[[:upper][:lower]]

quarta-feira, 13 de maio de 2009

Opção para definir o número mudanças salvas pelo Vim para fazer undo

Use a opção:
:set undolevels=5000
para limitar a 5000 mudanças que salvas para poderem ser desfeitas pelo Vim.

terça-feira, 12 de maio de 2009

Opção para usar '~' com comando de movimento

Quando a opção essa opção está ligada:
:set tildeop
o comando '~' troca o case do caractere.
Quando desligada:
:set notildeop
a sintaxe do comando muda para '~movimento'.
Por exemplo:
~fq
muda o case de todos caracteres até e inclusive o primeiro 'q'.

Opção para habilitar a entrada de dígrafos usando Backspace

Se você pretende entrar muitos dígrafos ligue a opção:
:set digraph
Agora você pode entrar dígrafos com a sequencia:
caractere <BS> caractere
Por exemplo:
c<BS>o
é o caractere ©.
Naturalmente, essa convenção dificulta a correção usando backspace, pois agora
ele cria um dígrafo, não deleta o caractere.
Para desligar a opção:
:set nodigraph

domingo, 10 de maio de 2009

Posicionando a linha do cursor no meio da tela

Para posicionar a linha do cursor no meio da tela use:
zz
que deixa o cursor na sua coluna atual ou
z.
que deixa o cursor na primeiro caractere não-branco.

Posicionando a linha do cursor no rodapé da janela

Use:
z-
88z-
para posicionar na linha final da tela, com o cursor no primeiro caractere
não-branco.
zb
15zb
para posicionar na linha final da tela, com o cursor na coluna original.
A linha final é alterada pelo valor da opção 'scrolloff'.

Posicionando a linha do cursor no topo da janela

Se você quiser posicionar a linha do cursor no topo da janela use:
z<Enter>
(no entanto, a opção 'scrolloff' pode deixar uma margem de linhas acima dela).
Para posicionar uma linha qualquer:
88z<Enter>
Posiciona a linha 88 no topo.
O comando 'z' além de mover para o topo, deixa o cursor no 1º caractere
não-branco da linha.
Se quiser que o cursor continue na coluna original use:
zt
88zt

Opção para definir quantas linhas avançar/retroceder quando o cursor atinge início/fim da tela

Quando o cursor atinge o início ou fim da tela, com comandos com o 'j' ou 'k',
essa opção define quantas linhas o Vim avança ou retorna (se houver):
:set scrolljump=5
O default é 1.
Não é usado para comandos de rolagem de tela (<Ctrl-E>, <Ctrl-D>, etc).
Útil para terminais lentos.