web-dev-qa-db-fra.com

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

Je suis sur le point d'appuyer sur Entrée pour exécuter une commande dans 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 sur le terminal, Ctrl+Home le fait.

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

édité:

  • supposez que l'utilisation d'autres programmes tels que screen n'est pas une bonne alternative
  • le texte doit être collé à l'extérieur du terminal, donc Ctrl+y et des séquences similaires ne le résolvent pas non plus
61
Strapakowsky

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-papier. Vous pouvez le coller dans un terminal en utilisant:

xsel

Et dans toute application X utilisant le bouton central de la souris ou Shift+Insert.

14
Nykakin

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

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

  2. control-K va tuer toute la ligne que vous venez d'entrer.

  3. control-Y va extraire le texte.

Ensuite, vous pourrez control-Y récupérer le texte pour l'insérer à nouveau en tant qu'entrée dans l'éditeur de ligne de commande Shell.

Voir man bash et, le cas échéant, tapez /emacs suivi de deux noms de n (next) pour vous déplacer vers la section READLINE.

25
ElderDelp

Le plus proche que je peux penser est Ctrl+uCtrl+y
Ceci effacerait du curseur jusqu'au début de la ligne, puis collerait depuis le tampon readline. Cependant, ce n'est pas exactement le même que le presse-papiers, mais vous pourriez coller à l'intérieur du Shell, si c'est ce dont vous avez besoin.

8
demure

Il y a un programme appelé screen. Il crée un système de fenêtrage de texte qui vous permet de basculer entre plusieurs instances. Mais cela vous permet également de sélectionner du texte.

Sudo apt-get install screen

Cette commande l'installe.

Puis tapez screen

Vous utilisez ctr-a pour démarrer la séquence de commandes. Ensuite, appuyez sur esc et votre curseur se déplacera dans n'importe quelle direction. Appuyez sur enter pour commencer la sélection du texte, allez au point final, appuyez à nouveau sur enter. Cela va copier dans le tampon.

Puis ctr-a puis} collera

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

6
Meer Borg

Si vous êtes dans vim, vous pouvez sélectionner visuellement une ou plusieurs lignes avec Shift+v puis utilisez une liaison, par ex. yy, pour diriger la sélection vers xclip .

Ajoutez la liaison à votre vimrc:

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

Ceci nécessite l'installation de xclip , il se trouve dans le référentiel Debian/Ubuntu.

xclip stocke stdin, avec l’option -selection clipboard il pousse également stdin dans le Presse-papiers du système.

Ainsi, vous pouvez également 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 pouvez éventuellement créer également un alias, tel que:

alias cb="xclip -selection clipboard" 
1
Kris

Le Termite de Daniel Micay arbore un "mode de sélection". Appuyez sur Ctrl + Maj + Espace pour l'activer. Il possède des raccourcis ressemblant à vim. v ou V sélectionneront le mode visuel à la vim, y tirera, Esc quittera le mode sélection.

Copié à partir de https://stackoverflow.com/questions/1536757/selecting-text-in-terminal-without-usout-the-mouse/29386401

0
Jakobovski