sexta-feira, 29 de maio de 2009

Opção para definir o tamanho máximo de uma tag

Alguns sistemas limitam o tamanho máximo de um nome de função. Se você quiser
limitar isto quando pesquisando tags use:
:set taglength=número

quarta-feira, 27 de maio de 2009

Testando se o Vim pode localizar o arquivo de uma diretiva #include

Para listar todos arquivos '#include' não puderam ser localizados, use:
:checkpath
Ele verifica não somente as diretivas '#include' do arquivo sendo editado como
quaisquer arquivos que as diretivas incluem e assim por diante.
Para os includes que falharam inclua os paths necessários na opção 'path'.
Para listar todos arquivos '#include' use:
:checkpath!

Opção para definir que caracteres são usados como par de delimitadores

Para definir que caracteres serão identificados pelo comando '%' use a opção:
:set matchpairs = (:),{:},[:]
Para identificar o par '<>' (tag HTML) use:
:set matchpairs+=<:>

segunda-feira, 25 de maio de 2009

Comparando visualmente dois arquivos

Suponha que você quer comparar dois arquivos que diferem em poucas edições.
Abra duas janelas com os dois arquivos.
Agora execute o comando em cada janela:
:set scrollbind
Agora quando uma janela rola a outra rola também.
Se quiser parar a sincronização em um janela:
:set noscrollbind
E localizado o ponto desejado no arquivo, recomeça a rolar ao mesmo tempo a
partir desses locais:
:set scrollbind
Para voltar a sincronizar as janelas (isto é, linha 1 com linha 1), ligue
'scrollbind' em ambas janelas e use:
:syncbind
A opção:
set scrollopt=
controla como o scrollbind trabalha.

Opção para definir que palavra causa indentação na próxima instrução C

Para que uma palavra dispare uma indentação na próxima instrução C use a opção:
:set cinwords=string
O valor default é:
:set cinwords=if,else,while,do,for,switch

Opção para definir quanto espaço uma indentação C terá

Para controlar quanto irá ter um indentação C use a opção:
:set cinoptions=string
Aonde o 'string' consiste de uma lista pares chave-indentação separados por
vírgulas.
A 'chave' é uma única letra que diz que parte do programa será afetada.
A 'indentação' diz quantos espaços será usado na indentação. Pode ser um número
negativo. Também pode ser em múltiplos de 'shiftwidth'.

Opção para definir que tecla dispara uma indentação C

Uma lista de teclas que quando usadas no modo inserção causam re-indentação da
linha corrente. Somente usada se 'cident' ou 'indentexpr'.
Use:
:set cinkeys=string
O string é uma lista de pares 'caractere de tipo caractere da tecla'.
Os tipos podem ser:
! a tecla seguinte não é inserida. Isto é útil se você quiser definir uma tecla
  que só dispara a re-indentação da linha. <Ctrl-F> é a tecla default nesse
  caso.
* a linha será re-indentada antes que a tecla seja inserida.
0 a tecla causa indentação somente se ela é o primeiro caractere digitado na
  linha.
As teclas-caractere podem ser:
<nome>    O nome da tecla.
^nome O nome de uma tecla de controle.
o Diz ao Vim para indentar quando for usado o comando 'o'.
O Diz ao Vim para indentar quando for usado o comando 'O'.
e Re-indenta a linha quando for digitado o último 'e' de else.
: Re-indenta quando for digitado um ':' após um label ou 'case'.
O valor default é:
0{,0},0),:,0#,!^F,o,O,e
que especifica que uma indentação ocorre se:
0{  se foi digitado '{' como primeiro caractere em uma linha.
0} se foi digitado '}' como primeiro caractere em uma linha.
0) se foi digitado ')' como primeiro caractere em uma linha.
: se foi digitado ')' depois de um label ou instrução 'case'.
0# se foi digitado '#' como primeiro caractere em uma linha.
!^F se foi digitado <Ctrl-F> (o qual não é inserido).
o se foi digitado um <CR> em qualquer lugar ou usou o comando 'o' (não no modo
    inserção).
O se foi usado o comando 'O' (não no modo inserção).
e se foi digitado o segundo 'e' para um 'else' no início de uma linha.

domingo, 24 de maio de 2009

Opção para definir um programa externo de formatação

Você pode definir que programa de formatação que o Vim usa quando o comando '='
é usado.
Se não for definido o Vim usa a rotina interna de indentação que indenta
programas C ou C++.
Por exemplo, para usar o programa GNU de indentação 'indent':
:set equalprg=/usr/local/bin/indent

Opção para indentar em múltiplos de shiftwidth

Por default, um comando de indentação (>, <) insere 'shiftwidth' espaços mesmo
que a linha já tenha espaços na frente da linha. Isso pode distorcer o layout
desejado.

Para evitar isso ligue a opção:
:set shiftround
para que o Vim sempre insira espaços em múltiplos de 'shiftwidth'.

Os comandos de modo inserção:
<Ctrl-T>
<Ctrl-D>
sempre arredondam as indentações para múltiplos de 'shiftwidth'.

Usando um modeline para configurar as opções de tabs

O Vim dá várias opções para tratar o uso de tabs dentro dos arquivos.
No entanto, isso significa que cada pessoa pode tratar o mesmo arquivo de
maneira diferente.

Uma solução é colocar um comentário especial no início ou fim do arquivo
informando que tab stops usar.

Por exemplo:
/* vim:tabstop=8:expandtabs:shiftwidth=8 */
O Vim ao ler esse comentário irá configurar as opções para você.