Ajoutez ceci à ~/.bashrc
# expand things like !310:1 after spaces.
bind Space:magic-space
C'est un peu effrayant à utiliser
- !:0 (0ème argument de la dernière commande, c'est-à-dire le nom du programme)
- !:2 (2ième argument de la dernière commande)
- ! ! (l'intégralité de la dernière commande) (sudo ! !)
- !$ (dernier argument de la dernière commande)
- !* (tous les arguments de la dernière commande)
- !ssh (dernière commande commençant par ssh)
- ^chunky^bacon (dernière commande sauf que le premier chunky est remplacé par du bacon)
- !:gs \chunky\bacon (... tout le chunky est remplacé par du bacon)
sans vérifier ce qui est substitué avant d'exécuter la commande.
Lorsque vous utilisez des jokers comme *.txt ou des globs comme hello.{txt,org}, vous pouvez vérifier au préalable ce qui est fait avec la commande echo.
echo rm *.bak
rm *.bak
Mais pour des choses comme !:0, vous n'utilisez pas echo, parce qu'une fois que echo est fait, la dernière commande est la commande echo. Vous avez peut-être entendu parler de ce phénomène comme du principe "l'observation foire les choses" en mécanique quantique.
Au lieu de cela, vous ajoutez simplement "bind Space:magic-space" dans votre ~/.bashrc et ensuite, chaque fois que vous appuyez sur espace, les trucs comme !:0 sont étendus juste là.