Copier-coller Vim sur les terminaux

19

Le vim habituel yanket pastene fonctionne que dans la même fenêtre (mais fonctionne sur tous les fichiers et ferme / sauvegarde les commandes). Est-il possible de le faire fonctionner à travers les terminaux (tirer d'une fenêtre dans un terminal et coller dans un autre) et si oui, comment?


la source

Réponses:

30

La chose la plus simple à essayer est probablement de mettre set clipboard=unnameden place .vimrcet de redémarrer vos sessions vim.

Cela vous permet d'exécuter yank(par exemple yy) dans une fenêtre, et put(par exemple p) dans une autre fenêtre fonctionnera simplement, car toutes les sessions vim partageront le même tampon de sélection X.

À la baisse, votre tampon yank sera écrasé dès que vous sélectionnez du texte dans une autre fenêtre de n'importe quelle application.

À la hausse, cela signifie également que tout ce que vous tirez dans vim peut maintenant être collé dans n'importe quelle application en cliquant avec le bouton central.

Si vous n'aimez pas de cette façon, vous pouvez taper "+ou "*avant votre yank et mettre des commandes, par exemple "+yypour tirer une ligne.

Les +formulaires interagissent avec le presse-papiers ( "+yc'est comme Ctrl+ C, "+pc'est comme Ctrl+ V).
Les *formulaires interagissent avec le tampon de sélection ( "*yc'est comme un clic gauche et un glisser, "*pc'est comme un clic du milieu).

Voir Faire des sélections GUI , Prise en charge de la sélection X11 et les options du presse - papiers et de la souris pour plus de détails.

Mikel
la source
3
Dieu j'aime le clic du milieu. :)
Dan M.
set clipboard=unnamedne fonctionne pas pour moi (je l'ai mis en .vimrc et redémarré toutes les sessions vim). Malheureusement, les autres méthodes non plus. Il semble que mon vim ne soit pas compilé avec x-support. J'utilise VNC pour me connecter à une machine Linux à partir d'une machine Windows.
3
Oui, cette méthode nécessite le support X11. Exécutez :echo has('x11'), si le support X est activé, il s'imprimera 1.
Mikel
0

Si vous souhaitez copier un fichier entier dans votre fichier cible.

Ouvrez votre fichier cible dans vim.

Placez votre curseur où vous le souhaitez et tapez ce qui suit:

:r /path_to_file/file.ext

Cela copiera un fichier entier à l'endroit où se trouve votre curseur ...

no1uknow
la source