quarta-feira, 10 de junho de 2009

Listando todas definições de macro C no modo comando

Para listar todas definições de uma macro use:
:dlist EOF
É semelhante a
[D e ]D
mas permite também selecionar um intervalo de linhas a serem pesquisadas.
O comando:
:dsearch EOF
pesquisa definições também, mas só lista a primeira.

Saltando para definições de macro C em modo comando

O comando:
:djump /padrão/
salta para a primeira definição de macro que encontrar no arquivo corrente e nos
includes. É semelhante ao comando de modo normal:
[<Ctrl-D>
porém permite selecionar um intervalo para restringir a procura.
O comando:
:dsplit
faz um ':split' seguido de um ':djump'

Listando as ocorrências de um palavra em modo comando

O comando:
:{intervalo}ilist /padrão/
mostra todas linhas que tem uma ocorrência do padrão.
A busca vai no arquivo corrente e nos includes.

É semelhante a:
[I e ]I
mas permite restringir a um intervalo de linhas
Por exemplo, listar todas linhas que tenham 'EOF':
:ilist EOF
O comando:
:isearch EOF
é semelhante a ':ilist' mas lista somente a primeira ocorrência.

terça-feira, 9 de junho de 2009

Pesquisando e saltando para uma palavra em modo comando

O comando:
{intervalo}:ijump {contagem} {/padrão/}
procura a primeira ocorrência da palavra dentro do intervalo.
A procura ocorre no arquivo corrente e nos arquivos apontados pela diretiva
'#include'. A 'contagem' diz para saltar para a uma ocorrência específica.

Exemplo:
:ijump /define\s*EOF/
procura a primeira linha que contenha 'define EOF'. Neste caso, ela está dentro do arquivo de include 'stdio.h'.
Faz o mesmo que
[<Ctrl-I> e ]<Ctrl-I>
porém pode restringir a um intervalo de linhas.
O comando:
:isplit /padrão/
funciona como um ':split' seguido de um ':ijump'.

segunda-feira, 8 de junho de 2009

Opção para tornar default a flag 'g' do substitute

O comando ':substitute' por default só altera a 1ª ocorrência de uma linha.
Para alterar todas use a flag 'g'.

Para torna-la o default use:
:set gdefault
Agora o ':substitute' altera todas ocorrências sempre.

No entanto, isso poderá quebrar scripts que você possa usar.

Repetindo a última substituição

O comando:
{intervalo}:& {flags} {contagem}
repete o último comando ':substitute' com o mesmo padrão e o mesmo string de substituição, mas sem as mesmas flags.

Exemplo, o comando seguinte substitui somente a 1ª ocorrência:
1 substitute /a\+/b/p
Test b* aa* a*
Agora para repetir, mas de com flag global:
:&g
O comando ':&' sem argumentos repete o último ':substitute'.

O comando de modo normal '&' repete também o último ':substitute'. Pode usar uma
contagem para repetir '&'.
O comando:
:{intervalo}~ {flags} {contagem}
repete o último 'substitute' com o mesmo string de substituição mas com último string usado em um padrão de pesquisa (comandos '/' ou '?').

Substituindo texto forçando a opção 'magic'

A opção 'magic' controla se certos caracteres tem valor especial. Para serem
usados literalmente tem que ser escapados.
Exemplo, '*', significa ('magic') nenhum ou 1 ou mais ocorrências.
Se desligar a opção ('nomagic') ela será usada literalmente.

Se quiser fazer um ':substitute' forçando a opção 'magic' ligada use:
:smagic /a*/b/g
Para forçar 'nomagic':
:snomagic /a*/b/g