Fare in modo che Ctrl + C copi il testo in gnome-terminal?


70

È possibile per me fare Ctrl+ Ceseguire un comando di copia se è presente del testo evidenziato nel terminale?
Altrimenti, dovrebbe mantenere il suo comportamento normale.

(Se esiste un terminale che può fare questo oltre al terminale gnome, probabilmente va bene anche questo.)


1
Non devi usare il mouse; su una tastiera Mac puoi usare shift+ enter+ fn. E, su una tastiera 'normale', penso che sia shifte insert.
David Thomas,

Confermo. Uso solo un'altra combinazione di copia-fu su una tastiera 'normale': Ctrl + Inserisci per copia (e Maiusc + Inserisci per incolla) che non è in conflitto con l'interruzione del programma Ctrl + C
kza,

Risposte:


74

È possibile modificare l'associazione dei tasti per Taglia e Incolla dal valore predefinito Ctrl+ Shift+ C, Ctrl+ Shift+ Va quello che dici, ovvero Ctrl+ C, Ctrl+ V, nel menu Modifica → Tasti di scelta rapida. Tuttavia, è necessario modificare anche il significato del terminale predefinito associato a Ctrl+ C(interruzione), ad esempio in questo modo

stty intr ^J

(Ho scelto Ctrl+ Jperché non ricordo che sia associato a qualche azione, ma puoi fare la tua scelta.)

Non penso che sia possibile mantenere l'azione di interruzione predefinita per Ctrl+ Csolo quando non è evidenziato alcun testo.


1
Come notato da @Pithikos nella risposta di mangoDrunk, dopo aver rimappato il collegamento Copia su Ctrl + C, è possibile utilizzare Ctrl + Maiusc + C per interrompere senza dover configurare altro.
dubrox,

1
L'ho impostato su ^ Q perché normalmente è "unfreeze / start" che viene usato raramente, dannoso ed è più vicino al CTRL. Se qualcuno decide di fare anche questo, non deve dimenticare di rimappare prima "start" come: stty start ^ J
k3a

