Question Qu'est-ce que comme pbcopy OSX pour Linux


Dans un terminal sous OSX, je peux diriger la sortie vers pbcopy, puis aller dans un navigateur Web et la coller. J'ai essayé ceci sous Linux avec xcopy mais quand je passe au navigateur, il écrase simplement le presse-papiers avec ce qu'il y avait la dernière fois que le navigateur était utilisé. Qu'est-ce qui fonctionne comme pbcopy sous Linux?


127
2018-05-25 09:08


origine


... et pour ceux qui ne savent pas ce qu'est pbcopy, voici la page de manuel developer.apple.com/library/mac/#documentation/Darwin/Reference/... - Rob Cowell
Un outil qui peut être utile avec cela est ClipIt (et gestionnaires de presse-papiers similaires). Non seulement il joue bien dans le terminal, mais il préserve également l’historique du presse-papiers. Plutôt utile. - brandizzi


Réponses:


Si vous avez installé X, vous pouvez essayer xsel de cette manière:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

ou avec xclip:

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'

vous pouvez maintenant utiliser:

echo 'go to my clipboard' | pbcopy

quand je n'ai pas X J'utilise la fonctionnalité GNU Screen pour copier entre les shells ouverts dans une session en utilisant le clavier

copier : Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter

coller : Ctrl-a + ]

* les mouvements se font avec vim comme les raccourcis clavier (j, k, l & m).


148
2018-05-25 09:33



Merci c'est exactement l'information que je voulais. Maintenant, je me demande s'il y a un moyen de faire écran me laisser utiliser les commandes Emacs pour sélectionner la zone que je veux copier ... - Noah Sussman
xsel: Impossible d'ouvrir l'affichage: (null): ioctl inapproprié pour le périphérique - itsazzad
J'ai résolu le problème "Impossible d'ouvrir l'écran" sous Windows en installant Xming et réglage DISPLAY =: 0 - scottgwald


Placez un script comme celui-ci appelé pbcopy dans votre dossier bin:

#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p

Cela placera STDIN dans votre tampon de sélection et votre presse-papier:

echo Hello world |pbcopy

8
2018-01-26 10:20



Pourquoi le cat être nécessaire? Ne va-t-il pas simplement rediriger stdin vers stdout dans ce cas donc abus de chat inutile ou suis-je en train de rater quelque chose? - Hultner
Tu as raison ça ressemble à un abus de chat inutile :-) - Erik
Si vous êtes (comme moi) en train de vous demander où est le mystérieux "chat inutile", le montage a été supprimé. NTS: en cas de commentaires confus, vérifiez l'historique ^^ ' - yaitloutou
Comment collez-vous le contenu après l'avoir utilisé? Juste en utilisant xclip -o ? Ou existe-t-il une meilleure façon? - n1k31t4


Pour développer les solutions de @Erik et @xpixelz; ces deux scripts devraient fonctionner sur les deux plates-formes:

pbcopy:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  cat | /usr/bin/pbcopy
else
  # copy to selection buffer AND clipboard
  cat | xclip -i -sel c -f | xclip -i -sel p
fi

pbpaste:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  /usr/bin/pbpaste
else
  xclip -selection clipboard -o
fi

4
2018-04-14 18:10



Mais pourquoi auriez-vous même ce script sur OS X où il fait partie de l’espace utilisateur natif? - Hultner
* comme référence pour des fonctionnalités similaires, * dotfiles multi-plateformes: github.com/westurner/dotfiles/blob/develop/scripts/pbcopy - Wes Turner
Encore de l'abus de chat et pourquoi ne pas vérifier si xclip existe à la place et attribuer un alias si c'est le cas? Ou vérifiez si le binaire de pbpaste existe également. Vérifier le nom semble être une approche étrange du problème. - Hultner
@Hultner "Vérifier le nom semble être une approche étrange du problème" Vous pouvez également vérifier les fichiers binaires, de préférence, dans l'ordre, par exception avec un ${a:-${b:-${c:+${d}}}} et certaines type -P/ has affectations de variables et / bin / test execs. - Wes Turner


Cette réponse fait référence au sous-système Linux pour Windows.

Réponse courte: utiliser clip.exe Comme si c'était pbcopy afin de mettre quelque chose sur le presse-papiers de Windows. C'est magique. Exemple echo "Hello Windows" | clip.exe dans votre terminal bash ou Ubuntu bash, puis `ctrl-v 'dans un programme Windows.

Plus de contexte:

Dans un commentaire ci-dessus J'ai mentionné que, lorsque vous utilisez Xming sous Windows pour activer cette fonctionnalité, il est nécessaire de définir une variable DISPLAY (export DISPLAY=:0, dans de nombreux cas) avant la xsel et xclip les solutions fonctionnent. Chose inquiétante, cette solution fonctionne de manière stochastique et peu fiable - lors du collage de Linux vers Windows, en appuyant sur ctrl-v entre une et dix fois, le presse-papiers est collé (une fois) (cela se trouve sur mon Windows 10 Surface Book 2). Ne perdez pas votre temps, utilisez clip.exe.

NOTE: N'oubliez pas le .exe. Sinon, Ubuntu bash vous proposera d'installer le paquet Linux geomview, ce qui n'est pas ce que vous voulez.


1
2018-01-07 17:18