GNU/Linux >> Linux Esercitazione >  >> Linux

cambiare i tasti di scelta rapida bash come Ctrl-C?

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 .


Linux
  1. 9 utili tasti di scelta rapida per VLC Media Player

  2. 10 utili tasti di scelta rapida per lo scrittore di LibreOffice

  3. Tasti di scelta rapida indipendenti dal layout della tastiera?

  4. Come modificare la scorciatoia della parola precedente/successiva in Bash?

  5. Cambia la scorciatoia da tastiera dell'otturatore per acquisire schermate

Come modificare automaticamente lo sfondo di GNOME a intervalli utilizzando BASH

Modifica ricorsivamente le estensioni dei file in Bash

Esegui il comando bash sulla pipeline jenkins

conda source disattiva:bash:disattiva:nessun file o directory di questo tipo

chiavi ssh ssh-agent bash e ssh-add

Come modificare la risoluzione di Bash per una VM Debian?