Comment sélectionner (copier) une sortie dans un terminal sans souris

10

Cela semble être une manière typique d'avoir une sortie dans le terminal et si vous voulez sélectionner une phrase, utilisez votre souris pour la copier, mais existe-t-il un moyen de sélectionner sans utiliser la souris? Par exemple, j'entre lset j'obtiens une liste de fichiers, et je veux sélectionner le deuxième fichier (deuxième ligne), existe-t-il un moyen de copier le nom sans utiliser la souris?

Negrito
la source

Réponses:

10

Utilisation de tmux:

J'utilise tmuxen mode vi:

  1. Aller en mode copie (dans ma config Prefix+ escape, le préfixe par défaut est Ctrl+ b)
    • Dans le fichier de configuration ( ~/.tmux.conf):bind Escape copy-mode
  2. Se déplacer (à l'aide de flèches)
  3. Sélectionnez votre sortie désirée (Commencez la sélection avec Space)
    • Dans ma config v:bind-key -T copy-mode-vi y send-keys -X begin-selection
  4. Appuyez sur Enterpour copier le texte.
    • Dans ma config y:bind-key -T copy-mode-vi y send-keys -X copy-selection
  5. Appuyez sur Prefix+ ppour coller.

entrez la description de l'image ici

Créez également une liaison de clé comme celle-ci:

bind C-c run "tmux save-buffer - | xsel -bi"

Vous pouvez donc enregistrer le tampon dans le presse-papiers du système en appuyant sur Prefix+ Ctrl+ c.

J'ai ajouté ma configuration car elle ressemble plus à vim qu'à la configuration par défaut.


Utilisation de commandes:

Voici ce que je fais:

  1. Exécutez la commande (par exemple: ls -1)
  2. Traitez la sortie pour obtenir le résultat souhaité
  3. Pipez-le vers xsel -bi

Dans votre exemple:

$ ls -1 | sed -n 2p | xsel -bi
  • ls -1 imprime les sorties chacune sur une seule ligne
  • sed -n 2p obtenir la deuxième ligne
  • xsel a été utilisé pour copier le résultat final dans le presse-papiers.

Si la commande prend trop de temps à exécuter, enregistrez d'abord la sortie dans un fichier, puis traitez la sortie:

command > output
head -10 output | whatever | xsel -bi
Ravexina
la source
0

Les émulateurs de terminaux Linux les plus courants ne peuvent pas le faire directement. Mais il y en a deux que je connais.

Un qui existe depuis un certain temps est Termite. C'est plutôt spartiate, cependant (raccourcis clavier non configurables, pas d'onglets multiples).

Maintenant, il y en a un deuxième, qui a ces fonctionnalités nommées Mantid (que je publie sans vergogne ici :)):

https://github.com/omgold/mantid-term

Il n'y a pas encore de build Ubuntu, cependant, un seul Arch et RPM. Vous pouvez essayer de construire un RPM et de le convertir en deb en utilisant Alien.

omgold
la source
Je voudrais essayer mantid, mais je ne trouve aucun tutoriel ou manuel. Y a-t-il de la documentation là-bas? Il serait bon de savoir au moins comment il accomplit la fonctionnalité demandée dans la question.
Luís de Sousa
Il y a une page de manuel ('man mantid') et il y a des exemples de fichiers de configuration dans / usr / share / mantid. La page de manuel documente principalement les options de configuration et les raccourcis clavier actifs peuvent être consultés dans le fichier de configuration.
omgold