Existe um padrão como ^ no vim?

18

No modo normal do Vim, o comando 0 leva você para a primeira coluna na linha e ^ leva você para o início da linha lógica (por exemplo, o primeiro caractere que não é espaço em branco). No mundo regex, ^ corresponde ao primeiro caractere na linha, espaço em branco ou não. O Vim tem um padrão que se comporta como seu comando '^' - combinando o início lógico de uma linha?

    
por Michael 14.11.2012 / 20:32

2 respostas

17

Não existe um atalho para combinar com o primeiro caractere que não seja espaço em branco em uma linha, você tem que criar o padrão sozinho, como:

^\s*restofpattern

Se você não quiser incluir o espaço em branco em sua correspondência, será necessário usar uma declaração de largura zero, como:

\(^\s*\)\@<=restofpattern

Não é exatamente bonito, mas pelo menos faz o trabalho.

    
por 14.11.2012 / 21:23
5

Para corresponder ao primeiro caractere non -whitespace, você usaria apenas \S como normalmente faz.

Se você usar ^ em um regex no vim, ele corresponderá ao início real da linha, mesmo que contenha espaço em branco.

Por exemplo, esta linha começa com um espaço:

 <- there's a space there you can't see :)

Este comando vim removerá o espaço principal:

:%s/^ //

resultando no seguinte:

<- there's a space there you can't see :)

Assim, o regex se comportará como você espera, mesmo que o comando não seja.

    
por 14.11.2012 / 21:04

Tags