No modo normal do Vim, o 0
comando leva você para a primeira coluna da linha e ^
o início lógico da linha (por exemplo, o primeiro caractere que não é um espaço em branco). No mundo regex, ^
corresponde ao primeiro caractere da linha, com espaço em branco ou não. O Vim tem um padrão que se comporta como o comando '^' - correspondendo ao início lógico de uma linha?
20
Respostas:
Não há atalho para corresponder ao primeiro caractere que não seja um espaço em branco em uma linha; você deve criar o padrão sozinho, como:
Se você não deseja incluir o espaço em branco na sua correspondência, use uma asserção de largura zero, como:
Não é exatamente bonito, mas pelo menos faz o trabalho.
fonte
Para corresponder ao primeiro caractere que não seja um espaço em branco, você usaria
\S
normalmente.Se você usar
^
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:
Este comando vim removerá o espaço inicial:
resultando no seguinte:
Portanto, o regex se comportará conforme o esperado, mesmo que o comando não o faça.
fonte
^
operador (como todas as implementações de sã regex) corresponderá ao primeiro caractere, mesmo que seja um espaço em branco.\S
com o primeiro caractere que não é um espaço em branco.\S
corresponderá a qualquer caractere que não seja um espaço em branco. Dito de outra forma, eu estou querendo saber se Vim tem uma forma abreviada de largura zero para isso:^\W*\S
.