Impossible de copier depuis le presse-papiers vim vers le système

46

Comme indiqué dans le titre, je ne peux pas copier de vim vers le presse-papiers du système. Viceversa fonctionne, copier à partir de vim extérieur et coller avec p est correct.

J'ai installé le support de presse-papiers, la version de vim est 7.3.429:

$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+xsmp_interact +xterm_clipboard -xterm_save 

J'ai:

set clipboard=unnamedplus

dans mon .vimrc et il est défini quand je fais:

set clipboard?

ou

:echo has('clipboard')

J'utilise Ubuntu 12.04 LTS et vim dans gnome-terminal (mais GVim a le même problème). Une idée?

Merci

    
posée gc5 19.09.2013 - 16:31
la source

3 réponses

74

C'est ce qui fonctionne pour moi (Ubuntu 13.10):

Réinstallez vim en vim-gtk:

sudo apt-get install vim-gtk

sélectionnez ce que vous voulez avec la souris - puis tapez pour copier dans le presse-papiers :

"+y

coller dans vim depuis le presse-papiers tapez:

"+p

Je ne sais pas pourquoi, mais la comparaison de la sortie de vim --version montre que l’installation habituelle de vim est assez restreinte par rapport à vim-gtk. Le remplacement de vim par vim-gtk n'affectait aucun plug-in.

Plus d'informations:

réponse donnée Raffael 16.03.2014 - 14:09
la source
4

Je vais laisser la réponse originale ci-dessous car cela peut être important pour les autres qui recherchent cette question.

En bref, il ne semble pas y avoir de solution unique, mais avec «set clipboard = unnamedplus», l’un des «* p» ou «+ p» devrait fonctionner à partir du presse-papiers «système».

'* p' est certainement celui que vous voulez. ( d'ici )

vim est un programme cli. Lorsque vous l'utilisez à l'intérieur de gnome-terminal (ou de tout émulateur de terminal), crtl + c (ou n'importe quelle combinaison de touches) est d'abord géré par l'émulateur de terminal, puis le shell, puis finalement par le programme (vim dans ce cas). vim et ctrl + c ne fonctionneront presque certainement jamais car ctrl + c envoie un signal SIGINT à la tâche en cours. vim utilise SIGINT pour arrêter d'autres opérations, telles que l'interruption du mode d'insertion ou l'arrêt des fonctions de recherche.

En d'autres termes. Ctrl + C n'est jamais réellement transmis à VIM. SIGINT est transmis à VIM. SIGINT a d'autres utilisations dans vim, donc utiliser pour copier ne fonctionnera probablement pas (et même si vous pouvez le forcer, ce n'est pas une bonne idée).

Essayez plutôt de coller avec Ctrl + Shift + C et Ctrl + Shift + V (il y en a d'autres mais je crois que ceux-ci mettent du texte dans le presse-papiers du système)

Pour être honnête, je ne sais pas grand chose sur gvim.

    
réponse donnée coteyr 19.09.2013 - 16:47
la source
4

Utiliser dans votre vimrc:

set mouse=a

Il vous permettra de sélectionner et de copier manuellement avec la souris.

    
réponse donnée Sergio Abreu 02.02.2017 - 16:17
la source

Lire d'autres questions sur les étiquettes