Vim, удали в строку n

4

Я часто редактирую файлы, где мне нужно удалить все, кроме пяти первых и трех последних строк. Я делаю это, переместившись в шестую строку и напечатав ":,. $ - 3 d". Есть ли способ сделать то же самое, используя d и какое-то движение?

Джонни
источник

Ответы:

5

Уверенный! d[num]Gгде [num]номер строки назначения. Любая другая команда движения также будет работать, а не G, конечно.

Чтобы удалить первые пять и последние три строки, предполагая, что вы только что открыли файл и находитесь в первой строке, это будет:

d5G   # delete from current position to line 5
G     # jump to last line
d2k   # delete from current position to 2 lines up (3 lines total)

Редактировать: Просто перечитайте вопрос и увидите, что я понял ваши намерения задом наперед - вы хотите сохранить первые пять / последние три, а не удалять их. В этом случае это:

G     # jump to last line
3k    # up 3 lines
d6G   # delete from current position to line 6
Дейв Шерохман
источник
Спасибо за ваш ответ. Я всегда пытался сделать это наоборот, позиционируя себя в шестой строке, пытаясь переместиться (удалить) в строку $ -3.
Джонни