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 ...


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 .


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 ...


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

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.