Vorrei essere in grado di copiare e incollare il testo nella riga di comando in Bash utilizzando gli stessi collegamenti da tastiera che Emacs utilizza per impostazione predefinita (ovvero utilizzando C-space
per set-mark
, M-w
per copiare testo C-y
, M-y
per incollarlo, ecc.).
La documentazione GNU Bash afferma che Bash viene fornito con alcuni di questi collegamenti chiave impostati di default.
Ad esempio, yanking ( C-y
) funziona per impostazione predefinita sul mio terminale. Tuttavia, non riesco a far funzionare i comandi set-mark
e copy
, e per impostazione predefinita non sembrano essere associati a nessuna chiave.
Di solito, il modo in cui un utente può definire i propri collegamenti chiave è aggiungerli .inputrc
. Quindi ho cercato e trovato le seguenti funzioni bash nella documentazione che presumo possa aiutarmi a definire il comportamento simile a Emacs che desidero (cioè set-mark
con C-space
e copy
con M-w
).
copy-region-as-kill ()
Copia il testo nella regione nel kill buffer, in modo che possa essere immediatamente strappato. Per impostazione predefinita, questo comando non è associato.
e
set-mark (C-@)
Impostare il segno sul punto. Se viene fornito un argomento numerico, il segno viene impostato su quella posizione.
Se ho capito bene, quanto sopra significa che copy-region-as-kill
non è associato a nessuna sequenza di tastiera per impostazione predefinita, mentre set-mark
è associato per C-@
impostazione predefinita.
Ho provato C-@
sul mio terminale, ma non credo che funzioni set-mark
perché non vedo alcun testo evidenziato quando muovo il cursore. In ogni caso, ho provato ad aggiungere le associazioni di tastiera ( M-w
e C-
) alle funzioni copy-region-as-kill
e set-mark
sopra nel mio .inputrc
e quindi ricaricarlo con C-x C-r
, ma questo non ha funzionato. So che le mie altre voci .inputrc
funzionano perché ho altre combinazioni di tasti definite dall'utente.
C'è qualcosa che sto facendo di sbagliato? Mi sto perdendo qualcosa?
bash
e quale programma terminale stai usando?