Исправление неправильного сворачивания маркера в VIM
Вопрос
Я по ошибке сложил маркер в свой .vimrc:
{{{8 #CS
something..
}}}8
{{{9 #Math
...
}}}9
... many more!
Мне нужно переключить формат на «#SOMETHING {{{NUMBER», например:
#CS {{{8
something..
}}}8
#Math {{{9
...
}}}9
... many more!
Что не так в следующем коде:
:%s$/({{{\d/) /(#[:alpha:]/)$\2 \1$g
[Решение]
%s$\({{{\d\) \(#[[:alnum:]]*\)$\2 \1$g
Решение
Вы забыли выйти из круглых скобок, а классы символов POSIX действительны только внутри класса символов. [[:alpha:]]
:
:%s$/\({{{\d/\) /\(#[[:alpha:]]/\)$\2 \1$g
Однако обратите внимание, что текст вашего примера не содержит косых черт — это то, на что на самом деле похож ваш пример текста?
Приведенное выше регулярное выражение меняет это
/{{{8/ /#A/
К этому
#A/ {{{8/
Другие советы
:%s/{{{\(\d\) \(.*\)/\2 {{{\1/g
это работает, но в вашем регулярном выражении я не понимаю, почему у вас есть $ после s.
Не связан с StackOverflow