Como você exclui todo o texto acima de uma determinada linha

239

Como você exclui todo o texto acima de uma determinada linha. Para exclusão abaixo de uma linha, eu uso "d shift g"

user339108
fonte

Respostas:

491
dgg

excluirá tudo da sua linha atual até a parte superior do arquivo.

dé o comando de exclusão e ggé um comando de movimento que diz ir para a parte superior do arquivo; portanto, quando usados ​​juntos, significa excluir da minha posição atual para a parte superior do arquivo.

Além disso

dG

excluirá todas as linhas iguais ou abaixo da atual

Andy White
fonte
25
E o kdgg fará o mesmo, exceto não excluir a linha em questão.
Rook
1
O que exatamente significa a ggexclusão depois?
3
gg é um atalho do Vim - ": help gg" diz: Goto line [count], primeira linha padrão, no primeiro caractere não em branco | linewise |. Se startofline 'não estiver definido, mantenha a mesma coluna.
Andy White
35
Para quem procura, dGexcluirá todas as linhas iguais ou inferiores à atual.
dimo414
1
@ dan3 Acho que o significado de "parte superior do arquivo" é bastante claro com base na pergunta, mas você pode editar minha resposta, se quiser, ou pode criar sua própria resposta usando a terminologia que desejar.
Andy White
38

:1,.dexclui as linhas 1 para atual.
:1,.-1dexclui as linhas 1 acima da corrente.

(Pessoalmente, eu usaria dggou kdgggostaria das outras respostas, mas TMTOWTDI.)

efémero
fonte
27
Eu tentei, TMTOWTDImas apenas parece me deixar no modo de inserção sem excluir nada?
Php demais)
12
O TMTOWTDI não é uma das mais de uma maneira de fazê-lo.
22410 Sarah
3
tmtowtdi Há mais de uma maneira de fazer isso (TMTOWTDI ou TIMTOWTDI, pronunciado "Tim Toady") é um lema do Perl.
vaichidrewar
@toomuchphp O comentário foi fantástico. Mas o nome de usuário ... que o tornou perfeito. +1 para você.
Parthian Shot
38
kdgg

exclua todas as linhas acima da atual.

Torre
fonte
5
Isto é um pouco confuso; na verdade, ele está movendo o cursor para cima de uma linha ke excluindo a linha atual e para cima dgg.
precisa saber é o seguinte
2
E uso 5kdgg para excluir todas as linhas 5 linhas acima da atual;)
van den Akker Stefan
8

d1G = excluir para o topo, incluindo a linha atual (vi)

mikiedba
fonte
6

Fornecendo que você conheça estes comandos vim:

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

então, o seguinte faz mais sentido, é mais unitário e mais fácil de lembrar do IMHO:

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

Felicidades.

Lian Sebe
fonte