Vim Surround + Repeat, оборачивает мой текст с помощью ^ M - PullRequest
0 голосов
/ 07 января 2011

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

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

" и "ys $

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

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

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

и

на ^ M.

Моя строка выглядит как ^ Mtext здесь ^ M

Я распознаю символ как конец строки, но я не понимаю, почему Surround не обернет мою строку кодом, который он показывает в терминале (что правильно), а вместо этого обернет мою строку окончаниями строки DOS.

Я использую gVIM в Windows XP, если это имеет какое-либо значение.

Ответы [ 2 ]

1 голос
/ 08 января 2011
Документация

surround.vim гласит:

The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136. 

Так что если вы используете yss, это должно работать, но, очевидно, другие версии "ys" не поддерживаются Звучит как хорошая функция, которую необходимо отправить владельцу repeat.vim.

0 голосов
/ 07 января 2011

Это на самом деле потому, что <p> на самом деле не существует, когда вы повторяете команду с .

Попробуйте это: перед тем как повторить команду с ., сначала нажмите o, чтобы очистить область командной строки любого текста, затем нажмите .

Вы увидите, что оно на самом деле пустое, поэтому курсор находится на первом символе.

Чтобы правильно повторить перенос, вам нужно будет каждый раз набирать <p> или записывать быстрый макрос.

Макрос: ys$<p>

Вставьте это в vim, выделите его и наберите "py

Теперь вы можете запустить макрос с @p

...