Użyj Ctrl + Backspace, aby usunąć słowo z wiersza poleceń systemu Windows?

9

Jak mogę usunąć całe słowo za pomocą Ctrl-Backspace w wierszu poleceń systemu Windows XP? Czy to w ogóle możliwe?

altern
źródło

Odpowiedzi:

5

CMD lub Powershell nie ma natywnego skrótu do usuwania słowa z lewej lub prawej strony. Oto kilka przykładów tego, co może zrobić każda platforma. To, co prawdopodobnie możesz zrobić, aby było trochę łatwiejsze, to użyć skrótu, aby przejść na początek lub koniec słowa i rozpocząć usuwanie lub cofanie w celu usunięcia słowa.

ngen
źródło
Nie jestem już pewien, czy to jest dokładne. CTRL + Backspace usuwa ostatnie słowo w PowerShell na Win10.
deed02392
5

Kod AHK do replikacji funkcji Ctrl + Backspace w celu usunięcia poprzedniego słowa. To powoduje zaznaczenie poprzedniego słowa za pomocą Ctrl + Shift + Strzałka w lewo, a następnie naciska klawisz Delete. Działa wystarczająco dobrze dla mnie w notatniku i innych programach, choć w win7 jest nieco nieporadny. Nie można teraz potwierdzić terminala.

^BackSpace:: ;;Delete previous word
    Send ^+{Left}{Del}
 Return
Vijay
źródło
4

spróbuj tego zamiast tego:

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

zmodyfikował poprzednią odpowiedź, wysyłając 500 usunięć po ustawieniu na poprzednim słowie. 500 może być nadmierne, ale co z tego.

to jest dla autohotkey ( http://www.autohotkey.com/ ) i działa w oknie cmd, umieściłem go w sekcji dotyczącej okna cmd za pomocą kodu wklejania w następujący sposób:

#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
źródło
Co jeśli kursor znajdował się na środku linii, a po poprzednim słowie jest więcej słów?
Codism
2

Bardzo długo tego chciałem! :) Chciałem dać +1 pomysłowi użycia AHK i zasugerować ulepszenie skryptu. Lubię ^ W do wymazywania słów, jak w powłokach linuksowych, więc cieszę się, że to znalazłem.

Pierwszy skrypt nie działał dla mnie w CMD (przeskakuje o jedno słowo, a następnie usuwa pierwszy znak, a nie całe słowo). Następny skrypt powyżej też nie był całkiem idealny, więc zamiast zapętlać np. 500 razy wysyłanie naciśnięć klawiszy Del (które znalazłem, czasami się rozlewa i wysyła usunięcia do innego okna, jeśli zmienisz fokus, eek), zamiast tego dostępna jest funkcja F4 CMD: Monity dla postaci i usuwa do tego znaku. Tak więc przeskocz słowo wstecz, przytrzymując klawisz Ctrl-Lewo, a następnie F4, a następnie Spację, aby usunąć spację. Jedynymi drobnymi wadami jest to, że (a) krótko miga okno zachęty i (b) powtarzane kasowanie słów pozostawia stos spacji (nieszkodliwy, ale trochę nieatrakcyjny). Chciałem także ^ U (kasowanie na początku wiersza) i ruchu słowa / znaku ^ A / ^ E / ^ F / ^ B, podobnie jak powłoki linux (nawet jeśli już istnieją w CMD, Dotykam pisma, więc wolę nie odrywać rąk od głównej klawiatury). :) Trzymałem też w świetnym ^ V Davida Hoppe do wklejania.

A zatem:

#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
źródło
0

W wierszu polecenia systemu Windows nie jest to możliwe.

Matthieu Cartier
źródło
0

Myślę, że powinno być lepiej, jeśli wybierzesz więcej Shift+ Left, ponieważ może wybrać backspce po / przed słowem. na przykład:

^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
źródło