Existe-t-il un moyen d'enregistrer une macro clavier dans bash?

11

Je souhaite enregistrer définitivement une macro de clavier que j'ai enregistrée à l'aide de C-x (et C-x ). Existe-t-il un moyen simple de "voir la source" de ma macro nouvellement enregistrée afin de pouvoir la lier à un raccourci clavier dans ~ / .inputrc?

Je pensais dump-macrosque ce serait le cas, mais cela ne semble pas ...

mgalgs
la source
Eh bien, je serai damné. Je ne connaissais pas cette fonctionnalité.
Charlie Martin
J'utilise gnome-terminal et gconf-editor pour configurer les raccourcis clavier.
saeedgnu

Réponses:

3

Il s'avère que ce n'est vraiment pas possible, c'est-à-dire que ce n'était pas possible avant ce soir!

Comme j'étais curieux de creuser dans le code source bash de toute façon, j'ai continué et ajouté cette fonctionnalité :). Nous verrons si les responsables bash appliquent mon correctif .

mgalgs
la source
1

Le mieux que je puisse penser est d'essayer:

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

Ou si la macro a plusieurs lignes, essayez:

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

Si vous avez utilisé des caractères de contrôle, vous souhaiterez peut-être y placer un sed pour les remplacer par les bons codes d'échappement pour inputrc.

Ensuite, entrez et modifiez la dernière ligne pour avoir le bon préfixe et suffixe pour ce que vous essayez d'atteindre ...

Dobes Vandermeer
la source
enregistrez une étape, éditez .inputrc, positionnez-la où vous voulez que la macro et Cx e la "saisissent". Mais oui, je dirais que c'est la meilleure façon, bien sûr, vous pouvez le mettre où vous voulez, c'est juste un tas de touches. Si vous n'êtes pas dans le «bon mode / lieu / programme», vous obtiendrez probablement des entrées mal comprises. Mais on pourrait s'attendre à ce que si vous n'utilisez pas la macro au bon endroit, non?
lornix
0

Ajoutez cette ligne à .inputrc:

alias macro
FALL3N
la source
oh, merci d'avoir corrigé cela, mon mauvais: /
FALL3N
0

Il semble que .inputrc vous permette de simplement éditer vos commandes. J'ai essayé d'utiliser dump-macroségalement mais je n'ai pas réussi à le faire fonctionner et il n'y a pas beaucoup de documentation à ce sujet. Peut-être que cela ne fonctionne pas ou est obsolète.

S'il y avait une commande comme xevpour les liaisons emacs, ce serait utile. Dans tous les cas, je pense que votre meilleur pari est de modifier inputrc en utilisant les directives du premier lien ci-dessous en bas de la page. C'est assez simple à faire.

Le deuxième lien est un exemple de fichier inputrc pour vous aider à comprendre comment configurer les macros.

En passant, il y a aussi une commande cool appelée bind -Pqui listera toutes vos macros.

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

Voici un exemple de fichier inputrc:

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

Dennis
la source
Oui, le but est de ne pas avoir à écrire la macro à la main, mais d'imprimer celle que je viens d'enregistrer ...
mgalgs
s'avère dump-macrossimplement afficher ce que vos macros actuellement définies sortiraient.
mgalgs