Le moyen le plus efficace de remplacer la totalité du tampon?

10

Actuellement, j'ai deux méthodes similaires pour remplacer le tampon entier par un autre texte (disons dans le presse-papiers).

Méthode n ° 1:

  1. supprimer toutes les lignes: :%d.

  2. coller du texte: "+P(ou similaire:) :put+.

Méthode n ° 2:

  1. sélectionner visuellement toutes les lignes: ggVG.

  2. coller le texte: "+P.

Cependant, je n'arrivais pas à trouver un moyen de tir unique pour le faire. Le plus proche que j'ai trouvé est la :changecommande. Mais cela ne semble pas bien fonctionner avec les registres. Bien sûr, je peux créer une fonction et / ou mapper une clé pour le faire. Mais avant de pouvoir faire toutes ces personnalisations, je veux m'assurer:

Existe-t-il une commande intégrée pour remplacer une plage de lignes par un autre texte? Comme, vous pourriez :%replace+remplacer le tampon entier par du texte dans le presse-papiers?

Naitree
la source
2
Je ne sais rien du haut de ma tête, mais si vous faites beaucoup de choses, pourquoi ne pas créer un mappage / commande?
Matt Boehm
5
Hmm, ce 1,$s/\_./\=@+n'est pas une solution: P, :%d|put+c'est plus proche, mais pas tout à fait là.
Runium
1
J'ai oublié un astérisque après le point ... 1,$s/\_.*/\=@+, où \_.correspond à n'importe quel caractère, y compris la nouvelle ligne.
Runium
2
Avez - vous avez de réutiliser le tampon, ou serait - il acceptable de commencer un nouveau tampon?
200_success
3
Je pense que Sukminder :%d|put+correspond au projet de loi. C'est court et mémorable. L'autre commande est tout simplement trop mystérieuse pour être mémorisée et saisie correctement.
Lie Ryan

Réponses:

2

Vous pouvez faire ggvG<CTRL-G>pour sélectionner visuellement l'ensemble du tampon et entrer Select-mode. C'est le moyen le plus simple de remplacer le tampon par du texte que vous prévoyez de taper. Vous pouvez même être en mesure de faire un Select-modemappage avec :smapqui résout votre problème.

Aaron Massey
la source
0

Une façon de remplacer le tampon entier par votre presse-papiers peut être via une commande externe, par exemple:

:%!pbpaste
:%!echo my_text

Voir aussi: Partage du presse-papiers de Mac OS X

Ou en utilisant la substitution:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

Vous pouvez également utiliser :%d|put+(comme déjà suggéré dans les commentaires).

Kenorb
la source