Как я могу стереть все слово с помощью Ctrl-Backspace в командной строке Windows XP? Это вообще возможно?
Как я могу стереть все слово с помощью Ctrl-Backspace в командной строке Windows XP? Это вообще возможно?
Ответы:
CMD или Powershell не имеют встроенного ярлыка для удаления слова слева или справа. Вот несколько примеров того, что может сделать каждая платформа. Вероятно, вы могли бы сделать это немного проще, воспользовавшись сочетанием клавиш, чтобы перейти к началу или концу слова и начать удаление или возврат, чтобы удалить слово.
AHK Код для репликации функциональности Ctrl + Backspace для удаления предыдущего слова. Для этого выберите предыдущее слово с помощью Ctrl + Shift + Left, а затем нажмите клавишу Delete. Работает достаточно хорошо для меня в блокноте и других программах, хотя это немного шатко в win7. Не могу подтвердить для терминала прямо сейчас.
^BackSpace:: ;;Delete previous word
Send ^+{Left}{Del}
Return
попробуйте это вместо:
^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
Давно хотел этого! :) Просто хотел + 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
Это не возможно изначально в командной строке Windows.
Я думаю, что было бы лучше, если выбрать больше 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