Impossible de copier de vim dans le presse-papiers du système

54

Comme indiqué dans le titre, je ne parviens pas à copier de vim dans le presse-papiers du système. Viceversa fonctionne, copier de l'extérieur de vim et coller avec pc'est ok.

J'ai installé le support du presse-papier, 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 .vimrcet c'est réglé quand je fais:

set clipboard?

ou

:echo has('clipboard')

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

Merci

gc5
la source
stackoverflow.com/questions/11489428/… Cela peut vous aider un peu.
coteyr
Avez-vous quitté vim après avoir tapé "+ y sur la sélection visuelle et essayé de coller à l'extérieur de vim? Cela ne marchera pas si vous le faites
Samuel Peter
@SamuelPeter Non, je n'ai pas quitté vim
gc5 le
1
J'ai rencontré ce problème parce que je faisais clipboard+=unnamedplusquelque chose dans le réglage par défaut le désactivait. Changer pour clipboard=unnamedplus(par exemple, supprimer d’autres paramètres) a fonctionné pour moi.
JonnyRaa
Comme @JonnyLeeds mentionné. La configuration set clipboard+=unnamedet set clipboard+=unnamedplusne fonctionne pas lorsque vous utilisez y et p pour la part du presse - papiers du système. :set clipboard?== clipboard=autoselect,exclude:cons\|linux,unnamed,unnamedplus; Après avoir enlevé le premier +, qui est set clipboard=unnamedet set clipboard+=unnamedplus, et ça marche !! :set clipboard?==clipboard=unnamed,unnamedplus
Marslo

Réponses:

87

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

Réinstallez vim en tant que vim-gtk:

sudo apt-get install vim-gtk

Sélectionnez ce que vous voulez en utilisant la souris - puis tapez pour copier dans le presse papier :

"+y

coller dans vim à partir du type de presse-papiers :

"+p

Je ne sais pas pourquoi mais la comparaison des résultats vim --versionmontre que l'installation de vim habituelle est assez limitée comparée à vim-gtk. Le remplacement de vim par vim-gtk n’a eu d’incidence sur aucun pluging.


Informations complémentaires:

Raffael
la source
1
Je ne peux pas dire à quel point vous m'avez aidé et combien je suis heureux maintenant: D
7hi4g0 Le
1
Il est intéressant de noter que les versions VIM et VIM-GTK normales sont prises en charge le 14.04 xterm_clipboardmais "+pne fonctionnent pas dans VIM classique. Plutôt que de couper dans le presse-papiers, cela augmente la quantité de lignes sélectionnées.
dotancohen
1
L’installation a vim-gtkfinalement fonctionné pour moi dans 14.04.4, mais j’ai vécu les choses un peu différemment par rapport aux autres commentaires. Avant l’ vim-gtkinstallation, vim était affiché -xterm_clipboard(c’est-à-dire non activé). Après l’installation vim-gtks’affiche (+ xterm_clipboard). Je vérifie cela avec vim --version | grep clip. Quoi qu'il en soit, c'est logique que vous avez besoin +xterm_clipboard!
Overthink
C'est une excellente solution. En fait, j’en ai fait la première chose à faire après avoir installé un nouveau système d’exploitation Ubuntu.
linbianxiaocao
L'installation de vim-gtk a fonctionné pour moi. Merci
Miguel Mota
6

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

En bref, il ne semble pas y avoir de solution uniforme pour tous, mais avec 'set clipboard = unnamedplus', l'un des '* p' ou '+ p' devrait fonctionner dans le presse-papiers "system".

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


vim est un programme cli. Lors de son utilisation à l'intérieur de gnome-terminal (ou de tout émulateur de terminal), crtl + c (ou toute combinaison de touches) est traité en premier par l'émulateur de terminal, puis par le shell, puis enfin 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 d'exécution. vim utilise SIGINT pour arrêter d’autres tâches telles que l’abandon du mode d’insertion ou l’arrêt des fonctions de recherche.

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

Au lieu de cela, essayez de coller avec Ctrl + Maj + C et Ctrl + Maj + V (il y en a d'autres mais je crois que ceux-ci ont mis du texte dans le presse-papiers du système)

Pour être juste, je ne sais pas grand chose de Gvim.

coteyr
la source
Peut-être que je vous ai confondu… je vous ai dit d'utiliser ctrl-cOUTSIDE vim et le collage avec p, mais je sais que je dois utiliser vim y… je vais éditer ma question
gc5 le
1
LOL n'a pas encore eu ma caféine, désolé.
coteyr
5

Utilisez dans votre vimrc:

set mouse=a

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

Sergio Abreu
la source
3

En plus de la réponse acceptée , si vous travaillez à distance sur SSH (par exemple sur tmuxplusieurs sous-fenêtres avec différents vimprocessus que vous souhaitez copier), vous devez également exporter votre affichage X car vous vimutilisez xterm-clipboardune interface entre différents processus. Vous pouvez définir l’affichage X en exécutant

export DISPLAY=:0.0

Cela doit être exécuté avant que ne vim soit lancé, et sous tout autre shell que vous avez.

Yusuf Gören
la source
1

J'ai trouvé sur Ubuntu 16.04 que j'ai besoin d'être vim-gui-commoninstallé pour "+yfonctionner.

Carlos Torchia
la source