C'è un modo per salvare una macro di tastiera in bash?


11

Vorrei salvare in modo permanente una macro di tastiera che ho registrato usando C-x (e C-x ). C'è un modo semplice per "vedere la fonte" per la mia macro appena registrata in modo da poterla associare a una scorciatoia da tastiera in ~ / .inputrc?

Pensavo che l' dump-macrosavrebbe fatto, ma non sembra ...


Bene, sarò dannato. Non sapevo di questa funzione.
Charlie Martin,

Uso gnome-terminal e gconf-editor per configurare le scorciatoie da tastiera.
Saeedgnu,

Risposte:


3

Si scopre che non è davvero possibile, cioè non è stato possibile fino a stasera!

Dato che ero curioso di scavare nel codice sorgente di bash comunque sono andato avanti e ho aggiunto questa funzione :). Vedremo se i manutentori di bash applicano la mia patch .


1

Il meglio che mi viene in mente è provare:

echo >>.inputrc '<ctrl-x e>'

Oppure se la macro ha più righe prova:

echo >>.inputrc <<EOF
<ctrl-x e>
EOF

Se hai usato personaggi di controllo, potresti voler inserire un sed per sostituirli con i giusti codici di escape per inputrc.

Quindi vai e modifica l'ultima riga per avere il prefisso e il suffisso giusti per quello che stai cercando di ottenere ...


salva un passaggio, modifica .inputrc, posizionalo dove vuoi che la macro e Cx e 'digitino'. Ma sì, direi che questo è il modo migliore, ovviamente, puoi metterlo dove vuoi, è solo un mucchio di tasti. Se non sei nella "giusta modalità / luogo / programma", probabilmente otterrai input incompresi. Ma ci si aspetterebbe che se non avessi usato la macro nel posto giusto, giusto?
lornix,


0

Sembra che .inputrc ti permetta solo di modificare i tuoi comandi. Ho provato dump-macrosanche a usarlo ma non sono riuscito a farlo funzionare né c'è molta documentazione a riguardo. Forse non funziona o è deprecato.

Se ci fosse un comando come xevper i bind emacs, sarebbe utile. In ogni caso, penso che la soluzione migliore sia quella di modificare inputrc usando le linee guida nel primo link in basso nella parte inferiore della pagina. È abbastanza facile da fare.

Il secondo link è un esempio di file inputrc per aiutare a capire come impostare le macro.

A parte questo, c'è anche un bel comando chiamato bind -Pche elencherà tutte le tue macro.

http://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#Miscellaneous-Commands

Ecco un esempio di file inputrc:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File


Sì, il punto è non dover scrivere la macro a mano, ma invece stampare quella che ho appena registrato ...
mgalgs

scopre dump-macrossemplicemente che cosa avrebbero prodotto le tue macro attualmente definite.
mgalgs
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.