Smazání terminálu od pozice kurzoru

Jakub

Smazání terminálu od pozice kurzoru
« kdy: 22. 07. 2014, 11:53:21 »
Ahoj, poradí někdo jak od aktuální pozice kurzoru v terminálu můžu smazat všechno až dolů, nemyslím jen do konce řádku ale ař dolů na konec terminálu. Příkaz clear nehledám, ten maže celou obrazovku. Díky
« Poslední změna: 22. 07. 2014, 23:20:33 od Petr Krčmář »


belzebub

Re:Jak smazat terminál od aktuální pozice kurzoru
« Odpověď #1 kdy: 22. 07. 2014, 18:19:09 »
Obavam se, ze se mozna ptate na neco jineho, nez co skutecne chcete. Minimalne by stalo za to upresnit, o jaky terminal se jedna, ale ja tak trochu tipuji, ze se vubec nejedna o terminal, ale nejaky program v terminalu pusteny. Pri normalni praci s "normalnimi" terminaly je totiz mozne editovat pouze jednu radku, a to prikazovou radku. Ta se sice pri delsim prikazu muze zalomit a byt tak zobrazena pres vice radek, ale z hlediska terminalu se stale jedna o jednu radku, takze smazani az na konec textu je ekvivalentni prikazu na smazani do konce radku - coz napr. pro bash je CTRL-K. To ale asi neni to co chcete. Takze byste mel trochu rozvest co delate, v cem to delate a proc to potrebujete.

David1234

Re:Jak smazat terminál od aktuální pozice kurzoru
« Odpověď #2 kdy: 22. 07. 2014, 22:52:56 »
Nemyslíš náhodou CTRL-L?

Ales Hakl

Re:Smazání terminálu od pozice kurzoru
« Odpověď #3 kdy: 22. 07. 2014, 23:44:17 »
Pro rozumne terminaly:
Kód: [Vybrat]
echo -ne "\033[J"
(Presneji CSI n J, kde n je 0 - od kurzoru do konce, 1 - od zacatku ke kurzoru, 2 - celou obrazovku)

V terminfo je "smazat do konce terminalu" capability clr_eos, resp. ed, pro termcap cd. Takze cisteji a obecneji lze take:
Kód: [Vybrat]
tput ed(pripadne tput cd pokud tput bere nazvy dle termcap, jako na *BSD)

Druha vec je, proc tohle vlastne chcete, protoze interaktivni vyuziti ani rozumne pouziti ve skriptu me prilis nenapada.