터미널 크기를 조정할 때 터미널에서 내용을 다시 그리려면 어떻게해야합니까?


3

기본 터미널 너비는 80 자이지만 명령의 출력은 100 자 (터미널 너비보다 큼) 일 수 있으므로 한 줄에 엎질러 져 80자를 입력하고 다음 줄에 20자를 넣을 수 있습니다. 선. 터미널의 크기를 200 자로 조정하면 화면에 이미 표시된 모든 내용이 그대로 유지됩니다 (한 줄에 80, 다른 줄에 20). 터미널이 내용을 다시 칠하게하는 솔루션이 있는지 궁금해서 100 개 문자가 모두 한 줄에 맞을 것입니다.

현재 시스템은 Ubuntu Linux이며 bash를 사용합니다. OSX를 사용할 때 터미널의 내용을 다시 칠하고 이전 줄을 다시 정렬 할 수있는 것처럼 보이기 때문에 해결책이 있다고 생각합니다.


설정이 아닌 터미널을 실행하는 응용 프로그램과 더 관련이 있다고 생각합니다.
rubixibuc

답변:


1

이 질문을 제기 했으므로이 문제를 해결하는 코드 스 니펫을 발견했습니다.

RHEL5에서 테스트했으며 필요한 요구 사항을 성공적으로 해결하고 있습니다. 따라서 get 명령을 실행하면 일부 텍스트가 출력됩니다. 예를 들어 ls -al, 마우스로 80 픽셀 이하의 창 크기를 조정하고, 화면에 충분한 공간이없는 경우 다음 줄로 줄 바꿈하거나 출력을 줄 바꿈하여 한 줄만 차지할 수 있습니다. 창문을 넓히십시오.

http://codesnippets.joyent.com/posts/show/1645 에서 찾았습니다 .

tput lines
tput cols

echo $LINES
echo $COLUMNS

stty size
stty size | awk '{print $1}'    # lines
stty size | awk '{print $NF}'   # columns

stty size | cut -d" " -f1   # lines
stty size | cut -d" " -f2   # columns 

stty -a | awk '/rows/ {print $4}'      # lines
stty -a | awk '/columns/ {print $6}'   # columns

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;'



# automatically resize the Terminal window if it gets smaller than the default size

# positive integer test (including zero)
function positive_int() { return $(test "$@" -eq "$@" > /dev/null 2>&1 && test "$@" -ge 0 > /dev/null 2>&1); }


# resize the Terminal window
function sizetw() { 
   if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then 
      printf "\e[8;${1};${2};t"
      return 0
   fi
   return 1
}


# the default Terminal window size: 26 lines and 107 columns
sizetw 26 107


# automatically adjust Terminal window size
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 is the window change signal
trap defaultwindow SIGWINCH    


sizetw 26 70
sizetw 10 107
sizetw 4 15

좋은 이유가 있지만 OSX (현재 10.7.2에서 가장 작음)는 기본적으로 크기 조정을 지원하는 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.