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>видаляє upto та включає наступний пробіл.
glenn jackman

5
однаково корисно, dfT <простір> видаляє в попередній простір.
hgmnz

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

7
Я завжди використовую мнемонічні , tяк «до stackoverflow.com/questions/7409134 / ...
ACW

71

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

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

Подивіться на слова рухи .


1
Якби я міг проголосувати за дві відповіді, я би міг, оскільки це вирішує конкретне питання, яке я задав. Дякуємо за посилання!
Блейк Блеквелл

5
або dE- видалити до кінця послідовності непорожніх символів (не включає наступний бланк)
glenn jackman

@BlakeBlackwell Хто каже, що ви не можете голосувати за дві відповіді? Я вже зробив це з цього питання. Це v корисна інформація.
javadba

20

одне можливе рішення - використовувати видалення під час пошуку.

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


2
Це більш загально, ніж dWтому, що ви також можете використовувати його для видалення з курсору до будь-якого символу, наприклад 2d/+, у цьому випадку - який також видаляв би рядкові конкатенації.
Дейв Джарвіс

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

15

Якщо ви хочете видалити з будь-якого місця всередині слова та в одній команді, просто використовуйте daW

(ви, звичайно, можете використовувати, dawякщо хочете обмежитися словом)

Я використовую його досить багато, тому що це шкодує перехід до початку слова (у вашому випадку)


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

daw не видалить білі пробіли після цього слова, тоді як daW
Луї-

4
  • видалити для поточної позиції на прикладі конкретного символу "

    dt "
  • видаліть слово з курсору позиції увімкнено до кінця слова

    роси
  • видалити все слово, на якому знаходиться курсор, незалежно від положення курсору на цьому слові, це також переведе вас у режим вставки, щоб ви могли негайно вставити.

    росити

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.