2009-05-25 8 views
102

Je souhaite savoir s'il existe un moyen de coller du texte saisi dans la fenêtre de commande. Par exemple. Si j'ai tapé un mot et que je veux le greffer à un endroit je ne peux pas simplement coller le mot en utilisant 'p'. Cependant, si je le copie dans le presse-papier, Shift-Insert va coller la même chose.Comment copier le texte saisi dans l'invite de commande VI

Y a-t-il des réglages disponibles qui me permettraient de coller du texte saisi dans l'invite de commande de vim? J'utilise gvim sous Windows.

Répondre

147

essayez d'utiliser

<ctrl+r>" 

où "signifie registre par défaut.

+7

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

+22

Si vous utilisez '*' au lieu de '" ', vous obtiendrez le contenu du presse-papiers à la place (ce qui pourrait être pratique) –

34

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

+8

De la merde,' q: 'est génial – Hubro

12

En mode normal, appuyez sur :, puis sur ctrl-r, puis sur "

+2

Techniquement, une fois que vous appuyez sur:, vous n'êtes plus en mode normal – graywh

+0

@graywh - bon point! – Rook

3

Vous pouvez tirer vers le presse-papiers en utilisant le tampon nommé *. Par exemple, cette copie la ligne courante dans le presse-papiers:

"*yy 

Vous pouvez copier une ligne en utilisant cela, puis le coller avec décalage insertion dans la ligne de commande.

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

"*p 
2

+ de presse-papiers, sur Mac au moins. Vous devez donc écrire "+yy pour insérer une ligne dans le presse-papiers et "+p pour coller. Bien que vous puissiez toujours utiliser Command-C et Command-V.

5

S'il 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> *
9

Pour enregistrer Si vous placez un curseur sur le mot que vous voulez utiliser dans Ex, utilisez:

<ctl-r><ctl-w> 

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

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