89 votes

Sélectionner du texte dans le terminal sans utiliser la souris

Je suis sur le point d'appuyer sur la touche Entrée pour exécuter une commande dans le terminal, mais avant de le faire, je veux copier la commande dans le presse-papiers sans utiliser la souris.

Comment ?

Si vous êtes ailleurs que dans le terminal, Ctrl + Home le fait.

Existe-t-il un moyen de sélectionner arbitrairement un texte comme celui-là dans le terminal ?

ÉDITION :

  • suppose que l'utilisation d'autres programmes comme screen n'est pas une bonne alternative
  • le texte doit être collé en dehors du terminal, donc Ctrl + y et les séquences similaires ne le résolvent pas non plus

31voto

ElderDelp Points 496

Si vous utilisez l'un des shells qui comprennent les clés emacs (bash, csh, etc.), vous pouvez copier la commande en cours par :

  1. control-A vous amènera au début de la ligne.

  2. control-K tuera toute la ligne que tu viens de saisir.

  3. control-Y fera revenir le texte.

Ensuite, plus tard, vous pourrez control-Y yank the text back pour réinsérer le texte en entrée de l'éditeur de ligne de commande Shell.

Voir man bash et quand il apparaît, tapez /emacs suivi d'un couple de n (suivant) pour vous faire passer à la section READLINE.

19voto

Nykakin Points 3562

Lier le raccourci suivant :

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

Maintenant, après avoir utilisé Crtl + P votre ligne sera copiée dans le presse-papiers. Vous pouvez la coller dans le terminal en utilisant :

xsel

Et dans n'importe quelle application X en utilisant le bouton du milieu de la souris ou Shift + Insert .

16voto

TJSoler Points 471

Le plus proche auquel je puisse penser est Ctrl + u , Ctrl + y
Cela supprimerait le curseur jusqu'au début de la ligne, puis collerait à partir du tampon de lecture. Ce n'est pas exactement la même chose que le presse-papiers cependant, mais vous seriez en mesure de coller à l'intérieur du Shell, si c'est ce dont vous avez besoin.

10voto

Jehof Points 368

Il existe un programme appelé Screen. Il crée un système de fenêtrage textuel qui vous permet de basculer entre plusieurs instances. Mais il vous permet aussi de sélectionner du texte.

sudo apt-get install screen

Cette commande l'installe.

Puis tapez screen

Vous utilisez ctr-a pour commencer la séquence de commande. Ensuite, appuyez sur esc et votre curseur se déplacera dans n'importe quelle direction. Appuyez sur entrée pour commencer la sélection de texte, déplacez-vous jusqu'au point final, appuyez à nouveau sur entrée. Cela copiera dans la mémoire tampon.

Puis ctr-a et ensuite } colleront

Plus de détails sur les autres commandes ici http://www.kuro5hin.org/story/2004/3/9/16838/14935

2voto

deontologician Points 1124

Si vous êtes dans vim, vous pouvez sélectionner visuellement une ou plusieurs lignes avec Shift + v et ensuite utiliser une liaison, par exemple yy pour acheminer la sélection vers xclip .

Ajoutez la liaison à votre vimrc :

vnoremap yy :w !xclip -selection clipboard<CR><CR>

Cela nécessite xclip à installer, il se trouve dans le dépôt d'aptitude de Debian/Ubuntu.

xclip stocke stdin, avec l'option -selection clipboard il pousse également stdin vers le presse-papier du système.

Vous pouvez donc aussi utiliser xclip de manière générique à partir du terminal, par exemple pour copier un fichier entier dans le presse-papiers du système :

cat myfile | xclip -selection clipboard

Si vous le souhaitez, vous pouvez également créer un alias, tel que :

alias cb="xclip -selection clipboard"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X