Используйте Ctrl + Backspace для удаления слова в командной строке Windows?

Ответы:

5

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

NGEN
источник
Я не уверен, что это больше точно. CTRL + Backspace удаляет последнее слово в Powershell на Win10.
deed02392
5

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

^BackSpace:: ;;Delete previous word
    Send ^+{Left}{Del}
 Return
Виджай
источник
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
Дэвид Хоппе
источник
Что, если курсор был в середине строки и после предыдущего слова было больше слов?
Кодизм 22.01.15
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

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

Матье Картье
источник
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
Marslo
источник