Como posso excluir uma linha sem colocá-la no meu buffer padrão?
Exemplo:
line that will be copied.
line that I want to be substitued with the previous one.
O que estou tentando fazer:
yy
dd
p
Mas o Vim substitui a string copiada recentemente pela excluída (cortada). Eu sei que eu posso usar tampões como, "1yy
, dd
em seguida "1p
, mas sempre se esqueça de colocar a corda copiado em um buffer então eu preciso para colar meus conteúdos primeiro (linha que será copiado) e exclua o que eu quero (linha que eu quero para ser substituído pelo anterior.)
Como posso realmente excluir um texto no Vi (m) sem copiá-lo?
Outra questão relacionada é como posso encaminhar excluir uma palavra no modo de inserção? Eu quero algo semelhante ao Ctrl+ w.
vim
copy-paste
MaikoID
fonte
fonte
Respostas:
Use o "registo buraco negro",
"_
para realmente apagar alguma coisa:"_d
.Use
"_dP
para colar algo e mantê-lo disponível para colar ainda mais.Para a segunda pergunta, você poderia usar
<C-o>dw
.<C-o>
é usado para executar um comando normal sem sair do modo de inserção .Você pode configurar seus próprios mapeamentos para economizar digitação, é claro. Eu tenho estes:
fonte
d
ainda "corta" ep
ainda "cola", enquanto<leader>d
exclui para real e<leader>p
joga fora o texto selecionado e cola o conteúdo do registro padrão.<leader>p
permite colar o mesmo texto várias vezes sem precisar usar registros nomeados.O registro do buraco negro
"_
fará o truque, mas há uma solução melhor:Ao inserir a linha de volta com o
p
comando, você está colando o conteúdo do registro padrão (volátil)""
, que foi substituído pordd
. Mas você ainda pode colar a partir do registro yank (não volátil)"0
, que não será sobrescrito pelo comando deletedd
.Portanto, estes são os comandos que você deseja usar conforme o seu exemplo:
fonte
Essa é uma das coisas que eu não gostei no vim ... acabei mapeando
dd
para o registro do buraco negro no meu .vimrc e a vida tem sido boa desde:fonte
v/V
comx
também é cortado. E cortar comx
também é coerente comCtrl + x
qualquer sistema operacional.os seguintes mapeamentos produzirão:
Além disso, é uma boa prática ter a chave "líder" definida como vírgula, por exemplo:
esses dois trechos tornarão ", d" o seu novo comando de corte.
Se você deseja usar esses mapeamentos em conjunto com uma configuração compartilhada da área de transferência do sistema, consulte mais detalhes em https://github.com/pazams/d-is-for-delete
fonte
yydd
que era um pouco insustentável em meus dedos;-)
.,dd
. Depois de adicioná-nnoremap <leader>dd ""dd
lo, começou a funcionar #Você pode usar
"_d
para impedir que coisas sobrescrevam seu texto arrancado. Você pode armazenar texto arrancado ou excluído em qualquer registro que desejar"
, e_
é o registro do 'buraco negro', para o qual envia coisas que não lhe interessam.Para mais informações, você pode digitar
:help "_
ou:help deleting
fonte
Quando estiver no modo visual,
x
excluirá a seleção; portanto, se você deseja excluir uma linha inteira, primeiro pressioneV
para selecionar a linha no modo visual e, em seguida, pressionex
para excluir a seleção.fonte