Vim Объемный:Создайте новый тег, но не делайте отступ / новую строку
Вопрос
Я хотел бы имитировать Textmates CTRL + ALT + w, который создает новую пару открывающих и закрывающих HTML-тегов в одной строке.
В VIM Surround я использую CTRL + st в режиме редактирования для этого, но он всегда делает отступы и создает новую строку после установки тега, так что она выглядит следующим образом (* = положение курсора):
<p>
*
</p>
Есть ли способ добиться этого?:
<p>*</p>
Решение
Я предполагаю, что ваша проблема заключается в том, что выбранная область - «Line Wise». Например, если вы выбираете несколько жизней с помощью V
и окружите его метками, теги будут размещены одну строку выше и одну шипение выбранных линий.
Вы, вероятно, хотите создать «символьный мудрый» выбор, с генеракодицетагкодом перед его окружением.
В любом случае, пожалуйста, напишите карту, которую вы создали, чтобы мы могли помочь отладовать это.
Обновление
После некоторого разъяснения в комментариях я бы сказал вам, что плагин объемного звучания не лучший вариант. Как описано его имя, он был создан для борьбы с окруженным контентом. Таким образом, вам может понадобиться контент для объема.
В вашем случае я рекомендую взглянуть в html autoclosetag Отказ Этот плагин закрывает тег HTML после ввода v
. Это, безусловно, более присвоено и использует менее нажатия клавиш, чем объемность.
<p <--- Now when you type ">", if becomes:
<p>|</p> <--- Where "|" is the cursor.
.
Очевидно, вы получите это поведение каждому мету. Но это может быть удобно, если вам это нравится.
Другие советы
Из обычного режима введите vstp>
для входа в визуальный режим и вывода информации об открытии и закрытии <p>
отметьте на той же строке в текущем положении курсора.Используйте заглавную букву S для поддержания текущего уровня отступа.
Это не помещает курсор между тегами, как вы описываете, но и Textmate этого не делает CtrlW ярлык (я думаю, вы имели в виду CTRL + Shift + w, а не CTRL + ALT + w, поскольку последний просто выводит знак ромба.)
Мой ответ, вероятно, приходит поздно, но я постараюсь помочь. У меня была похожая проблема с плагином Vimsuround.Каждый раз, когда вы выбираете предложение (одну строку), используя Ctrl + V и попробуйте окружить его чем-то, я получаю это:
{
var myVar
}
.
вместо этого:
{ var myVar } // what I wanted
.
Я нашел простое решение: из обычного режима я выбираю строку с помощью команды
Название вопроса технически не связана на основе того, что автор на самом деле искал, но так как я на самом деле искал ответ на вопрос, заданный в названии, я, я также должен дать ответ на него.
.Чтобы создать новый тег, окружающий элемент без автоматического отступа VIM Surround использует при использовании блока Wise Selection (т. Е. КБД>), вы можете вместо этого сделать что-то вроде:
^ ys $
Эта команда переместит курсор на первый не пустой символ строки, выпустите команду, которую вы хотите использовать вас, и перейдите к концу линии.Затем просто начните вводить в свой тег.
Результатом это:
<input type="email" name="email">
.
может стать что-то подобное:
<li><input type="email" name="email"></li>
.
Команда повторяется, а также с . и все обычные другое vim good.
наткнулся на этот вопрос, потому что мне тоже было интересно, - я считаю, что самый простой способ сделать это только:
yss<p>
.
(yss
окружает линию с чем-то без отступа - см. ЗДЕСЬ: http://www.catonmat.net/blog/vim-plugins-suround-vim/ )