Pergunta

Eu engano fez marcador dobrar à minha .vimrc:

{{{8 #CS
something..
}}}8  
{{{9 #Math
...
}}}9  
... many more!

Eu preciso mudar o formato para "#SOMETHING {{{NÚMERO" como:

#CS {{{8 
something..
}}}8  
#Math {{{9 
...
}}}9  
... many more!

O que está errado no código a seguir:

:%s$/({{{\d/) /(#[:alpha:]/)$\2 \1$g

[solução]

%s$\({{{\d\) \(#[[:alnum:]]*\)$\2 \1$g
Foi útil?

Solução

Você esqueceu de escapar dos parênteses, e as classes de caracteres POSIX são válidas apenas dentro de um [[:alpha:]] classe de caracteres:

:%s$/\({{{\d/\) /\(#[[:alpha:]]/\)$\2 \1$g

Note, no entanto, que o seu exemplo de texto não contém quaisquer barras -? É isso que seu texto da amostra é realmente como

O regex acima altera esta

/{{{8/ /#A/

Para este

#A/ {{{8/

Outras dicas

:%s/{{{\(\d\) \(.*\)/\2 {{{\1/g

ele funciona, mas em sua regex Eu não entendo por que você gosta de US $ após s.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top