domingo, 5 de abril de 2009

Substituindo todas ocorrências de um carácter, mas só no inicio da linha

Comando para substituir espaços no início da linha pela entidade html 'non-break
space':

:s/^\s\+/\=substitute(submatch(0),'\s','\ ','g')/eg

Descrevendo:

:s - substitute
/^\s\+ - o padrão: o início da linha seguido de um ou mais espaços.
/\= - o string de troca. O '\=' indica que é para interpretar o string como uma
expressão ao invés de uma literal.

A seguir vem a expressão que retorna o string que substituirá a ocorrência.
Ela usa a função 'substitute()' que irá fazer a mudança na ocorrência trazida pelo primeiro comando ':substitute' :

substitute(submatch(0),'\s','\ ','g')/e
submatch(0) - retorna a ocorrência completa do ':substitute' mais externo.
\s - o padrão da ocorrência que será substituída: espaço em branco.
\  - o string que o substituirá.
g - flag para repetir para todas ocorrências.

0 comentários:

Postar um comentário