10

В emacs, когда я хочу удалить несколько строк текста, я просто использую Ck, пока весь текст не исчезнет. Тем не менее, в VIM это кажется немного сложнее. Я знаю, что могу сделать d$ чтобы удалить до конца строки, и dd чтобы удалить всю строку, на которой я нахожусь, но как мне удалить всю следующую строку?

5 ответов5

16

Предположение: вы хотите в конечном итоге на линии, на которой вы начали.

Мой ответ: jddk

  • j (опускается)
  • дд (удаляет текущую строку)
  • к (движется вверх)

Попробуйте - это быстро! На самом деле, это на два нажатия меньше, чем принятый в настоящее время ответ, потому что:

  1. вам не нужно удерживать [Shift] чтобы ввести двоеточие ':' и плюс символы '+', и
  2. вам не нужен подразумеваемый [Enter] в конце последовательности, так как jddk вводится все в визуальном режиме, а не в командном режиме.

Плюс ко всему, jddk находится на домашнем ряду клавиатуры.

Я провел много времени, используя h, j, k, l для навигации по vi , задолго до того, как программное обеспечение эмуляции терминала, которое я использовал, начало поддерживать клавиши со стрелками. (Я говорю о ~ 20 лет назад ;-)

4

Я настоятельно рекомендую прочитать этот ответ в переполнении стека, которое получило более 500 голосов: https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118 - ответ длинный, но помогает понять, почему vim мощный ...

4

Как это:

:+1d
2

Вы также можете быть заинтересованы в визуальном режиме. Просто используйте v чтобы ввести, и y чтобы восстановить или d чтобы удалить. Проверка :help - отличное место, когда вы застряли. Например :help delete даст вам руководство для большинства обычных команд удаления.

0

Если вы хотите удалить несколько строк подряд, вы можете использовать dd чтобы удалить строку, на которой вы находитесь, затем продолжайте нажимать (или удерживать) . (точка), чтобы повторить команду.

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