Wydaje się, że działają następujące ustawienia. Tekst w drugim wierszu znika, jeśli wiersz polecenia przepełnia pierwszy wiersz. preexecFunkcja kasuje drugą linię przed uruchomieniem polecenia; jeśli chcesz to zachować, zmień na preexec () { echo; }.
%znaki ucieczki są udokumentowane w instrukcji zsh ( man zshmisc).
Terminfo to interfejs API dostępu do terminala. Zsh ma terminfomoduł, który daje dostęp do bazy danych opisów terminali: $terminfo[$cap]jest sekwencją znaków, które należy wysłać, aby skorzystać z możliwości terminala $cap, tj. Uruchomić jego $cappolecenie. Aby man 5 terminfouzyskać więcej informacji, zobacz (w systemie Linux numer sekcji może się różnić w przypadku innych unikatów).
Sekwencja działań jest następująca: przesuń kursor w dół o jedną linię ( cud1), a następnie w górę ( cuu1); zapisz pozycję kursora ( sc); przesuń kursor w dół o jedną linię; wydrukować [some status]; przywrócić pozycję kursora. Bit „góra i dół” na początku jest konieczny tylko w przypadku, gdy monit znajduje się w dolnej linii ekranu. Wiersz preexec usuwa drugi wiersz ( el), aby nie pomylić go z danymi wyjściowymi polecenia.
Jeśli tekst w drugim wierszu jest szerszy niż terminal, wyświetlacz może być zniekształcony. Użyj Ctrl+ Lw szczypcie do naprawy.
Odpowiedzi:
Wydaje się, że działają następujące ustawienia. Tekst w drugim wierszu znika, jeśli wiersz polecenia przepełnia pierwszy wiersz.
preexec
Funkcja kasuje drugą linię przed uruchomieniem polecenia; jeśli chcesz to zachować, zmień napreexec () { echo; }
.%
znaki ucieczki są udokumentowane w instrukcji zsh (man zshmisc
).Terminfo to interfejs API dostępu do terminala. Zsh ma
terminfo
moduł, który daje dostęp do bazy danych opisów terminali:$terminfo[$cap]
jest sekwencją znaków, które należy wysłać, aby skorzystać z możliwości terminala$cap
, tj. Uruchomić jego$cap
polecenie. Abyman 5 terminfo
uzyskać więcej informacji, zobacz (w systemie Linux numer sekcji może się różnić w przypadku innych unikatów).Sekwencja działań jest następująca: przesuń kursor w dół o jedną linię (
cud1
), a następnie w górę (cuu1
); zapisz pozycję kursora (sc
); przesuń kursor w dół o jedną linię; wydrukować[some status]
; przywrócić pozycję kursora. Bit „góra i dół” na początku jest konieczny tylko w przypadku, gdy monit znajduje się w dolnej linii ekranu. Wiersz preexec usuwa drugi wiersz (el
), aby nie pomylić go z danymi wyjściowymi polecenia.Jeśli tekst w drugim wierszu jest szerszy niż terminal, wyświetlacz może być zniekształcony. Użyj Ctrl+ Lw szczypcie do naprawy.
źródło
Oto
bash
odpowiednik rozwiązania Zsh Gillesa. Bash nie ma natywnego modułu terminfo, aletput
polecenie (w pakiecieterminfo
) robi to samo.Jeśli terminal nie obsługuje jednej z możliwości, wróci do wiersza z jedną linią.
trap
Linia jest hacky sposób naśladować zsh zapreexec
funkcją. Aby uzyskać więcej informacji, zobacz /superuser/175799/EDYCJA : Ulepszony skrypt oparty na komentarzach Gillesa.
źródło