Jak wyczyścić / usunąć bieżącą linię w terminalu?

Jeśli używam terminala i wpisuję wiersz tekstu dla polecenia, czy istnieje skrót klawiszowy lub jakikolwiek sposób na wyczyszczenie / usunięcie tego wiersza?

Na przykład, jeśli moja bieżąca linia / polecenie jest czymś naprawdę długim jak:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

Czy istnieje hotkey lub polecenie, aby przejść z powyższego do:

>

?

Zazwyczaj naciskam klucz, a jeśli moja obecna linia jest zupełnie nowa w historii, to ją wyczyści. Ale jeśli przeglądam historię moich poleceń poprzez Klawisz i zacznij edytować lub używać tych poleceń, zmieni tylko monit na następną najnowszą komendę w historii, więc nie działa tutaj, chyba że nacisnę wiele razy.

 573
Author: Benjamin W., 2012-03-13

12 answers

Możesz użyć Ctrl+U , aby oczyścić się do początku.

Możesz użyć Ctrl+w aby usunąć tylko słowo.

Możesz również użyć Ctrl+C aby anulować.

Jeśli chcesz zachować historię, możesz użyć Alt+Shift+# żeby to skomentować.


Ściągawka Trybu Edycji Bash Emacs

 1062
Author: kev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-04 09:41:54

Aby podsumować wszystkie odpowiedzi

  • Wyczyść linię: możesz użyć Ctrl+U , aby oczyścić się do początku.
  • Wyczyść linię: Ctrl+A Ctrl+K aby wyczyścić bieżącą linię w terminalu
  • Anuluj bieżącą linię poleceń: Ctrl+C .
  • Przypomnij usunięte polecenie: Ctrl+Y (then Alt+Y )
  • Idź na początku linii: Ctrl+A
  • Idź na końcu linii: Ctrl+E
  • Usuń słowa do przodu na przykład, jeśli jesteś w środku polecenia: Ctrl+K
  • Usuń znaki z lewej strony, aż do początku słowa: Ctrl+W
  • aby wyczyścić cały wiersz polecenia: Ctrl + L
  • przełączanie między początkiem linii a bieżącą pozycją kursora: Ctrl + XX
 442
Author: J4cK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-14 12:19:45

Mam pełną listę skrótów:

  1. Ctrl+A Przesunięcie kursora na początek linii
  2. Ctrl+e Przesunięcie kursora na koniec linii
  3. Ctrl+b Przesuń o jeden znak
  4. Alt+b cofnij się o jedno słowo
  5. Ctrl+f Przesuń o jeden znak
  6. Alt+f Przesuń do przodu o jedno słowo
  7. Ctrl+D Usuń bieżący znak
  8. Ctrl+W Wytnij ostatnie słowo
  9. Ctrl+K Wytnij wszystko za kursorem
  10. Alt+D Wytnij słowo za kursorem
  11. Alt+W Wytnij słowo przed kursorem
  12. Ctrl+y Wklej Ostatnie usunięte polecenie
  13. Ctrl+_ Undo
  14. Ctrl+U Wytnij wszystko przed kursor
  15. Ctrl+xx przełączanie między pierwszą i bieżącą pozycją
  16. Ctrl+L Wyczyść terminal
  17. Ctrl+C Anuluj polecenie
  18. Ctrl+r polecenie wyszukiwania w historii-wpisz szukany termin
  19. Ctrl+j Zakończ wyszukiwanie przy wpisie bieżącej historii
  20. Ctrl+G Anuluj wyszukiwanie i przywróć oryginał linia
  21. Ctrl+N następne polecenie z historii
  22. Ctrl+P poprzednie polecenie z historii
 110
Author: tharunkumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-01 17:23:21

Ctrl+A, Ctrl+K aby wyczyścić bieżącą linię w terminalu. Następnie możesz go przywołać za pomocą Ctrl+Y jeśli potrzebujesz.

 20
Author: Spyros Mandekis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-02 21:28:20

Lub jeśli używasz trybu vi, naciśnij Esc, a następnie cc

Aby odzyskać to co właśnie skasowałeś, Esc a potem p :)

 15
Author: bluTaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-13 16:45:07

Alternatywa dla Ctrl+A, Ctrl+K jest Ctrl+E, Ctrl+U .

 9
Author: Andrey Starodubtsev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-02 21:30:37

Nie wiem czy ci się podoba ale używam Ctrl+A (aby przejść do początku linii) i Ctrl+K (aby usunąć linię) znałem te polecenia z Emacsa i przypadkowo je rozgryzłem.

 8
Author: Muhammet Can,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-02 21:25:11
  • Ctrl+u: przesuń do początku linii do bufora pierścienia
  • Ctrl+k: przesuń do końca linii do bufora pierścienia
  • Ctrl+w: przesuń znaki i (wiele) słowa w lewo od kursora do bufora pierścienia

  • Ctrl+y : Wstaw ostatni wpis z bufora pierścienia, a następnie możesz użyć Alt+y aby obracać się poprzez swoje bufor pierścieniowy. Naciśnij wiele razy, aby przejść do "poprzedniego" wpisu w buforze pierścienia.

 6
Author: Cyrus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-26 07:08:57

CTRL+R {[2] } i zacznij wpisywać, aby wyszukać poprzednie polecenia w historii. Pokaże pełne linie.
CTRL+R ponownie do cyklu.

 3
Author: Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-28 15:39:23

Ctrl + w wyczyści słowo po lewej stronie.

 2
Author: bendangelo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 17:11:27

Dodaj do listy:

W trybie Emacs naciśnij Esc , a następnie R , usunie cały wiersz.

Nie wiem dlaczego, tak się składa, że go znalazłem. Może nie jest używany do delete line, ale ma taki sam efekt. Jeśli ktoś wie, proszę mi powiedzieć, dzięki:)

Działa w Bash, ale nie działa w Fish.

 2
Author: PickBoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-05 03:00:56

Aby usunąć całą linię bez względu na to, gdzie znajduje się kursor, możesz użyć polecenia kill-whole-line, ale domyślnie jest ono niezwiązane. Można go powiązać na przykład z Ctrl+Alt+K przez wstawienie

"\e\C-k": kill-whole-line

Do pliku Readline init (konwencjonalnie ~/.inputrc).

Różne uwagi:

  • Aby uniknąć przypadkowego przypisania sekwencji klawiszy, która jest już używana do czegoś innego, możesz sprawdzić wszystkie wiązania za pomocą bind -P. Sprawdź na sugerowane wiązanie z

    bind -P | grep '\\e\\C-k'
    
  • nazwa pliku INIT Readline jest pobierana ze zmiennej powłoki INPUTRC. Jeśli jest wyłączony, domyślną wartością jest ~/.inputrc lub (jeśli nie istnieje) /etc/inputrc. Zauważ, że jeśli masz ~/.inputrc, /etc/inputrc zostanie zignorowany.
  • aby przeładować plik Readline init, możesz użyć Ctrl+X Ctrl+R .
  • linki do odpowiednich sekcji podręcznika:
 2
Author: Benjamin W.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-13 15:59:52