Comme indiqué dans le titre, je ne parviens pas à copier de vim dans 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 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 .vimrc
et il est défini lorsque je le 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
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
pour coller dans vim à partir du presse-papier tapez:
"+p
Je ne sais pas pourquoi mais la comparaison de la sortie de vim --version
montre que l'installation de vim habituelle est relativement limitée comparée à vim-gtk. Le remplacement de vim par vim-gtk n'affecta aucun pluging.
Informations complémentaires:
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 unique 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.
Utilisez dans votre vimrc:
set mouse=a
Cela vous permettra de sélectionner et de copier manuellement avec la souris.
En plus de la réponse acceptée , si vous travaillez à distance sur SSH (par exemple sur tmux
avec plusieurs volets avec différents processus vim
que vous souhaitez copier), vous devez également exporter votre affichage X car vim
est en utilisant xterm-clipboard
pour interfacer entre différents processus. Vous pouvez définir l’affichage X en exécutant
export DISPLAY=:0.0
Cela doit être exécuté avant le lancement de vim
name__, et sous tout autre shell que vous avez.
J'ai trouvé sur Ubuntu 16.04, il faut que vim-gui-common
soit installé pour que "+y
puisse fonctionner.