Vim Surround + Repeat, оборачивает мой текст с помощью ^M

Я использую Vim Surround и повторяющиеся плагины, чтобы обернуть строки текста с HTML-тегами.

Я буду использовать "yse

" и "ys $

", они оба работают нормально.

Я пытаюсь повторить команду с ".", И она показывает

в терминале, но всякий раз, когда я нажимаю Enter, чтобы выполнить команду, Surround заменяет то, что должно быть

и , на ^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 владелец.

Другие вопросы по тегам