Comment copier du texte copié dans l'invite de commande VI


118

Je veux savoir s'il existe un moyen par lequel je peux coller du texte copié dans la fenêtre de commande. Par exemple, si j'ai tiré un mot et que je veux le grepter à un endroit, je ne peux pas simplement coller le mot en utilisant «p». Cependant, si je le copie dans le presse-papiers, Shift-Insert collera la même chose.

Y a-t-il un ajustement disponible qui me permettrait de coller du texte copié dans l'invite de commande vim?

J'utilise gvim sous Windows.

Réponses:


174

Essayez d'utiliser

<ctrl+r>"

où "représente le registre par défaut.


7
Notez que cela fonctionne également en mode d'insertion normal, pas seulement sur la ligne de commande.
user55400

25
Si vous utilisez à la *place de ", vous obtiendrez le contenu du presse-papiers du système à la place (ce qui peut être pratique).
dash-tom-bang

40

<C-R>"Collera le tampon par défaut. Vous pouvez également utiliser q:pour ouvrir un tampon pour la commande suivante. essayer:help q:


10
Holy crap, q:is
Beyond

19
  • assurez-vous d'abord que vous êtes en mode normal en appuyant sur Esc
  • une fois en mode normal, appuyez sur :
  • puis utilisez la combinaison de touches ctrl-r, puis tapez"

Remarque: si vous copiez une ligne complète contenant le chemin de fichier relatif, le saut de ligne sera également collé ... :! touch src/bash/script.sh^M

CRÉERA un "chemin de fichier amusant" contenant le "\ r" si vous ne supprimez pas le dernier ^M...


13

Pour vous épargner une étape de tirage, si votre curseur est sur le mot que vous souhaitez utiliser en Ex, utilisez:

 <ctl-r><ctl-w>

Cela évite de tirer pour coller dans la ligne de commande; à la place, on colle le mot sous son curseur directement sur la ligne de commande. Par exemple:

:%s/<ctl-r><ctl-w>/foo/g

5

Si c'est juste un mot que vous souhaitez copier, vous pouvez utiliser <C-r><C-w>

  1. Placez votre curseur sur le mot
  2. Ensuite, vous pouvez taper quelque chose comme :vim <C-r><C-w> *

3

Vous pouvez extraire le presse-papiers en utilisant le *tampon nommé. Par exemple, cela copiera la ligne actuelle dans le presse-papiers:

"*yy

Vous pouvez donc copier une ligne en utilisant ceci, puis la coller avec shift-insert dans la ligne de commande.

De même, vous pouvez coller à partir du presse-papiers comme ceci:

"*p

2

Le presse-papiers +, au moins sur Mac. Donc, vous écrivez "+yypour tirer une ligne dans le presse-papiers et "+ppour coller. Bien que vous puissiez toujours utiliser Command-C et Command-V.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.