Znam clear
polecenie, które „czyści” bieżący ekran, ale robi to po prostu, drukując wiele nowych linii - wyczyszczona zawartość jest po prostu przewijana w górę.
Czy istnieje sposób, aby całkowicie wyczyścić wszystkie poprzednie dane wyjściowe z terminala, aby nie można było do nich dotrzeć nawet przewijając w górę?
Command+K
.Odpowiedzi:
Aby ręcznie wyczyścić terminal:
⌘+K
Command+K dla nowszych klawiatur
Aby wyczyścić terminal ze skryptu powłoki;
źródło
clear
we wszystkich przypadkach, z wyjątkiem sytuacji, gdy potrzebujesz faktycznej historii przewijania, aby faktycznie zniknęła, np. Kiedy masz zamiar wydrukować.)clear
. Wydaje mi się, że należy je odwrócić. Pisanieclear
wydaje się bardziej celowe niż uderzanieCommand + K
.Lepszy sposób na wyczyszczenie ekranu ze skryptu ...
Jeśli korzystasz z aplikacji OSX Terminal (jak twierdzi OP), lepsze podejście (dzięki https://apple.stackexchange.com/a/113168 ) jest po prostu następujące:
lub bardziej zwięźle (wskazówka na https://stackoverflow.com/users/4834046/qiuyi ):
który usuwa bufor przewijania, a także ekran. Istnieją również inne opcje, zobacz https://apple.stackexchange.com/a/113168, aby uzyskać więcej informacji.
oryginalna odpowiedź
Odpowiedź AppleScript podana w tym wątku działa, ALE ma ona nieprzyjemny efekt uboczny czyszczenia KAŻDEGO okna terminala, które jest aktywne. Jest to zaskakujące, jeśli uruchamiasz skrypt w jednym oknie, a próbujesz wykonać pracę w innym!
Można tego uniknąć, dopracowując AppleScript, aby wyczyścić ekran tylko wtedy, gdy jest on na pierwszym planie, robiąc to (zaczerpnięte z https://apple.stackexchange.com/a/31887 ):
... ale jak wtedy, gdy nie jest to bieżące okno, dane wyjściowe będą się układać w stos, aż znów staną się aktualne, co prawdopodobnie nie jest tym, czego chcesz.
źródło
.bash_profile
i jest niesamowity, ponieważ czasami nie otrzymuję błędnego bufora podczas otwierania nowego okna terminala.Ładny sposób jest
printf '\33c\e[3J'
źródło
alias cls='printf "\33c\e[3J"'
\33c
wykonuje odpowiednikclear
polecenia, które po prostu przewija ekran, dopóki nie zobaczysz jego poprzedniej zawartości. Czyści ekran, ale nie bufor przewijania wstecz (tzn. Nadal możesz używać pasków przewijania, aby zobaczyć stare wyjście). Dodaj,\e[3J
aby faktycznie wyczyścić bufor przewijania wstecz.function cls { printf '\33c\e[3J\33c' }
linię w~/.profile
(lub w całym systemie/etc/profile
). Powinno to działać w środowiskach stacjonarnych w macOS, FreeBSD, Linux itp. Uwaga: dodatkowym rozwiązaniem\33c
jest usunięcie dodatkowego\e[3J
literału w systemie innym niż macOS (w zasadzie w przypadku Linux / FreeBSD, potrzebujemy tylkoprintf '\33c'
).Umieść to w swoim .bash_profile lub .bashrc
źródło
W terminalu Mac OS X ta funkcja jest już wbudowana w aplikację terminalową jako
View->Clear Scrollback
(Domyślnie jest to CMD+K ).Możesz więc przypisać to dowolnie za pomocą skrótów klawiaturowych Apple. Wystarczy dodać nowy skrót do terminala za pomocą polecenia „Wyczyść przewijanie”. (Używam CMD+ L, ponieważ jest podobny do CTRL+L aby wyczyścić bieżącą zawartość ekranu, bez czyszczenia bufora).
Nie wiem, jak byś to wykorzystał w skrypcie (może AppleScript, jak zauważyli inni).
źródło
View->Clear Scrollback
nie jest już obecny w menu Terminala. Jednak skrót klawiaturowyCMD
+K
nadal działa.Clear Scrollback
właśnie przeniósł się zView
doEdit
w Yosemite.W systemie Mac OS X Yosemite (10.10) użyj,
Option + Command + K
aby wyczyścić przewijanie w Terminal.app.źródło
Lub możesz wysłać podział strony (wysuw formularza ASCII), naciskając:
Chociaż technicznie rozpoczyna się nowa strona, ma to ten sam efekt netto, co wszystkie inne metody, a jednocześnie jest znacznie szybszy (z wyjątkiem oczywiście rozwiązania Apple + K).
Ponieważ jest to polecenie sterujące ASCII, działa ono we wszystkich powłokach.
źródło
Aby usunąć tylko ostatnie wyjście:
⌘+L
Aby całkowicie wyczyścić terminal:
⌘+K
źródło
Command + K. usunie poprzednie wyjście
Aby wyczyścić wprowadzony tekst, najpierw przeskocz w lewo za pomocą „ Command + A ”, a następnie wyczyść tekst po prawej stronie wskaźnika za pomocą „ Control + K ”.
Przykłady wizualne:
źródło
usuwa wszystko, działa również na osX. bardzo schludny
źródło
Rób dobrze, rób dobrze!
Przejście do poprzedniego znaku:
Command-L
Przejście do poprzedniej zakładki:
Option-Command-L
Wyczyść, aby rozpocząć:
Command-K
Pomóżcie swoim chłopcom!
źródło
Nie mogłem zmusić żadnego z powyższych do pracy (na macOS).
Połączenie zadziałało dla mnie -
Spowoduje to wyczyszczenie bufora i ekranu
źródło
IO.write
. Powinno działać tak samo, jednak zdecydujesz się wydrukować te znaki na terminalu.Wpisanie następującego w terminalu spowoduje wymazanie historii (co oznacza, że użycie strzałki w górę niczego nie da) - ale nie wyczyści ekranu:
źródło
Spróbuj tego, jeśli jesteś przytłoczony danymi wyjściowymi, jeśli chcesz filtr
adb -d aktywność dumpsys powłoki | grep ActivityRecord
źródło
Wydaje mi się, że CMD + K cały czas działa.
źródło