Si noti che è impossibile impostarlo su una combinazione che coinvolge Shift usando stty. (L'ho impostato su ^ X, poiché 'tagliare' non ha senso qui.)
Evgeni Sergeev

39

Ctrl+ Cè già assegnato a un altro comando, che è quello che interrompe il programma in esecuzione nel terminale Ad esempio, il ping www.google.com inizierà a eseguire il ping di Google fino a quando non gli si dice di interrompere. Il modo in cui lo fai è premendo Ctrl+C

Quindi, non potevano semplicemente cambiare il compito di quella combinazione.

Evidenzia il testo che desideri copiare, premi Ctrl+ Shift+ Ce verrà copiato negli appunti. Ctrl+ Shift+ Ve lo incolli.

Fammi sapere se non funziona ...


16
Piuttosto che dire che quelle combinazioni di tasti hanno altri significati specifici nel terminale, è probabilmente più corretto affermare che varie applicazioni console si aspettano di poterle usare, quindi se l'emulatore di terminale non le ha trasmesse potrebbe rendere inutilizzabili quelle app .
James Henstridge,

6
OS X è un po 'più intelligente: quando viene selezionato un testo, lo interpreta Ctrl+Ccome copia e quando non viene selezionato alcun testo, lo interpreta come interruzione.
Behrang,

5
In realtà, OS X non è più intelligente. La scorciatoia da tastiera per la copia è Cmd-C, non Ctrl-C.
Andrei Maxim,

28

A parte quello che ha detto @Dan, c'è un'altra opzione per copiare e incollare testo in Linux che sto trovando molto più veloce e più facile da usare, poiché non è necessario passare dal mouse (che stai usando per effettuare la selezione) alla tastiera :

  • selezionando il testo con il mouse lo copia negli appunti
  • il clic centrale lo incolla.

Questa funzione è particolarmente utile nel terminale, ad esempio quando si assembla un comando da bit di testo che sono già sullo schermo.

Funziona in tutte le applicazioni, quindi è possibile copiare e incollare il testo da una pagina Web al terminale, ecc.

Il buffer degli appunti utilizzato per il copia-incolla del clic centrale è separato da quello utilizzato per Ctrl-C / Ctrl-V, il che rende possibile copiare contemporaneamente due diversi bit di testo.


25

Come già notato, Ctrl+ Cviene generalmente utilizzato per interrompere un programma. Invece di usare Ctrl+ Shift+ Cper copiare, cosa che faccio molto più frequentemente dell'interruzione di un processo, cambio l'impostazione per avere Ctrl+ Cper copiare e Ctrl+ Shift+ Cper interrompere.

Puoi farlo nel Terminale GNOME andando su "Modifica" -> "Scorciatoie da tastiera ..." e mappare l'azione "Copia" su Ctrl+ Ce "Incolla" su Ctrl+ V. Il comando di interruzione verrà automaticamente rimappato su Ctrl+ Shift+ C.


1
Ma come posso quindi mappare Ctrl + Maiusc + C per interrompere un processo?
kramer65,

11
È successo automaticamente per me. Tutto quello che ho fatto è stato impostare Copia su Ctrl + C e dopo averlo salvato, Ctrl + Maiusc + C è diventato interrotto.
mangoDrunk

1
@mangoDrunk il motivo è che la tenuta Shift + Ctrl + <key>essenzialmente stampa lo stesso carattere di Ctrl + <key>. Puoi provare conread
Pithikos il

Suggerisco di farlo perché copio MOLTO più di quanto interrompa un processo ed è facile ricordare ctrl + shift + C come interruzione piuttosto che cambiare la mia abitudine di copia che è la stessa ovunque.
flyingdrifter

3

Per far funzionare la funzione taglia e incolla ( Ctrl+ V, Ctrl+ C) nella console o nel terminale, inserire il seguente codice nel terminale per modificare automaticamente i collegamenti dei tasti:

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

Ci scusiamo per aver scritto una risposta su questo, sembra che ho speso troppo della mia reputazione in una taglia per essere in grado di pubblicare un commento.

Non c'è modo di cambiare il comportamento delle scorciatoie da tastiera a seconda che ci sia o meno una selezione di testo, e eviterei di riassegnare il Ctrl-C del terminale.

MA, puoi facilmente abituarti

  • Ctrl+ Insper la copia
  • Shift+ Insper incollare

Funziona praticamente ovunque (tranne che in Nautilus , sospiro), e non interagisce quasi mai con nulla!


1

Qualcuno voleva che tu potessi usare:

> 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

Aggiungi quanto segue a ~/.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

E poi editor gconf o somesuch per cambiare i collegamenti dei terminali in CTRL+ Cper Copia e CTRL+ Vper incollare.


Argh ... la formattazione è stata migliorata. Vedi: sandipchitale.blogspot.com/2008/10/…
Sandip Chitale,

1

in Lxterminal (terminale predefinito in Lxde), è possibile personalizzare completamente le scorciatoie:

inserisci qui la descrizione dell'immagine


0

Penso che non puoi perché in gnome terminal Ctrl+ C, Ctrl+ X, Ctrl+ Vnon funzionano. Per tagliare, copiare e incollare devi evidenziare il testo, fare clic con il tasto destro e scegliere l'azione che vuoi fare


puoi ancora usare scorciatoie per tagliare nel terminale: ctrl + maiusc + c (copia) e ctrl + maiusc + v (incolla) e ctrl + maiusc + x.
Rens,

0

Come già detto, Ctrl-C non funzionerà a causa dell'uso dell'interrupt, ma ho appena trovato un modo che ha funzionato per me. Il mio obiettivo era di avere solo due tasti, non tre, e preferibilmente qualcosa a cui sono abituato, e non in un posto troppo scomodo sulla tastiera. La tastiera che ho sulla mia scatola Linux ha un tasto "Windows", nello stesso posto del tasto Comando su un Mac. Quindi sono passato a Modifica> Scorciatoie da tastiera, quando ho cambiato le scorciatoie per usare questo tasto, si dice Super + C e Super + V. A volte uso anche un Mac, quindi è stato facile abituarsi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.