Depuis que j'ai posé cette question, j'ai trouvé un extrait de code qui résout cela.
Je l'ai testé sous RHEL5 et il résout avec succès le besoin que j'avais. Ainsi, lorsque vous avez une sortie de commande affichant du texte. Par exemple: ls -al
vous pouvez ensuite redimensionner la fenêtre avec votre souris de plus ou moins 80 pixels, et la sortie se repliera sur la ligne suivante s'il n'y a pas assez de place visible à l'écran, ou s'étirera pour occuper une seule ligne, lorsque vous agrandissez votre fenêtre.
Trouvé sur: http://codesnippets.joyent.com/posts/show/1645
tput lines
tput cols
echo $LINES
echo $COLUMNS
stty size
stty size | awk '{print $1}' # lignes
stty size | awk '{print $NF}' # colonnes
stty size | cut -d" " -f1 # lignes
stty size | cut -d" " -f2 # colonnes
stty -a | awk '/rows/ {print $4}' # lignes
stty -a | awk '/columns/ {print $6}' # colonnes
stty -a | sed -E -n -e 's/^.*[^[:digit:]]([[:digit:]]+)[[:space:]]+rows;.*$/\1/p;q;'
stty -a | sed -E -n -e 's/^.*[^[:digit:]]([[:digit:]]+)[[:space:]]+columns;.*$/\1/p;q;'
# redimensionner automatiquement la fenêtre du Terminal si elle devient plus petite que la taille par défaut
# test d'entier positif (y compris zéro)
function positive_int() { return $(test "$@" -eq "$@" > /dev/null 2>&1 && test "$@" -ge 0 > /dev/null 2>&1); }
# redimensionner la fenêtre du Terminal
function sizetw() {
if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then
printf "\e[8;${1};${2};t"
return 0
fi
return 1
}
# taille par défaut de la fenêtre du Terminal : 26 lignes et 107 colonnes
sizetw 26 107
# ajuster automatiquement la taille de la fenêtre du Terminal
function defaultwindow() {
DEFAULTLINES=26
DEFAULTCOLUMNS=107
if [[ $(/usr/bin/tput lines) -lt $DEFAULTLINES ]] && [[ $(/usr/bin/tput cols) -lt $DEFAULTCOLUMNS ]]; then
sizetw $DEFAULTLINES $DEFAULTCOLUMNS
elif [[ $(/usr/bin/tput lines) -lt $DEFAULTLINES ]]; then
sizetw $DEFAULTLINES $(/usr/bin/tput cols)
elif [[ $(/usr/bin/tput cols) -lt $DEFAULTCOLUMNS ]]; then
sizetw $(/usr/bin/tput lines) $DEFAULTCOLUMNS
fi
return 0
}
# SIGWINCH est le signal de changement de fenêtre
trap defaultwindow SIGWINCH
sizetw 26 70
sizetw 10 107
sizetw 4 15
Pour une bonne raison, OSX (au moins dans mon 10.7.2 actuel) semble prendre en charge le redimensionnement nativement.