Как удалить весь текст над определенной строкой

239

Как удалить весь текст выше определенной строки. Для удаления ниже строки я использую «d shift g»

user339108
источник

Ответы:

493
dgg

удалит все из вашей текущей строки в начало файла.

dэто команда удаления, и ggэто команда перемещения, которая говорит перейти в начало файла, поэтому при совместном использовании это означает удаление из моей текущей позиции в начало файла.

Также

dG

удалит все строки в или ниже текущей

Энди Уайт
источник
25
И kdgg сделает то же самое, за исключением того, что не удалит соответствующую строку.
Ладья
1
Что именно означает ggудаление после удаления?
3
gg - это ярлык Vim - ": help gg" говорит: Перейти к строке [число], первая строка по умолчанию, на первый непустой символ | linewise |. Если startofline 'не установлен, оставьте тот же столбец.
Энди Уайт
35
Для тех, кто ищет его, dGбудут удалены все строки в или ниже текущей.
dimo414
1
@ dan3 Я думаю, что значение «top of the file» довольно ясно, основываясь на заданном вопросе, но вы можете редактировать мой ответ, если хотите, или вы можете создать свой собственный ответ, используя любую терминологию, какую пожелаете.
Энди Уайт
38

:1,.dудаляет строки 1 до текущей.
:1,.-1dудаляет строки от 1 до текущего.

(Лично я бы использовал dggили kdggхотел бы другие ответы, но TMTOWTDI.)

ephemient
источник
27
Я пытался, TMTOWTDIно кажется, что он оставляет меня в режиме вставки, ничего не удаляя?
слишком много php
12
TMTOWTDI - не один из способов сделать это.
Сара
3
tmtowtdi Существует несколько способов сделать это (TMTOWTDI или TIMTOWTDI, произносится «Tim Toady») - это девиз Perl.
vaichidrewar
@toomuchphp Комментарий был фантастическим. Но имя пользователя ... это сделало его идеальным. +1 тебе.
Парфянский выстрел
38
kdgg

удалить все строки выше текущей.

ладья
источник
5
Это немного сбивает с толку; это на самом деле перемещение курсора вверх на строку с k, затем удаление текущей строки и вверх с помощью dgg.
dimo414
2
И используйте 5kdgg, чтобы удалить все строки на 5 строк выше текущей;)
Стефан ван ден Аккер
8

d1G = удалить наверх, включая текущую строку (vi)

mikiedba
источник
6

Если вы знаете эти команды vim:

1G -> go to first line in file
G -> go to last line in file

тогда следующие смыслы более понятны, более унитарны и легче запомнить ИМХО:

d1G -> delete starting from the line you are on, to the first line of file
dG -> delete starting from the line you are on, to the last line of file

Приветствия.

Лиан Себе
источник