vim 과 tmux · tmux 세션·창·패널 · 실습
tmux 페인과 레이아웃
목표
한 윈도우 안에서 페인을 나누고, 제목을 붙이고, 확대·동기화하고, 스크롤백을 파일로 남깁니다. 마지막에는 개발 레이아웃을 한 번에 재현하는 스크립트를 만듭니다.
왜 중요한가
페인은 "화면을 나누는 기능" 이상입니다. 편집기·서버·로그를 한 화면에 두면 컨텍스트 전환 비용이 사라지고, 여러 서버에 붙은 페인들을 동기화하면 같은 명령을 한 번에 실행할 수 있습니다. 그리고 실무에서 자주 빠뜨리는 것이 새 페인의 작업 디렉터리입니다 - 지정하지 않으면 홈에서 열려 매번 cd 를 다시 쳐야 합니다. 마지막으로 tmux 의 -h 는 "가로 분할"이 아니라 좌우 배치라는 뜻이라 거의 모든 사람이 한 번은 헷갈립니다. 말로 할 때는 좌우/상하로 부르는 편이 안전합니다.
단계
1. panes 세션에 dev 라는 윈도우를 만들고 페인을 2개 이상으로 나누세요.
2. dev 윈도우의 페인을 정확히 3개로 만드세요.
3. 세 페인의 제목을 각각 editor, server, logs 로 지정하세요.
4. dev 윈도우의 페인 하나를 확대(zoom) 상태로 두세요.
5. 제목이 logs 인 페인에서 tail -f 가 계속 실행되게 하세요.
6. dev 윈도우의 페인 동기화(synchronize-panes)를 켜세요.
7. 페인 하나에서 labhub-pane-check 를 출력하고 이어서 seq 1 100 을 실행한 뒤, 그 페인의 스크롤백 전체를 /root/tmux/pane.log 로 저장하세요. 파일에는 labhub-pane-check 와 100 이 모두 들어 있어야 하고 100줄 이상이어야 합니다.
8. /root/tmux/dev.sh <세션이름> 을 만드세요. 인자로 받은 이름의 세션을 붙지 않고 만들고, dev 윈도우에 페인 3개를 두되 제목은 editor/server/logs, 그리고 editor 페인의 작업 디렉터리는 /root/tmux 여야 합니다.
참고
tmux select-pane -t 대상 -T 제목으로 페인 제목을 지정합니다.tmux capture-pane -p -S - -t 대상은 스크롤백 처음부터 출력합니다.tmux split-window -c /경로로 새 페인의 시작 디렉터리를 지정합니다. 현재 페인 경로를 이어받으려면-c "#{pane_current_path}"를 씁니다.- 흔한 실수 1: 7번에서
-S -를 빼면 보이는 화면만 담겨 100줄이 안 됩니다. - 흔한 실수 2: 6번에서 동기화를 켠 채로 다른 작업을 하면 모든 페인에 같은 명령이 들어갑니다. 실습 순서를 고려하세요.
단계 8개
- 페인 나누기
- 3분할 만들기
- 페인에 제목 붙이기
- 페인 확대하기
- logs 페인에서 로그 따라붙기
- 페인 동기화 켜기
- 스크롤백 파일로 저장하기
- 개발 레이아웃 스크립트