VIM: удаление из текущей позиции до места

Часто при разработке я сталкиваюсь с вложенным объектом, который я бы хотел удалить из кода в середине строки, например:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

Часть, которую я хочу удалить:

this.cbAllSyncs.SelectedItem.ToString()

Я знаю, что могу подсчитать количество слов и периодов и ввести 7 d w для удаления из текущей позиции курсора "this". Однако то, что мне было бы интересно сделать, - это вовсе не учитывать и удалять пространство с помощью одной команды. Это возможно?

Ответ 1

Попробуйте d t space. Обычно d t x удаляется из текущего положения до момента x. Просто t x перемещает курсор непосредственно перед символом x в текущей строке.

Чтобы удалить до и включите пробел, используйте d f space.

Ответ 2

Вы можете использовать d W или d E как @glenn, если вы не хотите удалять само пространство.

A WORD (верхний регистр W) состоит из последовательности непустых символов, разделенных белым пространство.

Посмотрите на движения слов.

Ответ 3

одним из возможных решений является использование удаления с поиском.

поэтому введите d/<space>, и vim удалит, пока он не достигнет пробела.

Ответ 4

Если вы хотите удалить из в любом месте внутри WORD и в одной команде, просто используйте daW

(вы можете, конечно, использовать d a w, если хотите ограничить слово)

Я использую его довольно много, потому что он пощадит переход к началу слова (в вашем случае)

Ответ 5

d t space - ответ на ваш вопрос, но d f + выглядит так, что он лучше решает вашу проблему.

Ответ 6

  • удалить для текущей позиции конкретный пример символа

    dt"
  • удалить слово из курсора позиции до конца слова

    dw
  • удалить все слово, в котором находится курсор, независимо от положения курсора на слове, это также помещает вас в режим вставки, чтобы вы могли сразу вставить.

    diw