Jak mogę wyczyścić bieżący wiersz wiersza polecenia systemu Windows?

63

Jak mogę wyczyścić bieżący wiersz w wierszu polecenia? (Używam Windows 7.)

Zbyt często wpisuję polecenie, wykonuję je, otrzymuję wiele wierszy danych wyjściowych, a następnie chcę wprowadzić inne polecenie. Ale przed wprowadzeniem drugiego polecenia naciskam klawisz strzałki w górę, aby przejrzeć pierwsze polecenie, a potem muszę przytrzymać klawisz Backspace dla około 30 znaków. (Nie mogę po prostu ponownie nacisnąć w dół, aby uzyskać pustą linię. Nie mogę też tego zrobić, naciskając ponownie w górę.)

JellicleCat
źródło
@myrddim ma to, ale poza tym, niektóre słabe alternatywy ciągle się stukają, dopóki nie masz czegoś krótkiego, a potem wstrzymujesz się. innym jest to, że polecenie jest złym poleceniem lub nazwą pliku, a raczej „sdfd” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne ”, więc przesuń kursor nieco strzałką w lewo i po prostu dotknij literę lub nie i wystarczy stuknąć literę na końcu, zepsuć wejście cmd, a następnie nacisnąć ENTER, dostać ten błąd, a następny wiersz będzie pusty.
barlop
@barlop To rzeczywiście słabe obejście! To zajmuje tylko jedno naciśnięcie klawisza. Jeśli nie możesz użyć Escklucza, możesz użyć AutoHotkey do jego symulacji.
iglvzx,

Odpowiedzi:

100

Klawisz Escape ( Esc) wyczyści linię wprowadzania.

Ponadto naciśnięcie Ctrl+Cspowoduje przeniesienie kursora do nowej, pustej linii. Może to być pomocne, ponieważ właśnie sprawdzone dane wejściowe pozostają widoczne podczas wpisywania nowego polecenia.

Myrddin Emrys
źródło
3
A jeśli chcesz wyczyścić cały ekran, możesz użyć clspolecenia. :)
iglvzx,
8
Na marginesie, w systemie UNIX jest to ctrl+u.
0sh
2
Co byłoby istotne, gdyby pytanie nie było specjalnie skierowane do wiersza polecenia systemu Windows 7. :-) Ponadto uważam, że jest to specyficzne dla powłoki, ponieważ jestem pewien, że niektóre powłoki zachowują się tak samo jak Windows podczas naciskania Ctrl+C.
Myrddin Emrys
2
@MyrddinEmrys w systemie Windows tocls
CJ7
2
Uwaga: CTRL+Cpolecenie zakończy również każdą sesję wiersza poleceń, tj. pythonI wróci z powrotem do środowiska wiersza poleceń.
SexyBeast
15

Myyrddin objęte Esci CtrlCktóre wyczyścić bieżącą wejście polecenia i zainicjować nową linię odpowiednio.

Istnieją jednak jeszcze dwa skróty związane z czyszczeniem bieżącego wejścia w CMD: CtrlHomei CtrlEnd.

CtrlHomepozwala skasować wszystkie znaki w danych wejściowych polecenia po lewej stronie kursora .

CtrlEndrobi to samo dla wszystkich znaków po prawej stronie kursora .

Oba są dość przydatne, a po zinternalizowaniu i przyzwyczajeniu się mogą znacznie przyspieszyć edycję w CMD.

Hashim
źródło
2
Nie wiedziałem o tych naciśnięciach klawiszy; Dziękuję Ci. Obyś uzyskał przychylne opinie.
Myrddin Emrys
1
To samo tutaj. Będąc przyzwyczajonym do Basha, zawsze tego chciałem. OP jest moim wybawcą.
uranusjr
Z ciekawości, jakie są odpowiedniki w Bash?
Hashim
1
Z bash (1): (Ctrl) + (X), (Rubout) jest zdefiniowane jako linia zabijania wstecz ; tj. zabij do tyłu do początku linii; tj. to samo co (Ctrl) + (Home) w Windows CMD. „Rubout” może być Backspace lub Delete, więc spróbuj (Ctrl) + (X), (Backspace) i (Ctrl) + (X), (Delete). Ponadto (Ctrl) + (U) to discx-line-discard ; tzn. zabij do tyłu od punktu wstawiania (kursora) do początku linii; tzn. także to samo co (Ctrl) + (Home). (Ctrl) + (K) jest zdefiniowane jako linia zabicia ; tzn. zabij tekst od punktu wstawiania do końca linii; tj. to samo co (Ctrl) + (End) w Windows CMD.
Scott
1
Dla jasności: (Ctrl) + (U) to długotrwała, ogólna cecha Uniksa. Działa w starych, nie Linux, non-GNU i non-bash systemach; to działa w  vi; to działa, jeśli tak  cat > file123. Pozostałe są specyficzne dla linii poleceń bash.
Scott