Avec des insertions, il est très facile de nettoyer un mot / une section et d'insérer dessus, comme
cw code> supprimer jusqu'à la fin du mot (avec espace) puis passer à l'insertion MODE LI>
-
CE code> Supprimer jusqu'à la fin du mot (sans espace) puis passer à l'insertion MODE LI>
-
c3w code> Supprimer jusqu'à la fin des 3 mots suivants (avec espace) puis accédez au mode Insérer LI>
-
ct. code> Supprimer jusqu'à la période avant la période d'insérer li>
-
C $ code> Supprimer jusqu'à la fin de la ligne, puis passez en mode Insérer Li>
ul> Comment puis-je faire cela avec des opérations de pâte? Souvent, j'ai une ligne comme si tellement p> xxx pré> et je le change à p> xxx pré> et yank ( yw code>) "Lee", mais maintenant si je supprime ( dw code>) "Smith" de "Jane Smith", je n'ai plus "Lee" dans le registre pour coller. Je sais que je peux utiliser les registres nommés. De plus, je suis sûr que je peux utiliser le mode visuel. Cependant, j'ai pensé que cela est une tâche assez courante, il y aurait un moyen d'utiliser les opérateurs de mouvement ( E code>, w code>, t code> / t code>, f code> / f code>, $ code>, 0 code>) avec la commande Coller à spécifier quoi coller. p> p>
4 Réponses :
OH Oui, ce que vous voulez est le registre ultra pratique (sarcasme) Blackhole: sélectionnez en mode visuel La pièce que vous souhaitez remplacer, à l'aide du mouvement que vous souhaitez (comme Le registre de trou noir vw code>), puis " kbd> _ kbd> x kbd> p kbd>. p>
_ code> est un registre spécial s'apparente à
/ dev / null code>. L'opération
" code> définit le registre de destination du texte que vous êtes sur le point de remplacer, et donc
" _ code> garantit que le registre "Smith" non désiré atteint le registre Blackhole. Ainsi, "Lee" est préservé dans le registre
" code>. Je vous recommande d'utiliser des macros pour aider si vous le faites plusieurs fois de suite. P>
Je réalise que cette réponse est compliquée et mélange plusieurs concepts - espérons que c'est utile cependant, et j'aimerais voir s'il y a de meilleurs moyens d'accomplir cela. C'est simplement le meilleur moyen que je puisse penser (et que j'utilise assez souvent).
C'est vraiment une façon différente d'aborder la pâte aux registres. +1 pour référencer / dev / null code>
Je pense que le mode visuel est la voie à suivre. Vous activez simplement le mode visuel avec v kbd> ou v kbd> (si vous souhaitez écraser les lignes entières à l'heure), utilisez les opérateurs de mouvement de la manière habituelle pour sélectionner la zone à être remplacé puis collez. Vous profitez de ce que vous savez déjà. P>
v kbd> p kbd> écrase la ligne actuelle. v kbd> w kbd> p kbd> écrase le mot actuel. P>
Vous pouvez trouver un aperçu des alternatives du Vim Wikia . < / p>
I no longer have "Lee" in the register to paste back. Actually, Lee is in reg:0, there are at least two ways to paste back.Method 1 move cursor to Lee, yw move cursor to Smith, dw "0P Method 2 move cursor to Lee, yw move cursor to Smith, cw Ctrl-R+0
Vous pouvez toujours faire une cartographie personnalisée, j'ai les suivants:
Quelles pâtes sur le mot intérieur nnoremap, pw viw "0P code> p>
) code> le dernier texte timoré. Notez que j'utilise le registre 0, je peux donc coller autant de fois que je veux, sans perdre le texte tiré. Malheureusement, vous devez écrire quelques autres mappages. J'aime avoir Un mappage à la coller
à l'intérieur de la citation code>,
entre les crochets internes code> et
à l'intérieur des parenthèses code>: p>
Je me demande s'il est pratique de savoir un mappage qui accepte des arguments puis utilise toujours le registre 0