VIM удаление / изменение атрибутов HTML - PullRequest
4 голосов
/ 02 сентября 2011

Я новичок в редактировании HTML с VIM. Я использую Matchit, Ultisnips и Surround, чтобы помочь мне в этом.

Одна область, которую я не могу выполнить легко, это редактирование атрибутов.

Я хочу перейти от: (курсор |)

<input type="submit|" name="some_name" value="" id="some_name">

до:

<input type="submit" id="submit_button">

Какой самый быстрый способ сделать это? Прямо сейчас я делаю много запросов на основе f.

Ответы [ 5 ]

3 голосов
/ 02 сентября 2011

Возможные решения

wd2W

Этот метод требует подсчета, поэтому, возможно, вы бы предпочли сделать wdW и просто нажать ., пока он не станет правильным.

wd/ id<cr>

Переходит кследующее слово, поэтому начало name=".." удаления с d до / id.Это решение также может удалять через строки.Вы можете использовать /... и с другими операторами, например, c, y и =.

Конечно, вы можете использовать метод, который вы используете в настоящее время с f, и просто повторитьс .

2 голосов
/ 15 января 2017

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

В некоторых случаях, если я хочу удалить остальныеатрибуты до конца тега HTML, который я использую dt / (удаляйте все, пока не найдете / который является концом входного тега)

2 голосов
/ 02 сентября 2011

Для вашего примера я бы использовал: wdw.....wwci"submit_button

  • w для перемещения в конце текущего w
  • dw, чтобы стереть «слово»
  • затем ., чтобы повторить последнюю команду и стереть столько слов, сколько вы хотите.
  • ww для быстрого перемещения между "
  • ci" для изменениясодержимое внутри "
  • submit_button
  • ESC

См. :help text-objects для получения дополнительной информации о ciw.(пожалуйста, не используйте текстовый объект tag, чтобы вы могли быстро изменять содержимое тега, например cit.

Возможно, вы могли бы использовать что-то вроде wd4w, но вы должны быть заранее уверены, чтоВы хотите стереть 4 слова.

Вы слышали о Zencoding.vim ?

Это плагин, предназначенный для быстрой записи HTML или CSS.

Я не уверен, что есть функции для редактирования, но для написания новых кодов он превосходит все.

1 голос
/ 15 февраля 2017

Я также искал решение для этого, и использование w и W не очень хорошо для меня работало с AngularJS, где вы можете иметь такие атрибуты:

<input ng-show="product.inUse" ng-model="product.customerPrice" />

То, что я начал делать, это перемещение моего курсора в пробел перед атрибутом, например, здесь:

<input| ng-show="product.inUse" ng-model="product.customerPrice" />

Затем нажмите d2f "(y вместо d для копирования), что дает мне:

<input| ng-model="product.customerPrice" />

Он будет два раза искать символ и удалять все, включая последний.

0 голосов
/ 14 декабря 2017

Я бы использовал ci> и перепечатал бы форму. Во многих случаях мои фрагменты имеют массу атрибутов, которые мне не нужны, например <form action="">, поэтому ci> взрывает их и позволяет мне начинать с нуля, когда мне это нужно. Я нахожу это быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...