Vim Объемный:Создайте новый тег, но не делайте отступ / новую строку

StackOverflow https://stackoverflow.com/questions/6097363

  •  09-09-2020
  •  | 
  •  

Вопрос

Я хотел бы имитировать 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
.

Я нашел простое решение: из обычного режима я выбираю строку с помощью команды VIS , а затем введите Capital C (My Vim Control Mapping) и выбирайте кронштейны для окружающей среды.окруженный.

Название вопроса технически не связана на основе того, что автор на самом деле искал, но так как я на самом деле искал ответ на вопрос, заданный в названии, я, я также должен дать ответ на него.

.

Чтобы создать новый тег, окружающий элемент без автоматического отступа 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/ )

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top