Многие ответы здесь на самом деле не касаются вопроса напрямую. Запрашивающий хочет знать, как удалить до первый не -пробельный символ. Некоторые ответы будут технически работать , но давайте посмотрим, как это сделать явно.
Следующие примеры демонстрируют, как это сделать в режиме normal с вариациями, которые учитывают начальную позицию курсора. Символы u & # x0332; nderlined c & # x0332; указывают положение курсора:
d ш :
foo_ bar
& Rarr;
foob & # x0332; ар
Команда d elete w ord , описанная в других ответах, прекрасно работает для удаления до следующего непробельного символа, когда наш курсор позиционируется перед целью.
д * * б тысячи тридцать-пять :
foo b & # x0332; ar
& Rarr;
б & # x0332; ар
Естественно, мы бы хотели попробовать инвертировать d w для удаления в обратном направлении до первого непробельного символа до курсор. Однако, как показано выше, команда d elete b ack-word удаляет больше, чем мы ожидаем, - также удаляет предыдущее слово. Для этого случая мы должны использовать:
д * +1057 * T * +1059 * * * 1060 <?>:
foo b & # x0332; ar
& Rarr;
foob & # x0332; ар
... где <?> - первый непробельный символ перед курсором. Команда d elete back-un T il удаляет все вплоть до символа <?> * 1074, но не включает *, который в данном случае является символом o в конце "foo".
d т 1085 * <?>:
foo_ bar
& Rarr;
foob & # x0332; ар
Как и в предыдущей команде, мы можем использовать d elete un t il (со строчной буквой "t") для удаления символов forward до следующего <?> символа (для этого примера b в строке "bar"). Это дает тот же результат, что и d w для целей этого вопроса.
д г ш :
foo _ bar
& Rarr;
foob & # x0332; ар
Если наш курсор расположен в середине пробела, мы можем использовать команду d elete i nner w ord удалить пробелы с обеих сторон.
* 1 126 * д * +1127 * / * ** 1 129 1130 * * & тысяча сто тридцать два # x21b5; <?>:
foo_ \n
bar
& Rarr;
foob & # x0332; ар
Если пробел, который мы хотим удалить, включает в себя разрывы строк, мы можем использовать команду, показанную выше, чтобы d выбирать до совпадения с шаблоном <?> где шаблон в данном случае является просто первым непробельным символом. Как показано, нажмите Введите для завершения этой команды.
Когда первый непробельный символ встречается в начале строки после разрыва, Vim удалит пробел, но оставит цель на следующей строке. Нам нужно добавить J к вышеприведенной команде к J oin в строках (заглавная буква "j").
д / & # x21b5; * ** 1165 тысяча сто шестьдесят-четыре * J * * +1166 <?>:
foo_ \n
bar
& Rarr;
foob & # x0332; ар