Comment puis-je supprimer une ligne sans la mettre dans ma mémoire tampon par défaut?
Exemple:
line that will be copied.
line that I want to be substitued with the previous one.
Ce que j'essaye de faire:
yy
dd
p
Mais Vim remplace la chaîne copiée récemment par la chaîne supprimée (coupée). Je sais que je peux utiliser des tampons comme, "1yy
, dd
puis "1p
, mais j'oublie toujours de mettre la chaîne copiée dans un tampon puis je dois coller mes contenus première (ligne qui sera copiée) puis supprimer ce que je veux (ligne que je veux à remplacer par le précédent.)
Comment puis-je vraiment supprimer un texte dans Vi (m) sans le copier?
Une autre question connexe est de savoir comment puis-je supprimer un mot en mode insertion? Je veux quelque chose de similaire à Ctrl+ w.
vim
copy-paste
MaikoID
la source
la source
Réponses:
Utilisez le « registre de trou noir »,
"_
à quelque chose de vraiment delete:"_d
.Utilisez
"_dP
pour coller quelque chose et le garder disponible pour un collage ultérieur.Pour la deuxième question, vous pouvez utiliser
<C-o>dw
.<C-o>
est utilisé pour exécuter une commande normale sans quitter le mode insertion .Vous pouvez bien sûr configurer vos propres mappages pour enregistrer la saisie. J'ai ceux-ci:
la source
d
toujours "coupe" etp
"colle" encore, tandis que<leader>d
supprime pour de vrai et<leader>p
jette le texte sélectionné et colle le contenu du registre par défaut.<leader>p
me permet de coller le même texte plusieurs fois sans avoir à utiliser des registres nommés.Le registre des trous noirs
"_
fera l'affaire, mais il existe une meilleure solution:Lorsque vous entrez la ligne avec la
p
commande, vous collez le contenu du registre par défaut (volatil)""
, qui a été écrasé pardd
. Mais vous pouvez toujours coller à partir du registre Yank (non volatile)"0
, qui ne sera pas écrasé par la commande de suppressiondd
.Voici donc les commandes que vous souhaitez utiliser selon votre exemple:
la source
C'est l'une des choses que je n'aimais pas à propos de vim ... J'ai fini par cartographier
dd
le registre des trous noirs dans mon .vimrc et la vie a été belle depuis:la source
v/V
avecx
est également coupé. Et couper avecx
est également cohérent avecCtrl + x
n'importe quel système d'exploitation.les mappages suivants produiront:
De plus, c'est une bonne pratique de définir la clé "leader" sur une virgule, par exemple:
ces 2 extraits feront de ", d" votre nouvelle commande de coupe.
Si vous souhaitez utiliser ces mappages ensemble avec une configuration de presse-papiers système partagé, voir plus de détails sur https://github.com/pazams/d-is-for-delete
la source
yydd
ce qui était un peu insoutenable sur mes doigts;-)
.,dd
. Après avoir ajouté,nnoremap <leader>dd ""dd
il a commencé à fonctionnerVous pouvez utiliser
"_d
pour empêcher les choses d'écraser votre texte copié. Vous pouvez stocker du texte retiré ou supprimé dans n'importe quel registre avec lequel vous voulez"
, et_
c'est le registre «trou noir», où vous envoyez des choses dont vous ne vous souciez pas.Pour plus d'informations, vous pouvez taper
:help "_
ou:help deleting
la source
En mode visuel,
x
supprimera la sélection, donc si vous souhaitez supprimer une ligne entière, appuyez d'abord surV
pour sélectionner la ligne en mode visuel, puis appuyez surx
pour supprimer la sélection.la source