Jouer avec des macros:
Liez la touche de fonction F8pour multiplier par deux le dernier mot (en haut de l'espace précédent) (code de touche F8 trouvé en utilisant Ctrl-V F8
):
$ bind '"\e[19~": "\C-w\C-y\C-y"'
Cela pourrait être rendu permanent en envoyant le même texte à ~/.inputrc
$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc
puis tapez:
écho 0F8F8F8F8
pour obtenir 2 ^ 4 fois le zéro. (encore 5 touches).
ou tapez:
livre d'échoF8F8F8
pour obtenir 2 ^ 3 mots de livre.
Encore plus rapide:
Multipliez par 4:
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'
écho 0F8F8
3 touches.
Multipliez par 8 (le même nombre que la touche de fonction)
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
écho 00F8
Encore 3 touches.
Tricher?
Trichez en multipliant par 16.
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
écho 0F8
Seulement 2 touches. (et toujours une fonction simple utile)
^^^^^^^^^^^^^^^^^ (base 36? Hah!) :-P
Tricher clairement:
$ bind '"\e[19~": "0000000000000000"'
écho F8
Une seule touche (oui: une ).
Modification de la liaison pour ctrl+U:
Envoyez ceci à ~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
Relisez le ~/.inputrc
fichier:
ctrl+Xctrl+R
faites-le comme d'habitude dans emacs (comme vous le vouliez):
foo --bar = baz ctrl+U16 ctrl+U0
7 touches (après la "mise en place").
Légèrement plus court:
Utilisez le "multiplier par 4" par défaut de "l'argument universel" et terminez par
ctrl+V 0
foo --bar = baz ctrl+Uctrl+Uctrl+V0
Seulement 5 clés.
Utilisation de l' alt+naccès à (arg: n)
foo --bar = baz Alt+16Ctrl+V0
C'est 6 clés pour obtenir les 16 zéros.
Ne modifier aucun raccourci clavier:
Si dans votre bash vous en avez bash C-u kills the currently-being-typed line
.
C'est parce que "\C-u":
c'est lié à unix-line-discard
.
Mais cela pourrait aussi aider:
quand, ce qui est avant que le curseur ne soit effacé, il est également placé dans le "kill-ring".
Donc , ctrl+u
permet d' effacer et ctrl+y
Yanks retour ce qui a été effacé.
Sur une ligne propre: tapez 00
effacez-le et tirez-le deux fois pour le faire 0000
.
Répétez l'opération pour obtenir 00000000
(8 zéros), enfin tapez la commande et tirez deux fois en arrière.
Le premier jeu (7 touches ctrlmaintenues enfoncées):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
Le deuxième set (5 touches)
ctrl+Uctrl+Yctrl+Y ctrl+U
Cela obtiendra huit zéros dans l'anneau d'effacement, puis tapez ce que vous voulez:
foo --bar = baz ctrl-Y ctrl-Y
obtenir:
foo --bar=baz 0000000000000000
Après avoir compris l'idée, vous pouvez également taper ce dont vous avez besoin, aller au début de la ligne ( ctrl-Y), faire comme ci-dessus (jusqu'à huit zéros) aller à la fin ( ctrl-E) et tirer deux fois.
foo --bar = baz ctrl-A00ctrl-Uctrl-Yctrl-Y ctrl-Uctrl-Yctrl-Y ctrl-U ctrl-Ectrl-Yctrl-Y
C'est 15 touches (à côté de la commande elle-même).
Pas court, je sais, mais cela ne fonctionne qu'avec ce qui était disponible.
C'est un peu plus court:
0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Yctrl-A foo --bar = baz
C'est 11 touches
know what you want to do
. Dans une commande imbriquée complexe, comment bash saurait-il quelles parties vous vouliez voir le résultat de l'exécution dans l'historique par opposition à la commande elle-même? Et les variables? En bref bash va toujours avoir lecode
dans l'historique, pas le résultat de l'exécution du code.