Я прибил его в одной команде.
:execute "normal! mz" | execute "g;<a id="@"></a>;m'z"
Одно наблюдение: чтобы использовать символ вертикальной черты -> |
, как в обычных, так и в глобальных командах вы должны использовать нотацию выполнения как показано выше, потому что они рассматривают этот символ как часть команды, а не как другую команду.
Итак, мы создаем метку «z», как если бы мы были в нормальном режиме, это установит текущую позицию курсора на z знак. Глобальная команда сопоставит нужные строки и переместит их «m
» на метку z.
На данный момент я не помню, как сохранить метку z, если она уже существует, как способ сохранить его, сделав команду более прозрачной. Если бы кто-нибудь мог решить эту проблему, я был бы очень благодарен.
" If mark "a" is set it will return a positive value
:ec getpos("'a")[1]
Создавая функцию, мы можем передать поиск в качестве аргумента функции, что сделает код более переносимым.