Sử dụng Ctrl + Backspace để xóa từ trong dòng lệnh Windows?


Câu trả lời:


5

CMD hoặc Powershell không có phím tắt riêng để xóa từ sang trái hoặc phải. Dưới đây là một số ví dụ về những gì mỗi nền tảng có thể làm. Những gì bạn có thể có thể làm để làm cho nó dễ dàng hơn một chút là sử dụng phím tắt để di chuyển đến đầu hoặc cuối của một từ và bắt đầu xóa hoặc xóa khoảng cách để xóa từ.


Tôi không chắc điều này là chính xác nữa. CTRL + Backspace xóa từ cuối cùng trong Powershell trên Win10.
deed02392

5

AHK để sao chép chức năng Ctrl + Backspace để xóa từ trước đó. Những gì nó làm là chọn từ trước đó bằng Ctrl + Shift + Trái, sau đó nhấn xóa. Hoạt động đủ tốt cho tôi trong notepad và các chương trình khác, mặc dù có chút rắc rối trong win7. Không thể xác nhận cho thiết bị đầu cuối ngay bây giờ.

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

4

thay vào đó hãy thử:

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

nó đã sửa đổi câu trả lời trước bằng cách gửi 500 lần xóa sau khi định vị từ trước đó. 500 có thể là quá mức, nhưng vì vậy những gì.

cái này dành cho autohotkey ( http://www.autohotkey.com/ ) và hoạt động trong cửa sổ cmd, tôi đặt nó trong phần cụ thể của cửa sổ cmd với mã dán như thế này:

#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

Điều gì xảy ra nếu con trỏ ở giữa một dòng và có nhiều từ theo sau từ trước?
Codism

2

Đã muốn điều này một thời gian dài! :) Chỉ muốn +1 ý tưởng sử dụng AHK và đề xuất cải tiến tập lệnh cho nó. Tôi thích ^ W để xóa từ, như trong shell linux, vì vậy tôi rất vui vì đã tìm thấy cái này.

Kịch bản đầu tiên không hoạt động với tôi trong CMD (nhảy lại một từ sau đó xóa ký tự đầu tiên, không phải toàn bộ từ). Kịch bản tiếp theo ở trên cũng không lý tưởng lắm, thay vì lặp, ví dụ 500 lần gửi tổ hợp phím Del (đôi khi tôi thấy tràn ra và gửi xóa vào một cửa sổ khác nếu bạn thay đổi tiêu điểm, eek), thay vào đó là chức năng F4 của CMD: Nhắc nhở cho một nhân vật và xóa đến char đó. Vì vậy, hãy nhảy một từ trở lại với ctrl-Left, sau đó là F4 theo sau là Space, để xóa tới một khoảng trắng. Nhược điểm nhỏ duy nhất là (a) nó nháy nhanh vào hộp nhắc nhở và (b) các từ lặp đi lặp lại sẽ để lại một đống khoảng trắng (vô hại nhưng hơi kém hấp dẫn). Tôi cũng muốn ^ U (xóa để bắt đầu dòng) và ^ A / ^ E / ^ F / ^ B chuyển động từ / char như shell linux (mặc dù chúng đã tồn tại trong CMD, Tôi chạm vào loại vì vậy không muốn di chuyển tay ra khỏi bàn phím chính). :) Tôi cũng giữ trong ^ V tuyệt vời của David Hoppe để dán.

Như vậy:

#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

Tôi nghĩ rằng nó sẽ tốt hơn nếu chọn nhiều hơn Shift+ Left, bởi vì nó có thể chọn backspce sau / trước từ. ví dụ:

^w:: ;;Delete previous word
    Send ^+{Left}+{Left}
    Loop, 5 {
        Send {Del}
    }
Return
!d:: ;; Delete backward word
    Send ^+{Right}+{Rigt}
    Loop, 5 {
        Send {Backspace}
    }
Return
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.