Como posso excluir todas as linhas de um arquivo usando o vi?

Como posso excluir todas as linhas de um arquivo usando o vi?

Como posso excluir todas as linhas de um arquivo usando o vi?

No momento eu faço isso usando algo assim para remover todas as linhas de um arquivo:

echo > test.txt

Como posso excluir todas as linhas usando vi?

Observação: Usar ddnão é uma boa opção. Pode haver muitas linhas.

Responder1

Em vifazer

:1,$d

para excluir todas as linhas.

O :introduz um comando (e move o cursor para baixo).
Isso 1,$é uma indicação de quais linhas o seguinte comando ( d) deve funcionar. Neste caso o intervalo da linha um até a última linha (indicado por $, portanto você não precisa saber o número de linhas do documento).
O final dsignifica excluir as linhas indicadas.

Existe uma forma mais curta ( :%d), mas nunca a uso. O :1,$dpode ser mais facilmente "adaptado" para, por exemplo, :4,$-2ddeixar apenas as 3 primeiras e as 2 últimas linhas, excluindo o resto.

Responder2

No vi eu uso

:%d

onde

  • :diz ao vi para entrar no modo de comando
  • %significa todas as linhas
  • d: excluir

Na linha de comando,

> test.txt

também fará.

Qual é o problema com dd?

dd if=/dev/null of=test.txt

onde

  • /dev/nullé um arquivo especial de 0 bytes
  • ifé o arquivo de entrada
  • ofé o arquivo de saída

Responder3

Eu recomendo que você faça isso (deve funcionar em qualquer shell compatível com POSIX):

> test.txt

Se você realmente quiser fazer isso com o vi, você pode fazer:

  • 1G (vá para a primeira linha)
  • dG (excluir até a última linha)

Responder4

Se o seu cursor estiver na primeira linha (se não, digite: ggou 1G), então você pode simplesmente usar dG. Isso excluirá todas as linhas da linha atual até o final do arquivo. Portanto, para ter certeza de excluir todas as linhas do arquivo, você pode misturar as duas, o que seria: ggdG(enquanto estiver no modo de comando).

Ou %dno modo Ex, exemplo de linha de comando: vim +%d foo.bar.

Relacionado:Como posso excluir no VIM todo o texto da linha atual até o final do arquivo?

informação relacionada