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

Я использую плагины Vim для объемного звучания и повторения, чтобы оборачивать строки текста тегами html.

Я буду использовать «yse‹p›» и «ys$‹p›», они оба работают нормально.

Я пытаюсь повторить команду с «.», и в терминале отображается ‹p›, но всякий раз, когда я нажимаю ввод для выполнения команды, объемный звук заменяет то, что должно быть ‹p› и ‹/p› на ^M.

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

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

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


person Andrew E.    schedule 07.01.2011    source источник


Ответы (2)


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

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

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

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

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

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

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

person Nick Knowlson    schedule 07.01.2011
comment
Я принимаю ваш ответ, но я расстроен, что вы не можете так использовать повтор. Запись и выполнение макроса означает как минимум на 4 штриха больше, чем только для . - person Andrew E.; 08.01.2011
comment
Это очень плохо, да. Я думаю, что у jrdioko есть хорошая идея с его предложением по запросу функции. - person Nick Knowlson; 10.01.2011

В документации surround.vim говорится:

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

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

person jrdioko    schedule 07.01.2011