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.

Canopus
la source

Réponses:

174

Essayez d'utiliser

<ctrl+r>"

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

Mykola Golubyev
la source
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:

soulmerge
la source
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...

Tour
la source
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
grégoire
la source
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> *
SysCoder
la source
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
Nathan Fellman
la source
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.

abc
la source