Faire Ctrl + C copier le texte dans gnome-terminal?


70

Est-il possible pour moi de faire Ctrl+ Cexécuter une commande de copie s'il y a du texte en surbrillance dans le terminal?
Sinon, il devrait conserver son comportement normal.

(S'il y a un terminal qui peut faire cela autrement que gnome-terminal, c'est probablement bien aussi.)


1
Vous n'êtes pas obligé d'utiliser la souris; sur un clavier Mac, vous pouvez utiliser shift+ enter+ fn. Et, sur un clavier «normal», je pense que c'est shiftet insert.
David Thomas

Je confirme. Je viens d'utiliser un autre mélange de copy-fu sur un clavier 'normal': Ctrl + Inser pour copier (et Maj + Inser pour coller) qui n'entre pas en conflit avec l'interruption du programme Ctrl + C
kza

Réponses:


74

Vous pouvez changer le raccourci clavier pour couper et coller des valeurs par défaut Ctrl+ Shift+ C, Ctrl+ Shift+ Và ce que vous dites, à savoir Ctrl+ C, Ctrl+ V, dans le menu Edition → Raccourcis clavier . Bien que vous deviez également changer la signification par défaut du terminal associée à Ctrl+ C(interruption), par exemple de cette manière

stty intr ^J

(J'ai choisi Ctrl+ Jparce que je ne me souviens pas qu'il est associé à une action, mais vous pouvez faire votre propre choix.)

Je ne pense pas qu'il soit possible de conserver l'action d'interruption par défaut pour Ctrl+ Cuniquement lorsqu'il n'y a pas de texte en surbrillance.


1
Comme l'a noté @Pithikos dans la réponse de mangoDrunk, après avoir remappé le raccourci Copier en Ctrl + C, vous pouvez utiliser Ctrl + Maj + C pour interrompre sans rien configurer d'autre.
dubrox

1
Je l’ai réglé sur ^ Q bacause, c’est normalement le "dégel / démarrage" qui est rarement utilisé, dangereux et plus proche de CTRL. Si quelqu'un décide de faire cela aussi, il ne faut pas oublier de remapper "commencer" en premier comme: stty start ^ J
k3a

Notez qu'il est impossible de définir une combinaison impliquant Shift using stty. (Je l'ai réglé sur ^ X, car 'couper' n'a aucun sens ici.)
Evgeni Sergeev

39

Ctrl+ Cest déjà affecté à une autre commande, celle qui interrompt le programme en cours d'exécution dans le terminal. Par exemple, ping www.google.com commence à envoyer une requête ping à Google jusqu'à ce que vous le fassiez arrêter. La façon dont vous le faites, est en appuyant sur Ctrl+C

Ils ne pouvaient donc pas simplement changer l’affectation de cette combinaison.

Mettez en surbrillance le texte que vous souhaitez copier, appuyez sur Ctrl+ Shift+ Cet il est copié dans le Presse-papiers. Ctrl+ Shift+ Vet vous le collez.

Faites-moi savoir si ça ne marche pas ...


16
Plutôt que de dire que ces raccourcis clavier ont d'autres significations spécifiques dans le terminal, il est probablement plus correct de dire que diverses applications de console s'attendent à pouvoir les utiliser. Par conséquent, si l'émulateur de terminal ne les transmet pas, ces applications pourraient devenir inutilisables. .
James Henstridge

6
OS X est un peu plus intelligent: quand du texte est sélectionné, il est interprété Ctrl+Ccomme une copie et quand aucun texte n'est sélectionné, il est interprété comme une interruption.
Behrang

5
En réalité, OS X n’est pas plus intelligent. Le raccourci clavier de copie est Cmd-C, pas Ctrl-C.
Andrei Maxim

28

Mis à part ce que @Dan a dit, il existe une autre option de copier-coller de texte dans Linux, que je trouve beaucoup plus rapide et plus facile à utiliser, car il n'est pas nécessaire de passer de la souris (que vous utilisez pour effectuer la sélection) au clavier. :

  • la sélection de texte avec la souris le copie dans le presse-papier
  • le clic du milieu le colle.

Cette fonctionnalité est particulièrement utile en terminal, par exemple lors de l’assemblage d’une commande à partir de bits de texte déjà affichés à l’écran.

Cela fonctionne dans toutes les applications, il est donc possible de copier-coller du texte d'une page Web vers un terminal, etc.

La mémoire tampon du presse-papier utilisée pour le copier-coller au moyen du clic est distincte de celle utilisée pour Ctrl-C / Ctrl-V, ce qui permet de copier deux bits de texte différents en même temps.


