Jeśli używam terminala i wpisuję wiersz polecenia, czy istnieje skrót klawiszowy lub jakiś sposób na wyczyszczenie / usunięcie tego wiersza?
Na przykład, jeśli moja bieżąca linia / polecenie jest naprawdę długa:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Czy istnieje skrót lub polecenie, aby przejść z powyższego do:
>
?
Zazwyczaj naciskam ↓klawisz, a jeśli moja obecna linia jest zupełnie nowa w historii, to ją wyczyści. Ale jeśli przejrzę historię poleceń za pomocą ↑klawisza i zacznę edytować lub używać tych poleceń, ↓zmienię tylko wiersz polecenia na następne najnowsze polecenie w historii, więc nie będzie działać tutaj, chyba że nacisnę ↓wiele razy.
Odpowiedzi:
Możesz użyć Ctrl+, Uaby wyczyścić do początku.
Możesz użyć Ctrl+, Waby usunąć tylko słowo.
Możesz także użyć Ctrl+, Caby anulować.
Jeśli chcesz zachować historię, możesz użyć Alt+ Shift+, #aby dodać komentarz.
Ściągawka w trybie edycji Bash Emacs
źródło
<kbd>...</kbd>
tagu pokazywania kluczy w SO.ESC
to własny klawisz modyfikujący w bash. Służy do anulowania nawigacji po historii (CTRL
+r
) lub zamiany dwóch ostatnich słów za kursorem (ESC
+t
).Podsumowując wszystkie odpowiedzi:
źródło
Alt + D
Alt
+D
nie działa, dlatego go nie uwzględniłem :(CTRL + L
czyści ekran, ale zachowuje to, co zostało wpisane w bieżącym wierszu poleceń.Ctrl + Alt + >
przesuwa się na koniec historii wprowadzania, co jest idealne, gdy chcesz anulować przeszukiwanie historii.Mam pełną listę skrótów:
źródło
CTRL
+L
(16.) zachowuje treść bieżącego wiersza poleceń.Ctrl
+h
: usuń znak przed kursoremCtrl+ A, Ctrl+, Kaby wyczyścić bieżącą linię w terminalu. W razie potrzeby możesz go przywołać za pomocą Ctrl+ Y.
źródło
lub jeśli używasz trybu vi, naciśnij, Esca następniecc
odzyskać to, co właśnie skasowałeś, Esca potem p:)
źródło
echo 'set editing-mode vi' >> ~/.inputrc
. Działa również w miejscach takich jak monity interpretera Pythona i niektóre klienty SQLNie jestem pewien, czy ci się podoba, ale używam Ctrl+ A(aby rozpocząć linię) i Ctrl+ K(aby usunąć linię) Znałem te polecenia z emacsa i zorientowałem się je przypadkowo.
źródło
Alternatywą dla Ctrl+ A, Ctrl+ Kjest Ctrl+ E, Ctrl+ U.
źródło
Ctrl+ w: przenieś znaki i (wiele) słów pozostawionych z kursora do bufora dzwonka
Ctrl+ y: wstaw ostatni wpis z bufora dzwonka, a następnie możesz użyć Alt+, yaby obracać w buforze dzwonka. Naciśnij kilkakrotnie, aby przejść do „poprzedniego” wpisu w buforze dzwonka.
źródło
CTRL+ Ri zacznij pisać, aby wyszukać poprzednie polecenia w historii. Pokaże pełne linie.
CTRL+ Rponownie, aby przełączyć na cykl.
źródło
Ctrl + W usunie słowo po lewej stronie.
źródło
Dodaj do listy:
W trybie Emacsa naciśnięcie Esc, a następnie Rusunięcie całej linii.
Nie wiem dlaczego, po prostu to znalazłem. Może nie jest używany do usuwania linii, ale zdarza się, że ma ten sam efekt. Jeśli ktoś wie, proszę powiedz mi, dziękuję :)
Działa w Bash, ale nie działa w Fish.
źródło
revert-line
polecenie readline: „Cofnij wszystkie zmiany dokonane w tym wierszu”. Domyślnie jest on powiązany zM-r
(Meta-R), którym może być zarówno Alt-R, jak i Esc R. Oznacza to, że tak naprawdę nie usuwa on wiersza, tylko gdy na początku był pusty; jeśli przewiniesz wstecz w historii poleceń i zmienisz polecenie, a następnie wydaj polecenie,revert-line
zmieni się z powrotem na polecenie, które było pierwotnie, i nie usunie wiersza.Aby usunąć cały wiersz bez względu na to, gdzie znajduje się kursor, możesz użyć
kill-whole-line
polecenia, ale domyślnie nie jest ono powiązane. Można go powiązać na przykład z Ctrl+ Alt+ K, wstawiającdo pliku inicjującego Readline (konwencjonalnie
~/.inputrc
).Różne uwagi:
Aby uniknąć przypadkowego ponownego przypisania sekwencji klawiszy, która jest już używana dla czegoś innego, możesz sprawdzić wszystkie swoje powiązania za pomocą
bind -P
. Sprawdź sugerowane powiązanie zINPUTRC
. Jeśli nie jest ustawiony, domyślnie jest to~/.inputrc
lub (jeśli to nie istnieje)/etc/inputrc
. Zauważ, że jeśli masz~/.inputrc
,/etc/inputrc
zostanie zignorowany.bind
wbudowaneźródło
Aby wyczyścić całą linię (2 różne sposoby):
źródło
Alt+ #komentuje bieżącą linię. W razie potrzeby będzie dostępny w historii.
źródło