Il y a deux façons. Certaines des façons qui ont été mentionnées incluent (je pense) tmux, screen, vim, emacs et le shell. Je ne connais ni emacs ni écran, je vais donc passer en revue les trois autres.
Tmux
Bien qu'il ne s'agisse pas d'une sélection X, tmux dispose d'un mode de copie accessible via prefix-[
( prefix
est Ctrl+ Bpar défaut). Le tampon utilisé pour ce mode est séparé et exclusif à tmux, ce qui ouvre pas mal de possibilités et le rend plus polyvalent que les sélections X dans les bonnes situations.
Pour quitter ce mode, appuyez sur q; pour naviguer, utilisez votre vim
ou emacs
liaison (par défaut = vim), donc hjkl
pour le mouvement, v/V/C-v
pour la sélection de caractère / ligne / bloc, etc. Lorsque vous avez votre sélection, appuyez sur Enterpour copier et quitter le mode.
Pour coller à partir de ce tampon, utilisez prefix-]
.
coquille
Toute installation de X11
semble venir avec deux programmes par défaut: xclip
et xsel
(un peu comme la façon dont elle est également fournie avec les deux startx
et xinit
). La plupart des autres réponses mentionnent xclip
, et j'aime beaucoup xsel
pour sa brièveté, donc je vais couvrir xsel
.
De xsel (1x) :
Options de saisie
-a, --append
ajouter une entrée standard à la sélection. Implique -i .
-f, --suivre
ajouter à la sélection à mesure que l'entrée standard augmente. Implique -i .
-i, --input
lire l'entrée standard dans la sélection.
Options de sortie
-o, --sortie
écrire la sélection sur la sortie standard.
Options d'action
-c, - clair
effacer la sélection. Remplace toutes les options d'entrée.
-d, --delete
Demandez que la sélection actuelle soit supprimée. Cela efface non seulement la sélection, mais demande également au programme dans lequel réside la sélection que le contenu sélectionné soit supprimé. Remplace toutes les options d'entrée.
Options de sélection
-p, --primaire
opérer sur la sélection PRIMAIRE (par défaut).
-s, --secondaire
opérer sur la sélection SECONDAIRE.
-b, --clipboard
opérer sur la sélection CLIPBOARD.
Et c'est à peu près tout ce que vous devez savoir. p
(ou rien) pour PRIMARY
, s
pour SECONDARY
, b
pour CLIPBOARD
, o
pour la sortie.
Exemple: disons que je veux copier la sortie d' foo
un ATS et la coller sur une page Web pour un rapport de bogue. Pour ce faire, il serait idéal de copier vers / depuis la session TTY / X. La question devient donc comment accéder au presse-papiers à partir du TTY?
Pour cet exemple, nous supposerons que la session X est affichée :1
.
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
Ensuite, je peux Ctrl-V
le mettre dans le formulaire comme d'habitude.
Supposons maintenant que quelqu'un sur le site d'assistance me donne une commande à exécuter pour résoudre le problème. C'est compliqué et long.
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
La commande de pizza semble être une utilisation productive de la ligne de commande.
... continuons.
Vigueur
S'il est compilé avec +clipboard
(C'est important! Vérifiez votre vim --version
), Vim devrait avoir accès au X PRIMARY
et aux CLIPBOARD
sélections. Les deux sélections sont accessibles à partir des registres *
et +
, respectivement, et peuvent être écrites et lues à votre guise comme n'importe quel autre registre. Par exemple:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
Si votre copie de vim ne prend pas directement en charge l'accès aux sélections X, ce n'est pas la fin du monde. Vous pouvez simplement utiliser la xsel
technique décrite dans la dernière section.
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
Liez quelques combos clés et vous devriez être bon.
:%y+
dans vim, qui est en vim pour "yank (copier) toutes les lignes dans le registre" + "(lePRIMARY
presse-papiers X )". Vous pouvez remplacer%
par une plage si vous souhaitez être précis. Mais il y a trois mises en garde: 1. Maintenant, vous devez enregistrer le texte dans un fichier avant de pouvoir le copier. Ceci contraste avec laxclip
commande mentionnée dans les réponses. 2. Si vous ne savez pas déjà comment vim, cela peut être fastidieux. 3. Vous ne pouvez le faire que si une certaine fonctionnalité est activée lors de la compilation de vim. Si vous installez GVim, il doit être activé par défaut dans l'interface graphique et les instances de terminal de vim.