25

Comme déjà noté, Ctrl+ Cest généralement utilisé pour interrompre un programme. Mais au lieu d'utiliser Ctrl+ Shift+ Cpour copier, ce que je fais beaucoup plus souvent que d'interrompre un processus, je modifie le paramètre pour avoir Ctrl+ Cpour copier et Ctrl+ Shift+ Cpour interrompre.

Vous pouvez le faire dans Terminal GNOME en allant dans "Edition" -> "Raccourcis clavier ..." et en mappant l'action "Copier" sur Ctrl+ Cet "Coller" sur Ctrl+ V. La commande d'interruption sera automatiquement remappée en Ctrl+ Shift+ C.


1
Mais comment puis-je mapper Ctrl + Maj + C pour interrompre un processus?
kramer65

11
C'est arrivé automatiquement pour moi. Tout ce que je faisais était de définir Copier sur Ctrl + C et après avoir sauvegardé cela, Ctrl + Maj + C devenait une interruption.
mangoDrunk

1
@mangoDrunk, la raison en est que la tenue affiche Shift + Ctrl + <key>essentiellement le même caractère que Ctrl + <key>. Vous pouvez tester avecread
Pithikos

Je suggère de faire cela parce que je copie BEAUCOUP plus que d'interrompre un processus et qu'il est facile de se rappeler que ctrl + maj + C est une interruption plutôt que de changer mon habitude de copier qui est identique partout ailleurs.
flyingdrifter

3

Pour que couper et coller ( Ctrl+ V, Ctrl+ C) fonctionne dans la console ou le terminal, insérez le code suivant dans le terminal pour modifier automatiquement les raccourcis clavier:

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"

1

Désolé d'avoir écrit une réponse à ce sujet, il semblerait que j'ai trop dépensé de ma réputation en prime pour pouvoir poster un commentaire.

Il n'y a aucun moyen de changer le comportement des raccourcis clavier selon qu'il y ait ou non une sélection de texte, et j'éviterais de réattribuer Ctrl-C du terminal.

MAIS, vous pouvez facilement vous habituer

  • Ctrl+ Inspour copier
  • Shift+ Inspour coller

Cela fonctionne pratiquement partout (sauf dans Nautilus , soupir) et n'interfère presque jamais avec rien!


1

Est-ce que quelqu'un voulait que vous puissiez utiliser:

> stty intr ^K         # free Ctrl+C for copy use Ctrl+K instead
> stty lnext ^-        # free Ctrl+V for paste use ^- instead
> stty -g
> stty -g > ~/.stty    # store the settings in home directory

Ajouter ce qui suit à ~/.bashrc

case $- in
 *i*)
   stty `cat ~/.stty`     #  reload the stored stty settings
   bind -u quoted-insert  #  unbind the quoted-insert function of bash - free Ctrl+V for paste
esac

Et puis gconf editor ou un tel outil pour changer les raccourcis clavier des terminaux en CTRL+ Cpour Copier et CTRL+ Vpour coller.


Argh ... la mise en forme a été améliorée. Voir: sandipchitale.blogspot.com/2008/10/…
Sandip Chitale

1

dans Lxterminal (terminal par défaut dans Lxde), vous pouvez entièrement personnaliser les raccourcis:

entrez la description de l'image ici


0

Je pense que vous ne pouvez pas parce que dans Gnome Terminal Ctrl+ C, Ctrl+ X, Ctrl+ Vne fonctionnent pas. Pour couper, copier et coller, vous devez surligner le texte, cliquer avec le bouton droit de la souris et choisir l’action à faire.


vous pouvez toujours utiliser des raccourcis pour couper dans le terminal: ctrl + shift + c (copier) et ctrl + shift + v (coller) et ctrl + shift + x.
Rens

0

Comme déjà indiqué, Ctrl-C ne fonctionnera pas à cause de l'utilisation des interruptions, mais je viens de trouver un moyen qui fonctionnait pour moi. Mon objectif était de n'avoir que deux touches, pas trois, et de préférence quelque chose auquel je suis habitué, et pas trop gênant pour le clavier. Le clavier que j'ai sur ma machine Linux a une touche "Windows", au même endroit que la touche Commande sur un Mac. Je suis donc simplement allé dans Edition> Raccourcis clavier, lorsque j'ai modifié les raccourcis pour utiliser cette touche, il est écrit Super + C et Super + V. J'utilise parfois aussi un Mac, alors il était facile de s'y habituer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.