2014-03-05 3 views
3

내가 좋아하는 구문 시작된 창에서 실행되는 여러 TMUX 창을 가지고비대화 형 tmux 패널의 크기는 어떻게 구합니까?

tmux split-window -h -l {dynamic value} tail -f somefile.txt 
tmux split-window -v -l {dynamic value} tail -f someotherfile.txt 
tmux split-window -h -l {dynamic value} nc -l -p {random port} 

나는 새로운 창을 만들려면이 스크립트를 사용하고 난 각의 크기가 내 스크립트의 배열을 업데이트해야합니다으로 "창"(창).

tmux 창이 대화 형 쉘을 포함하고 있다면 크기를 얻기 위해 tput cols 및 tput 행을 실행할 수 있습니다. 필자는 tmux man 페이지를 확인했지만 찾고있는 명령을 보지 못했습니다.

답변

2

당신이 패널의 ID를 알고있는 경우 (예를 들어 %24를) 또는 이름 (예 : session_name:win_idx.pane_idx, man 페이지에 target-pane 참조) 한 다음 치수 쿼리 display-message -p을 사용할 수 있습니다 :

tmux display-message -pt "$pane" -F '#{pane_width}x#{pane_height}' 

그렇지 않으면를

pane_a=$(tmux split-window -PF '#{pane_id}' -hl "$dynamic_value" 'tail -f somefile.txt') 
⋮ # create other panes 
pane_a_width=$(tmux display-message -pt "$pane_a" -F '#{pane_width}') 

: 당신이 -F 옵션과 함께 -P 옵션을 사용하여 그들을 분할로 이미 창에 이름을 수있는 방법이, 당신은 창 ID를 수집 할 수 있습니다

창에있는 모든 창에 대해 알고 싶다면 list-panes에 창 ID (예 : @5) 또는 이름 (예 : session_name.win_idx) 매뉴얼 페이지에 target-window를 참조하십시오


이 옵션과 형식 지정자의 일부

tmux list-panes -t "$window" -F '#{pane_id} #{pane_width}x#{pane_height} #{session_name}:#{window_index}.#{pane_index}' 
TMUX의 이전 버전에서 사용할 수 없습니다, 그러나 보통이 해결 방법있다 (당신의 버전이 얼마나 오래된 지에 따라).

+0

대단히 감사합니다. 완벽하게 작동합니다! – nfarrar