Partage du presse-papiers de Mac OS X avec le serveur X interne

21

J'aimerais pouvoir copier et coller entre les applications MacOS X natives (Cocoa?) Et celles fonctionnant sous le serveur X interne de Mac.

Actuellement, je peux copier et coller indépendamment. Si je sélectionne du texte dans une fenêtre xterm, je peux le coller dans n'importe quelle autre fenêtre basée sur X. De même, la copie d'informations en dehors de X peut être collée dans des applications qui se trouvent également en dehors de X.

Par exemple, si je (dans cet ordre exactement):

  • Copier (sélectionner à l'aide de la souris) "Copier à l'aide de la sélection X" dans une fenêtre xterm
  • Copier (Modifier | Copier) "Texte dans Firefox" dans Firefox
  • Coller (Shift Insérer xmodmap) dans nano J'obtiens "Copier en utilisant la sélection X"
  • Coller (Modifier | Coller) ici, je reçois -> Texte dans Firefox
  • Coller dans MacVIM (Modifier | Coller) Je reçois "Texte dans Firefox"
  • Coller dans / usr / bin / vim (non graphique) j'obtiens "Copier en utilisant la sélection X"

Comment activer le "partage de presse-papiers" entre X et Cocoa?

Le xmodmap que j'utilise pour coller dans X est:

xmodmap -e "keycode 84 = Insert"

où 84 est la touche Entrée du pavé numérique. Shift Enter me donne donc de la pâte.

kwutchak
la source
Est-ce cohérent entre les applications X? L'essayez-vous en clair xtermou similaire, pas vimou quelque chose avec ses propres tampons? Quelle version d'OS X utilisez-vous? Mon presse-papiers est partagé entre Cocoa et X11 comme prévu dans 10.5.7.
jtb
Hé jtb, merci pour votre aide. J'utilise vim et je connais les problèmes liés à l'utilisation de ses tampons internes. Normalement, je triche et passe en mode édition, puis je colle depuis le menu d'édition de gvim (ou MacVim). J'ai ajouté quelques informations supplémentaires à mon message pour clarifier les autres parties de votre question.
kwutchak
Ah, merci pour l'info supplémentaire. Je vois surtout ce que vous décrivez bien que la pâte à l'étape 3 fonctionne (en utilisant le clic du milieu, je n'ai pas d'insertion mappée). Command-C semble copier dans le presse-papiers natif si j'ai du texte sélectionné dans X11, mais je vois ce que vous voulez dire que l'utilisation des opérations natives de copier / coller X n'est pas correctement synchronisée.
jtb
Pour la version récente d'OSX (j'utilise 10.12), les travaux suivants: stackoverflow.com/a/9525347/1353267
Samveen

Réponses:

14

Vous pouvez activer la synchronisation du presse-papiers en modifiant ~/Library/Preferences/org.x.X11.plistet en ajoutant les cinq touches booléennes suivantes 1 (et en les vérifiant).

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

Redémarrez X11 et ils devraient être synchronisés correctement.

Modifier: vous pouvez ajouter les clés avec l'éditeur de liste de propriétés ou avec les commandes de terminal suivantes:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true

Une solution alternative consiste à installer la dernière version de XQuartz qui expose ces options via le panneau Préférences X11 >> Pasteboard.

jtb
la source
Cette ligne tapée sur mon xterm et copiée à travers ...;) Cette ligne a été collée avec succès dans mon xterm ...;) Un autre cas où ma femme ne comprendrait pas à quel point ce correctif est extrêmement satisfaisant !! Merci beaucoup.
kwutchak
Merci d'avoir posé la question. Le Mac m'a habitué à frapper Cmd + C dans la mesure où je ne savais pas ce qui me manquait. Mais je suis assez content d'avoir ceci dans ma configuration maintenant.
jtb
J'ai installé XQuarts et changé les options pour cela. Lorsque je ssh vers un système distant avec XForwarding activé (sur les deux systèmes) et que j'ajoute des éléments au presse-papiers à l'aide de xclip (par exemple: ls | xclip), le presse-papiers de mon système local (mac os x) ne change pas. Qu'est-ce que je rate?
cwd
4
Je pense que le fichier correct à écrire maintenant estorg.macosforge.xquartz.X11
Keith Smiley
2

Vous pouvez également recompiler vim-7.3 et ajouter ce qui suit à votre .vimrc:

set clipboard=unnamed

Ensuite, vous pourrez faire «yy» dans vim et coller dans Cocoa avec Cmd + V. Et vice versa: copier avec Cmd + V dans Cocoa et coller dans vim avec 'p'

user47498
la source
notez que votre vim doit être compilé avec l' clipboardoption on pour que cela fonctionne. Vous pouvez voir si c'est en exécutant vim --version | grep clipboard. Si cela dit +clipboard, alors vous êtes bon. Si cela dit -clipboard, cela ne fonctionnera pas.
egarcia