En mode bash emacs, est-il possible de supprimer jusqu'au caractère barre oblique précédent? Par exemple, si j'ai entré la commande cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path
et que je souhaite simplement supprimer le. reallylongincorrectfolder
Y a-t-il un raccourci? C'est un scénario très comman pour moi en bash. Quelque chose comme dF<char>
dans vi?
15
~/.inputrc
, ajouter une ligne comme celui - ci à ce fichier:"\C-b": unix-filename-rubout
. Pour voir l'effet, vous devrez démarrer un nouveau shell bash (ou exécuter un autre programme qui utilise la bibliothèque GNU readline).Alt- Backspaceet Ctrl- wsont généralement mappés
backward-kill-word
, ce qui fait cela. Si vous souhaitez savoir à quoi il est mappé sur votre système (le cas échéant), exécutezbind -P | grep '^backward-kill-word'
.Comme expliqué par @Barmar , ceci est différent de
unix-word-rubout
, ce qui supprime la limite d'espace précédente.la source
unix-word-rubout
: Tuez le mot derrière le point, en utilisant un espace blanc comme limite de mot.unix-filename-rubout
est légèrement meilleure, car elle s'arrêtera à l'espace blanc et se coupera.Mettez ceci dans votre
.inputrc
et lancez un nouveau shell:C-b:unix-filename-rubout
Ctrl- befface maintenant vers l'arrière jusqu'à la prochaine barre oblique.
Nirvana!
N'oubliez pas Ctrl- XCtrl- Elancera votre éditeur afin que vous puissiez éditer une ligne de commande compliquée confortablement.
la source