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


172

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

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

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

this.cbAllSyncs.SelectedItem.ToString()

Я знаю, что могу посчитать количество слов и периодов и ввести, 7dwчтобы удалить из моей текущей позиции курсора «это». Однако, то, что я хотел бы сделать, не нужно вообще считать и удалять в пространство одной командой. Это возможно?

Ответы:


343

Попробуй dtspace. В общем dtxудаляет с текущей позиции до непосредственно перед x. Просто txперемещает курсор прямо перед символом xв текущей строке.

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


2
Это прекрасно работает! Это также дает мне дополнительную гибкость, чтобы добраться до других определенных точек в этом объекте. Спасибо!
Блейк Блэквелл

27
df<space>удаляет до и включая следующий пробел.
Гленн Джекман

5
не менее полезно, dfT <пробел> удаляет до предыдущего пробела.
hgmnz

3
Вы также можете добавить счетчик непосредственно перед тем, tчтобы удалить до такого количества символов. например d2t<space>, удалит до двух пробелов.
Васим

7
Я всегда использую мнемонику tкак «до stackoverflow.com/questions/7409134/…
acw

71

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

СЛОВО (верхний регистр W) , состоит из последовательности символов , кроме пробелов, разделенные пробелами.

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


1
Если бы я мог проголосовать за два ответа, я бы сделал это, поскольку это решает конкретный вопрос, который я задал. Спасибо за ссылку!
Блейк Блэквелл

5
или dE- удалить до конца последовательности
непустых

@BlakeBlackwell Кто сказал, что нельзя голосовать за два ответа? я уже сделал это по этому вопросу. Это очень полезная информация.
Джавадба

20

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

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


2
Это является более общим, чем dWпотому, что вы также можете использовать его для удаления из курсора любого символа, например 2d/+, в данном случае - который также удалит конкатенации строк.
Дэйв Джарвис

1
Вы можете сделать 2dW, и это работает так же хорошо. на самом деле я считаю, что это лучшее решение, поскольку оно также будет работать с вкладками и другими пробелами. Он также удаляет завершающие пробелы, которые вы хотите удалить до.
Баркмадли

15

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

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

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


Для меня daw и daW ведут себя одинаково - оба удаляют слово целиком, независимо от того, на какой букве находится мой курсор. Не уверен почему.
Будет

галка не удалит пробелы после слова, в то время как daW удалит
Louis

5
  • удалить текущую позицию для конкретного примера символа "

    дт»
  • удалить слово из позиции курсор включен до конца слова

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

    DIW

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.