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


10

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

Ответы:



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для удаления строки, на которой вы находитесь, затем продолжайте нажимать (или удерживать) .(точка), чтобы повторить команду.


или введите Ndd, где N - количество удаляемых строк. скажем, чтобы удалить текущую и следующие две строки (всего 3), введите 3dd
quack quixote
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.