Como cortar uma linha inteira no vim e colá-la?

198

Eu sei como usar o vcomando no vim, mas preciso de algo que exclua uma linha inteira e me permita colar a mesma linha em outro lugar.

VivekVarade123
fonte

Respostas:

84

Pressionar Shift+ vselecionaria a linha inteira e pressionar a dexcluiria.

Você também pode usar dd, ou seja, não requer que você entre no modo visual.

Programador123123
fonte
38
Ou você pode pressionar vv ou dd, que são equivalentes sem o modo visual irritante ser ativado.
jaked122
13
ddmais fácil do que shift + v->d
Kolob Canyon
1
que tal desfazer ... Estou testando meus documentos e não consigo desfazê-los.
Abhishek saharn
19
Que tal colar ??
Becko
1
Normalmente eu não deixo comentários, mas o fato de esse cara não ter dito como colar e ainda ter a resposta aceita fez o meu dia
Cristian E.
422

ddno modo de comando (depois de pressionar escape) cortará a linha, pno modo de comando será colado.

Atualizar:

Para um bônus, de então um movimento cortará o equivalente a esse movimento, assim dwcortará uma palavra, d<down-arrow>cortará esta linha e a linha abaixo d50wcortará 50 palavras.

yyé uma linha de cópia e funciona como dd.

D corta do cursor até o final da linha.

Se você usou v(modo visual), tente V(modo de linha visual) e <ctrl>v(modo de bloqueio visual).

DaedalusFall
fonte
13
Boa resposta. Eu adicionaria Ppara colar a linha antes do cursor no modo de comando. E <Ctrl-R>"para colar a linha no modo de inserção.
Birei
13
E ]pcolar com recuo correto. Mas devemos ter cuidado para não publicar o manual inteiro do vim aqui :).
DaedalusFall
16

Existem várias maneiras de cortar uma linha, todas controladas pela dtecla no modo normal. Se você estiver usando o modo visual (a vtecla), basta pressionar a dtecla depois de destacar a região que deseja cortar. Vá para o local que você deseja colar e pressione a ptecla para colar.

Também vale mencionar que você pode copiar / recortar / colar dos registros. Suponha que você não tenha certeza de quando ou onde deseja colar o texto. Você pode salvar o texto em até 24 registros identificados por uma letra alfabética. Basta acrescentar seu comando com '(aspas simples) e a letra do registro (a a z). Por exemplo, você pode usar o modo visual ( vtecla) para selecionar algum texto e digitar 'adpara recortar o texto e armazená-lo no registro 'a'. Depois de navegar para o local em que deseja colar o texto, você digitaria 'appara colar o conteúdo do registro a.

dsummersl
fonte
14

Exclua a linha atual e copie para a área de transferência:

d + d

Cole o conteúdo da área de transferência :

(Mantenha pressionado) Shift+P

Kolob Canyon
fonte
12

Digamos que você queira cortar a linha bbbe colá-la sob a linha---

Antes:

aaa
bbb
---

Depois de:

aaa
---
bbb
  1. Coloque o cursor na linha bbb
  2. Pressione d+d
  3. Coloque o cursor na linha ---
  4. pressione p

insira a descrição da imagem aqui

comando personalizado
fonte
11
  1. pressione 'V' no modo normal para selecionar a linha inteira
  2. depois pressione 'y' para copiá-lo
  3. vá para o local em que deseja colar e pressione 'p' para colar após o cursor ou 'P' para colar antes dele.
ojas mohril
fonte
7

A maneira mais rápida que encontrei é através do modo de edição:

  1. Pressione yypara copiar a linha.
  2. Em seguida, ddpara excluir a linha.
  3. Em seguida, pcole a linha.
Vadoff
fonte
4

Apenas três passos.

  1. No modo de comando, vá para a posição inicial do texto que deseja copiar e pressionev
  2. Vá para a posição final do texto e pressioned
  3. Vá para o local que deseja colar e pressionep
sumedhe
fonte