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


21

Sto usando Kubuntu 10.04. Vorrei cambiare alcuni dei tasti di scelta rapida standard per bash (terminale).

Ecco le scorciatoie che vorrei impostare:

  • Ctrl- Cper copiare negli Appunti il ​​testo selezionato nel terminale.

  • Ctrl- Vper incollare dagli appunti nel terminale.

  • Ctrl- Zper annullare la modifica sulla riga corrente nel terminale.

  • Ctrl- Shift- C(o meglio, Super- C) per terminare il comando.

  • Ctrl- Shift- Z(o Super- Z) per essere il comando in background.

  • Ctrl- Shift- V(o Super- V) essere il comando letterale insert (o qualunque cosa Ctrl- abbia zfatto prima).

Come apporto queste modifiche?

A proposito, mi piace il modo in cui il terminale funziona su OS X. L'uso del tasto comando rende tutti i comandi copia / incolla molto coerenti (a differenza di molte altre cose in OS X).

PS Ho letto la pagina man di bash e non ha aiutato. Mi ha dato idee, ma ho bisogno di esempi specifici per le combinazioni di cui sopra. Grazie.


alcune di queste "scorciatoie" non possono essere "implementate" in bash, ma devono essere messe sul terminale stesso (xterm, gnome-terminal, konsole ecc.) ad es. "testo selezionato", "appunti"
akira

Risposte:


10

Quelle non sono funzionalità di bash, sono funzionalità del driver del terminale. Come 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

5
OK. Grazie per l'indizio. Ora, vorrei ancora raggiungere il mio obiettivo. E so anche che inputrc può rimappare Ctrl-C. Ma non mi interessa davvero come lo faccio, voglio solo sapere come rimappare queste scorciatoie in un terminale.
Paul,

15
Ecco il "pesce": stty intr \ ^ k (dove il comando termina, precedentemente Ctrl-C ora diventa Ctrl-K, K può essere qualsiasi tasto alfa) Nessuno "mi ha dato quel pesce". Ho lavorato duramente per trovarlo da solo. Quindi predicare con i proverbi ti fa sembrare un idiota, IMO.
Paul

Come puoi rimappare in Ctrl + Maiusc + C?
crypdick il

8

Questo è quasi completamente risolto ora. Parte della soluzione è stata per la prima volta portata 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 mia 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 sono voluti 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 stty, ma non lo era (per me). Ho finito per sperimentare basandomi su vari indizi, come quelli pubblicati sopra.

Ho deciso quale chiave non numerica volevo sostituire Ctrl-C come comando di chiusura. (Ho usato "k"). Non ho mai trovato informazioni su come trasmettere un modificatore di spostamento a stty, quindi ho rinunciato a questo. Con quello deciso, tutto quello che dovevo fare era inserire quanto segue sulla riga di comando:

stty intr \ ^ k

Ho verificato che tutto ha funzionato come desiderato.

Ora dovevo solo posizionare il singolo comando sopra (stty intr \ ^ k) in uno script di avvio. Non sono sicuro di quale sia quello "corretto". Vorrei che questo cambiamento fosse esteso al sistema e permanente.

Qualche suggerimento su quale script dovrei inserire il comando?

E infine, per quanto riguarda le risposte predicate, sono inutili e inutili.


4

Alcuni di questi possono essere impostati usando il normale meccanismo di scelta rapida da tastiera di KDE. Nel menu "Impostazioni" di Konsole, fai clic su "Configura scorciatoie" e otterrai una finestra di dialogo che puoi usare per cambiare i collegamenti dei tasti per le funzioni che sono gestite da KDE. Ciò ti consentirà di rimappare Ctrl + C per copiare e Ctrl + V per incollare, ma tieni presente che una volta che lo fai, quelle sequenze di tasti non saranno più passate al terminale, quindi non sarai in grado di usare Ctrl + C per interrompere un programma, ad esempio.

Altre funzioni sono controllate dalla readlinelibreria, che è possibile configurare modificando il file ~/.inputrc. Per ottenere Ctrl + Z per ripristinare tutte le modifiche apportate sulla riga corrente, ti consigliamo di aggiungere

C-z: revert-line

ma quella sequenza di tasti è probabilmente già intrappolata dal terminale, quindi potresti sttydoverlo usare per separarlo prima che funzioni. Prima cerca ^Znell'output di stty -a(come mostrato nella risposta di Ignacio) e poi, ad esempio, se si presenta in susp = ^Z, esegui

stty susp ^-

per separare quella mappatura dei tasti.

Le altre modifiche che stai chiedendo dovrebbero essere fatte sttycome dice Ignacio, dal momento che quelle sono funzioni terminali, ma non sono sicuro di come. Il problema è che non so se il terminale riconosce Shift, o se lo fa, come trasmettere tali informazioni stty.


3

Bash utilizza emacso vimodalità sulla riga di comando. Non ha alcun concetto di "selezione" o "appunti". Usa cose come "kill buffer" e "point", "mark", "word", "line", "kill" e "yank", ecc.

Cercare di utilizzare la funzionalità GUI come calzascarpe sarà frustrante nella migliore delle ipotesi e non funzionerà completamente. Si dovrà cercare di combinare le funzioni di stty, readlinee il vostro terminale (presumibilmente Terminal.appper voi). Avrete bisogno di rimappare funzioni quali intr, susp, lnexte così via, in modo da poter continuare a utilizzare le loro caratteristiche.

Consiglio vivamente contro tali modifiche radicali. Semplicemente non è stato progettato per fare quello che vuoi.

Quando a Roma...


Dave, per un sistema che funziona esattamente come OS X, potrei suggerirti di usare OS X? Come ha suggerito Dennis, anche se riuscirai a farlo funzionare, sarai piuttosto zoppicante quando accedi come qualsiasi cosa tranne te sul tuo computer.
risposta
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.