Vim Surround + Repeat, оборачивает мой текст с помощью ^M
Я использую Vim Surround и повторяющиеся плагины, чтобы обернуть строки текста с HTML-тегами.
Я буду использовать "yse
" и "ys $
", они оба работают нормально.
Я пытаюсь повторить команду с ".", И она показывает
в терминале, но всякий раз, когда я нажимаю Enter, чтобы выполнить команду, Surround заменяет то, что должно быть
и p>, на ^M.
Моя строка выглядит как ^Mtext здесь ^ M
Я распознаю символ как конец строки, но я не понимаю, почему Surround не обернет мою строку кодом, который он показывает в терминале (что правильно), а вместо этого обернет мою строку окончаниями строки DOS.
Я использую gVIM на Windows XP, если это имеет значение.
2 ответа
Это на самом деле, потому что <p>
не там, когда вы повторяете команду с .
Попробуйте это: прежде чем повторить команду с .
первый удар o
чтобы очистить область командной строки любого текста, затем нажмите .
Вы увидите, что оно на самом деле пустое, поэтому курсор находится на первом символе.
Чтобы правильно повторить перенос, вам нужно будет либо ввести <p>
каждый раз или запишите быстрый макрос.
Macro: ys$<p>
Вставьте это в vim, выделите его и введите "py
Теперь вы можете запустить макрос с @p
surround.vim
Документация гласит:
The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136.
Так что если вы используете yss
должно работать, но, видимо, другие версииys
"не поддерживаются. Звучит как хорошая функция, которую необходимо отправить repeat.vim
владелец.