Corrigindo errada marcações de desdobramento VIM
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
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 ??p>
/{{{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