Quelle non sono caratteristiche di bash, sono caratteristiche del driver del terminale. In quanto tali, sono specificati da stty(1)
.
$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Questo è quasi completamente risolto ora. Parte della soluzione è stata portata per la prima volta alla mia attenzione da MTK358 su http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ . Ha sottolineato il fatto (piuttosto ovvio, con mio grande imbarazzo) che i tasti di scelta rapida copia e incolla possono essere facilmente modificati dalle impostazioni del menu di konsole. Una volta visto questo, ci è voluto circa 1 minuto per impostare Ctrl-C e Ctrl-V per copiare e incollare con il terminale.
L'altra parte della soluzione avrebbe dovuto essere chiara dalla pagina man di stty, ma non lo era (per me). Ho finito per sperimentare solo sulla base di vari indizi, come quelli pubblicati sopra.
Ho deciso quale tasto non numerico volevo sostituire Ctrl-C come comando di terminazione. (ho usato "k"). Non ho mai trovato alcuna informazione su come trasmettere un modificatore di spostamento a stty, quindi ci ho rinunciato. Con ciò deciso, tutto quello che dovevo fare era inserire quanto segue nella riga di comando:
stty intr \^k
Ho verificato che tutto funzionasse come desiderato.
Ora dovevo solo inserire il singolo comando sopra (stty intr \^k) in uno script di avvio. Non sono sicuro di quale sia quello "corretto". Vorrei che questa modifica fosse estesa a tutto il sistema e permanente.
Qualche suggerimento su quale script dovrei inserire il comando?
E infine, per quanto riguarda le risposte del predicatore, sono inutili e inutili.
Alcuni di questi possono essere impostati usando il normale meccanismo di scorciatoie da tastiera di KDE. Nel menu "Impostazioni" di Konsole, fai clic su "Configura scorciatoie" e otterrai una finestra di dialogo che puoi usare per modificare le combinazioni di tasti per le funzioni gestite da KDE. Ciò ti consentirà di rimappare Ctrl + C per copiare e Ctrl + V per incollare, ma tieni presente che una volta fatto ciò, quelle sequenze di tasti non verranno più passate al terminale, quindi non sarai in grado di utilizzare Ctrl+C per interrompere un programma, ad esempio.
Altre funzioni sono controllate da readline
library, che puoi configurare modificando il file ~/.inputrc
. Per fare in modo che Ctrl+Z annulli tutte le modifiche apportate alla riga corrente, dovresti aggiungere
C-z: revert-line
ma quella sequenza di tasti è probabilmente già intrappolata dal terminale, quindi potresti dover usare stty
per svincolarlo prima che funzioni. Prima cerca ^Z
nell'output di stty -a
(come mostrato nella risposta di Ignacio) e poi, ad esempio, se compare in susp = ^Z
, esegui
stty susp ^-
per svincolare quella mappatura dei tasti.
Le altre modifiche che stai chiedendo dovrebbero essere fatte con stty
come dice Ignacio, poiché quelle sono funzioni terminali, ma non sono sicuro di come. Il problema è che non so se il terminale riconosce Shift o, in caso affermativo, come trasmettere tali informazioni a stty
.