7

Мой курсор находится на последнем символе слова в Vim. Не перемещая курсор, есть ли краткий способ удалить текущее слово и слово перед ним?

Насколько я могу судить, единственный способ удалить текущее слово - использовать diw . Использование db оставляет символ под курсором (который оказывается последним символом).

3 ответа3

3

Я бы сделал 2dbx или vbbd . Или v5bd если нужно удалить 5 слов.

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

1

Двигающиеся назад действия (например, db) вступают в силу от границы перед курсором.

Вероятно, ваш самый простой способ сделать это что-то вроде xd2b - он сначала заботится о символе под курсором.

Обычно я предпочитаю использовать Bdw (или wdB) при удалении целых слов, так как это не оставляет двойного пробела там, где было слово. Очевидно, это зависит от контекста ваших действий и того, чего еще вы пытаетесь достичь.

0

Это звучит как то, что вы после:

Приготовьтесь к тому, чтобы ваш разум был взорван:

dvb

Vim проводит различие между инклюзивным и эксклюзивным движением. v переключает "включенность" или "исключительность" движения. Для примера переключения противоположного направления (включительно => эксклюзивно), попробуйте его с помощью e:

dve

Смотрите :help включительно для объяснения. До сих пор вы думали, что это просто эзотерическая чепуха! Не так ли? Не так ли ?! (По крайней мере, мои глаза закрывались, когда я читал этот раздел в справке ... :)

источник: https://www.reddit.com/r/vim/comments/24wbuz/command_to_delete_one_full_word_backwards/chbbkfk/

Таким образом, в конце строки вы можете удалить два слова назад - включая символ под курсором в конце строки - с помощью d2vb .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .