9

Как я могу стереть все слово с помощью Ctrl-Backspace в командной строке Windows XP? Это вообще возможно?

6 ответов6

5

AHK Код для репликации функциональности Ctrl+Backspace для удаления предыдущего слова. Что это делает, это выбирает предыдущее слово с помощью Ctrl+Shift+Left, а затем нажимает удалить. Работает достаточно хорошо для меня в блокноте и других программах, хотя в win7 это немного шатко. Не могу подтвердить для терминала прямо сейчас.

^BackSpace:: ;;Delete previous word
    Send ^+{Left}{Del}
 Return
5

CMD или Powershell не имеют встроенного ярлыка для удаления слова слева или справа. Вот несколько примеров того, что может сделать каждая платформа. Вероятно, вы могли бы сделать это немного проще, воспользовавшись сочетанием клавиш, чтобы перейти к началу или концу слова и начать удаление или возврат, чтобы удалить слово.

4

попробуйте это вместо:

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

он изменил предыдущий ответ, отправив 500 удалений после размещения предыдущего слова. 500 может быть чрезмерным, но что с того.

это для autohotkey (http://www.autohotkey.com/) и работает в окне cmd, я поместил его в специальный раздел окна cmd с кодом вставки, например так:

#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
2

Давно хотел этого! :) Просто хотел +1 идею использования AHK и предложить улучшение сценария для него. Мне нравится ^ W для стирания слов, как в оболочках Linux, так что я рад, что нашел это.

Первый скрипт не работал для меня в CMD (откатывает слово назад, а затем удаляет первый символ, а не все слово). Следующий скрипт также не совсем идеален, так что вместо того, чтобы делать циклы, например, 500-кратную отправку нажатий клавиш Del (которые я иногда обнаруживал, перетекает и удаляет удаления в другое окно, если вы измените фокус, eek), вместо этого есть функциональность CM4 F4: Подсказки для персонажа и удаляет до этого символа. Итак, вернитесь на слово назад с помощью ctrl-Left, затем F4, а затем пробела, чтобы удалить до пробела. Единственными незначительными недостатками является то, что (а) он кратко мигает в окне подсказки, и (б) повторное удаление слов оставляет кучу пробелов (безвредно, но немного непривлекательно). Я также хотел ^ U (стереть в начало строки) и ^ A/^ E/^ F/^ B слово /символ движения, как оболочки Linux (даже если они уже существуют в CMD, я касаюсь типа, поэтому предпочитаю не двигать руками подальше от основной клавиатуры). :) Я также держал в замечательном ^ V для Дэвида Хоппе пасту.

Таким образом:

#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
0

Я думаю, что было бы лучше, если выбрать больше Shift + Left, потому что он может выбрать backspce после / перед словом. например:

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

Это не возможно изначально в командной строке Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .