excluir linha no vi

170

Como posso excluir uma linha no VI?

Aqui está o que estou fazendo agora:

  1. Abra o terminal alt+ ctrl+t
  2. vi a.txt
  3. Movo o cursor para a linha que desejo excluir, então qual combinação de teclas deve ser usada para excluir a linha no editor vi ?
IM-JM
fonte
5
Sugiro que você leia washington.edu/computing/unix/vi.html, que fornece uma visão geral básica do uso. Aqui está uma cheatsheet: tuxfiles.org/linuxhelp/vimcheat.html É sempre uma boa idéia para dar uma olhada em páginas como que antes de fazer perguntas triviais ...
Polemon
2
há também S para apagar uma linha e entrar inserção
Ben Creasy

Respostas:

291

Pressionar ddremoverá essa linha (na verdade, será cortada). Então você pode colá-lo via p.

Gert
fonte
22

Como outros disseram, é ddse você estiver no modo normal (pressione ESC) para garantir que está no modo normal, mas, por padrão, estará. Você pode ter descoberto que o vi não age como você esperaria que um editor atuasse. É bastante exclusivo, e esses recursos exclusivos o tornam extremamente poderoso e rápido de trabalhar. Se você quiser saber mais, pode executar vimtutorna linha de comando e obterá um tutorial rápido (talvez uma hora de leitura / experimentação) sobre os conceitos básicos de como usá-lo.

Agora, você pode usar um editor com uma interface mais familiar. A maioria dos sistemas possui nano. Você pode digitar nano a.txtpara abrir seu arquivo nano. Você pode ir além - não há motivo para usar um editor baseado em terminal. Como você mencionou o uso de ( Ctrl+ Alt++ T) e este é o atalho padrão no Ubuntu e em outras distribuições do Gnome, ficaria surpreso se você não tivesse geditinstalado. Na linha de comando, tente gedit a.txte você obterá um editor gráfico.

Shawn J. Goff
fonte
Algumas pessoas precisam disso. Se você editar arquivos de texto regularmente, vale a pena aprender o vim. Se não, e você está apenas tentando seguir algumas instruções para fazer algo funcionar, provavelmente não vale a pena, a menos que você esteja interessado apenas em experimentar software diferente e aprender coisas novas.
Shawn J. Goff
Disparei o vimtutor na linha de comando e ele abriu um vim, com uma temperatura. Arquivo. Eu cometi algum erro?
IM-JM
@ im-jm Acho que você não cometeu um erro, mas seu sistema pode ter uma configuração incomum. Ele deve abrir um documento que comece com "Bem-vindo ao tutor do VIM". Se você estiver interessado em resolver isso, poste outra pergunta.
Shawn J. Goff
12

Para excluir a linha sob o cursor, use dd.

O comando delete aceita todos os modificadores posicionais normais; portanto, se você estiver no início da linha abaixo da que deseja excluir, basta dkentrar no modo de exclusão e subir uma linha, excluindo tudo o que o cursor passou.

Você também pode especificar a repetição, para 5ddexcluir a linha sob o cursor cinco vezes, efetivamente excluindo as quatro linhas atuais e as seguintes.

Caleb
fonte
8
Or d5d. Não sei por que, mas prefiro isso. (Curiosidade: NdMdexclui linhas N × M )
Random832 15/04
7

Esc dd depois de ir para a linha que você deseja excluir

Anoop
fonte
2
A fuga não é necessária, se você puder ir para a linha que deseja excluir.
Anthon
3
A fuga é necessária se você usar as teclas de seta no modo de inserção para ir para a linha direita.
411 Alexander
1

No modo visual,

shift + v, escolha as linhas e, em seguida, d

ctrl + v, escolha as colunas e depois d

Ben
fonte