Eseguire una funzione readline senza la legatura dei tasti?


26

Stavo solo leggendo la man-page di readline e ho scoperto un sacco di grandi comandi che non conoscevo. Tuttavia, molti non hanno associazioni di tasti predefinite. C'è un modo per eseguire i comandi non associati dalla shell?

Non sto chiedendo come associare il comando in ~ / .inputrc, ma invece come eseguirlo come "unico" dalla shell o in uno script bash.

Ad esempio, il comando "variabili-dump". Esiste un comando a cui posso fornire "variabili-dump" come argomento per eseguirlo?


2
Non credo che ci sia, da una rapida occhiata al manuale readline e alla fonte.
Jim Paris,

Risposte:


10

Credo che quello che stai cercando sia il bindcomando stesso. Secondo le man builtininformazioni in esecuzione, bind <readline-command>è possibile eseguire una tantum, tuttavia, non sono riuscito a farlo funzionare come il manuale dice che dovrebbe ... ha continuato a fare in modo che le chiavi non funzionassero per me; il tuo chilometraggio può variare. Ho trovato i seguenti comandi che potrebbero esserti utili.

bind -p # Equivalent to dump-functions [machine readable]
bind -P # Equivalent to dump-functions [human readable]

bind -s # Equivalent to dump-macros    [machine readable]
bind -S # Equivalent to dump-macros    [human readable]

bind -v # Equivalent to dump-variables [machine readable]
bind -V # Equivalent to dump-variables [human readable]

Modifica nota Vorrei sottolineare quanto sia fastidioso che non funzioni come dice il manuale perché se si digita binde quindi si preme il tasto tab per il completamento automatico, mostra tutti i comandi.


3
Chiamando direttamente le funzioni readline: non credo che il manuale affermi effettivamente che puoi farlo; nel caso in cui ti riferisca al modulo di sintassi bind readline-command: sospetto che commandci sia una linea di definizione (mappatura), non una funzione readline richiamabile direttamente . Il completamento automatico è una preconfigurazione esplicitamente preconfigurata su alcune piattaforme (es. Fedora 20), ma non su molte altre ; la sua presenza NON implica che è possibile chiamare direttamente le funzioni readline - è una specifica di completamento del comando abbastanza "stupida": il completamento funziona su qualsiasi argomento fornito bind.
mklement0

1
+1 per i comandi per elencare le funzioni / macro / variabili attive; vale la pena aggiungerlo -Xper i comandi della shell (definiti tramite -x).
mklement0
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.