Odpowiedzi:
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.
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
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
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
W wierszu polecenia systemu Windows nie jest to możliwe.
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