68 votes

Comment remplacer-coller du texte arraché dans vim sans arracher les lignes supprimées ?

Je me retrouve donc généralement à copier du texte d'un point à un autre tout en écrasant l'ancien texte là où le nouveau est collé :

blah1
newtext
blah2
wrong1
blah3
wrong2
blah4

Supposons que je marque visuellement newtext y y ank it. Maintenant, je sélectionne wrong1 (qui peut être n'importe quoi, pas nécessairement un mot) et p aste le newtext . Cependant, si je fais maintenant la même chose avec wrong2 il sera remplacé par wrong1 au lieu de newtext .

Comment éviter que le texte qui se trouve dans la mémoire tampon ne soit échangé avec le texte que je suis en train d'écraser ?

Edit 1

Bien que j'aime beaucoup les suggestions de registres (je pense que je vais commencer à utiliser les registres plus souvent, maintenant que j'ai découvert l'option :dis ), j'opte pour une modification de la commande jinfield Je n'ai pas répondu à cette question, car je n'utilise pas le mode de permutation.

vnoremap p "0p
vnoremap P "0P
vnoremap y "0y
vnoremap d "0d

fait parfaitement l'affaire.

Edit 2

J'étais trop rapide ; romainl La solution de l'entreprise est précisément ce que je cherchais, sans le piratage de l'internet. Edit 1 .
En fait, vnoremap p "_dP est suffisant !
Donc, changement de réponse accepté.

-1voto

kawerte Points 1
vnoremap p "_c<C-r>*<Esc>

Voici une liste de mes mappings complets :

" Fix register copy/pasting  
   nnoremap DD "*dd  
   nnoremap D "*d  
   vnoremap D "*d  
   nnoremap d "_d  
   nnoremap dd "_dd  
   vnoremap d "_d  
   nnoremap s "_s  
   vnoremap s "_s  
   nnoremap c "_c  
   vnoremap c "_c  
   nnoremap x "_x  
   vnoremap x "_x  
   vnoremap p "_c<C-r>*<Esc>  

" Paste on new line  
    nnoremap ,p o<Esc>p  
    nnoremap ,P O<Esc>p

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X