Utilisez Ctrl + Retour arrière pour supprimer le mot dans la ligne de commande Windows?

9

Comment pourrais-je effacer le mot entier en utilisant Ctrl-Backspace dans la ligne de commande de Windows XP? Est-ce possible du tout?

altern
la source

Réponses:

5

CMD ou Powershell n'a pas de raccourci natif pour supprimer le mot à gauche ou à droite. Voici quelques exemples de ce que chaque plateforme peut faire. Ce que vous pourriez probablement faire pour le rendre un peu plus facile, utilisez le raccourci pour vous déplacer au début ou à la fin d'un mot et commencer à supprimer ou à revenir en arrière pour supprimer le mot.

ngen
la source
Je ne suis plus sûr que ce soit exact. CTRL + Backspace supprime le dernier mot dans Powershell sur Win10.
deed02392
5

Code AHK pour répliquer la fonctionnalité Ctrl + Retour arrière pour supprimer le mot précédent. Cela permet de sélectionner le mot précédent avec Ctrl + Maj + Gauche, puis d'appuyer sur Supprimer. Fonctionne assez bien pour moi dans le bloc-notes et d'autres programmes, mais est un peu bancal dans win7. Impossible de confirmer le terminal pour le moment.

^BackSpace:: ;;Delete previous word
    Send ^+{Left}{Del}
 Return
Vijay
la source
4

essayez plutôt ceci:

^BackSpace:: ;;Delete previous word
Send ^+{Left}
Loop, 500 {
    Send {Del}
}
Return

il a modifié la réponse précédente en envoyant 500 suppressions après le positionnement sur le mot précédent. 500 peut être excessif, mais alors quoi.

c'est pour autohotkey ( http://www.autohotkey.com/ ) et fonctionne dans une fenêtre cmd, je le mets dans ma section spécifique à la fenêtre cmd avec le code de collage comme ceci:

#IfWinActive ahk_class ConsoleWindowClass
; Paste in command window
^V::
Send !{Space}ep
return

^BackSpace:: ;;Delete previous word
Send ^+{Left}
Loop, 500 {
    Send {Del}
}
Return

#IfWinActive
David Hoppe
la source
Que faire si le curseur était au milieu d'une ligne et qu'il y a plus de mots après le mot précédent?
Codisme
2

Je le voulais depuis longtemps! :) Je voulais juste +1 idée d'utiliser AHK, et suggérer une amélioration du script pour cela. J'aime ^ W pour l'effacement des mots, comme dans les shells Linux, donc je suis content d'avoir trouvé cela.

Le premier script n'a pas fonctionné pour moi en CMD (recule d'un mot puis efface le premier caractère, pas le mot entier). Le script suivant ci-dessus n'était pas tout à fait idéal non plus, donc plutôt que de boucler par exemple 500 fois l'envoi de frappes Del (que j'ai trouvé parfois déborde et envoie des suppressions dans une autre fenêtre si vous changez de focus, eek), il y a plutôt la fonctionnalité F4 de CMD: Invites pour un caractère et supprime jusqu'à ce caractère. Donc, sautez un mot en arrière avec ctrl-gauche, puis F4 suivi de l'espace, pour supprimer jusqu'à un espace. Les seuls inconvénients mineurs sont que (a) il clignote brièvement la boîte de dialogue, et (b) les effacements répétés de mots laissent une pile d'espaces (inoffensifs mais un peu peu attrayants). Je voulais aussi ^ U (effacer au début de la ligne) et ^ A / ^ E / ^ F / ^ B mot / caractère comme les shells linux (même s'ils existent déjà dans CMD, Je touche le type donc je préfère ne pas éloigner mes mains du clavier principal). :) J'ai aussi gardé dans le grand ^ V de David Hoppe pour la pâte.

Donc:

#IfWinActive ahk_class ConsoleWindowClass
; Paste in command window
^V::
Send !{Space}ep
return

; was ^BackSpace, I prefer ^W a la linux
^W:: ;;Delete previous word
Send ^+{Left}
Send {F4}{Space}
Return

^U::   ;;erase to start of line
Send ^{Home}
Return

^A::   ;;move to start of line
Send {Home}
Return

^E::   ;;move to end of line
Send {End}
Return

^F::   ;; move one char forward
Send {Right}
Return

^B::   ;;move one char back
Send {Left}
Return
#IfWinActive
Andrew Burt
la source
0

Ce n'est pas possible nativement dans l'invite de commande Windows.

Matthieu Cartier
la source
0

Je pense qu'il devrait être préférable de sélectionner plus Shift+ Left, car il peut sélectionner le backspce après / avant le mot. par exemple:

^w:: ;;Delete previous word
    Send ^+{Left}+{Left}
    Loop, 5 {
        Send {Del}
    }
Return
!d:: ;; Delete backward word
    Send ^+{Right}+{Rigt}
    Loop, 5 {
        Send {Backspace}
    }
Return
Marslo
la source