Pull to refresh

Comments 5

Сделал такой костыль для Bash:

stty="$(stty -g)" && stty raw -echo min 0 \
  && echo -en '\e[6n' && read -rsdR column \
  && stty "$stty" && (( ${column##*;} > 1 )) \
  && echo

Запрос текущего столбца у терминала. Если не в начале экрана (столбец > 1), то вывести перевод строки (echo).

Используется тоже в PROMPT_COMMAND.

Я когда-то тоже таким пользовался, но потом заметил, что этот подход ломает выполнение команд набранных пока текущая выполняется. В норме если в bash такое, то он покажет дату:

sleep 5⏎
# не дожидаясь завершения sleep
date⏎

Ну и кроме того в этом подходе форков больше получается, он ресурсозатратнее.

неожиданно очень интересно. зашёл зевая, дочитал уже проснувшись.

Было несколько неожиданно увидеть привычную формулу (addr+0xfff) & ~0xfff или (A+N-1)/N*N, сводящуюся к

округлить_вниз_до_кратного(A + N - 1, N)

вычисленную на управляющих символах ASCII.

Sign up to leave a comment.