Как мне удалить следующую строку в vim?

10

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

Джейсон Бейкер
источник

Ответы:

5

Как это:

:+1d
Игнасио Васкес-Абрамс
источник
16

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

Мой ответ: jddk

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

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

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

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

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

Крис В. Ри
источник
1
Хайкл быстрее в любом случае. Я никогда не использовал клавиатуру, на которой не было клавиш со стрелками, и я начал высоко ценить эффективность этих назначений клавиш примерно через 10 минут после того, как перестал раздражаться из-за их неинтуитивности.
интуитивно
4

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

К Робинсон
источник
Спасибо что подметил это! Очень подробный и информативный ответ о гроккинге vim и vi.
Крис В. Ри
2

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

Джо Бэйн
источник
0

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

coneslayer
источник
или введите Ndd, где N - количество удаляемых строк. скажем, чтобы удалить текущую и следующие две строки (всего 3), введите 3dd
quack quixote