algumas expressões de suporte POSIX não funcionam

2

Por exemplo, quando estou tentando encontrar e substituir algo usando

g/[:digit:]/s/1/2/g

Vim mostrando erro: Pattern not found: [:digit:] , enquanto a string contém dígitos.

As seguintes expressões de suporte POSIX não estão funcionando: [: digit:], [: xdigit:], [: superior:], [: lower:], [: print:], [: cntrl:]

Ao mesmo tempo, todos os outros POSIX Bracket Expressions (como [: alnum:], [: alpha:], [: blank:] etc. funcionam muito bem.

Versão 7.4 do Vim

    
por Alexander 03.02.2015 / 14:56

1 resposta

2

A expressão% bracket [:foo:] deve ser usada dentro de uma [...] coleção , assim:

:g/[[:digit:]]/s/1/2/g

Isso permite que você especifique vários grupos (alternativos; caso contrário, seriam concatenação) e misture-os com outros caracteres, por exemplo: [[:space:][:digit:]abc] .

    
por 03.02.2015 / 15:01