91 votes

Bash : effacer le mot qui précède le curseur

Considérons la ligne de commande bash suivante, où ^ désigne l'emplacement du curseur :

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

Je voudrais commit un fichier différent avec le même message. Comment puis-je supprimer le mot actuel, de l'emplacement du curseur à l'espace suivant ? Existe-t-il aussi un raccourci pour la suppression en arrière, former le curseur jusqu'au premier espace en arrière ?

Mise à jour : ctrl + w efface en arrière, mais quel raccourci efface un mot en avant ?

62voto

Nykakin Points 3562

J'ai répondu à une question similaire sur unix.stackexchange.com :

Bash possède des commandes de lecture en ligne qui ne sont pas liées par défaut. Vous pouvez trouver les trouver à la référence : http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

La commande que vous recherchez s'appelle "Shell-backward-kill-word". Vous devez d'abord sélectionner un raccourci. Utilisons Crtl+p, puisque c'est la "commande précédente". précédente" - comme la flèche vers le haut.

bind '"\C-p": shell-backward-kill-word'

La seule différence est que vous devez utiliser la commande "Shell-kill-word" à la place, puisque vous voulez supprimer le forward.

Il existe également une commande "tuer-mot" avec Meta + d raccourci (essayez Esc + d si vous n'avez pas de clé Meta). Elle ne supprimera qu'une partie du chemin à la fois.

13voto

visyoual Points 147

J'ai testé à la fois le esc + d y alt / opt + d sur OSX Mavericks et ils fonctionnent là aussi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X