Wyczyść polecenie z terminala w OS X


24

Powiedzmy, że wpisałem polecenie w terminalu „mv * .jpg .. \ photos” i podczas pisania zdaję sobie sprawę, że w ogóle nie chcę już wykonywać tego polecenia. Chcę po prostu usunąć całe oświadczenie. Nie chcę wyczyścić całego ekranu ani usunąć historii bashów. Chcę tylko przerwać bieżącą linię i usunąć ją.

Czy istnieje skrót klawiaturowy, czy muszę usunąć każdy znak?

Odpowiedzi:



7

Wiele programów, które czekają na wpisanie wiersza polecenia, a następnie wykonanie tego wiersza, w tym bash, bierze Ctrl+, Cco oznacza „Przerwij bieżące zadanie i wróć do głównego monitu”.

Kilka programów, w tym bash, przyjmuje Ctrl+ U( Wyczyść polecenie z terminala w OS X ), aby oznaczać „skasuj początek linii do kursora” (lub „skasuj całą linię”).

W bash, zauważalne różnice między Ctrl+ Ci Ctrl+ Uobejmują:

  • Możesz cofnąć Ctrl+ U, ale nie Ctrl+ C.
  • Ctrl+ Uzachowuje część linii za kursorem, jeśli istnieje.
  • Ctrl+ Uusuwa dotknięty tekst z ekranu; Ctrl+ Cpokazuje nowy monit poniżej bieżącej linii.

Czasami chcesz przestać pisać polecenie, ale wpisz je w historii powłoki, aby uruchomić później. Przydatną sztuczką jest umieszczenie #na początku wiersza i wykonanie go: ponieważ wiersz jest teraz komentarzem, nic nie zrobi. W bash istnieje jeden skrót klawiszowy: Alt+ #.


2

Istnieje readlinefunkcja, która prawdopodobnie nie jest związana z wywoływanym naciśnięciem klawisza kill-whole-line, która zabije całą linię, a nie tylko zabicie części przed kursorem ( unix-line-discardco jest nieco mylące i musi Ctrl- u).

Możesz powiązać to z dowolnym dostępnym naciśnięciem klawisza. Lubię ShiftAlt- Uponieważ jest to funkcja pokrewna. To naciśnięcie klawisza może być powiązane, do-lowercase-versionco oznacza, że ​​robi to, co robi niezmodyfikowana wersja (w tym przypadku upcase-word). Ponieważ tak naprawdę nie potrzebujemy do tego dwóch kluczy, użyjmy tego.

Możesz to wypróbować w wierszu polecenia, tworząc powiązanie w ten sposób:

bind '"\eU":kill-whole-line'

lub ustaw go jako trwały, umieszczając ten wiersz w swoim ~/.inputrcpliku:

"\eU":kill-whole-line

Aby cofnąć operację Ctrl- ulub ShiftAlt- U(lub dowolną operację, którą można cofnąć), naciśnij Ctrl- Shift- _(podkreślenie) lub Ctrl- x Ctrl- u(dwa naciśnięcia klawiszy). Możesz też wkleić (szarpać) to, co zabiłeś, naciskając Ctrl- yco można powtórzyć, jeśli chcesz wielu kopii tego tekstu.

Nawiasem mówiąc, jeśli chcesz zabić tekst od kursora do końca linii, możesz nacisnąć Ctrl- k. Zamiast wykonywać opisane powyżej powiązanie, możesz zabić całą linię, naciskając Ctrl- u Ctrl- k. Tylko część zabita w wyniku drugiego z tych naciśnięć klawiszy zostanie zapisana w buforze zabijania, ale nadal możesz cofnąć dwukrotnie, aby odzyskać je oba.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.