🏠 목록 tmux 설치 및 설정 구성 📄 MD 원본 📁 Files 🔒 Private 🌓 테마

tmux 설치 및 설정 구성


1. 설치

sudo apt install -y tmux

tmux 3.4-1ubuntu0.1 설치됨.


2. 설정 파일 (~/.tmux.conf)

2.1 Prefix 키

Ctrl-a (primary)와 Ctrl-b (secondary) 둘 다 사용 가능하도록 구성.

set -g prefix C-a
set -g prefix2 C-b
bind C-a send-prefix
bind C-b send-prefix -2

2.2 기본 동작

설정 설명
mouse on pane 클릭, 리사이즈, 스크롤
history-limit 50000 스크롤백 버퍼 (기본 2000)
base-index 1 window 번호 1부터 시작
pane-base-index 1 pane 번호 1부터 시작
escape-time 0 ESC 지연 제거 (vim 필수)
renumber-windows on window 닫으면 번호 재정렬
default-terminal tmux-256color 256색 + true color 지원

2.3 키바인딩

pane 분할 (tmux 기본값 유지)

동작
prefix + % 수직 분할
prefix + " 수평 분할

pane 이동 (vim 스타일 추가)

동작
prefix + h 왼쪽 pane
prefix + j 아래 pane
prefix + k 위 pane
prefix + l 오른쪽 pane

pane 리사이즈

동작
prefix + H 왼쪽으로 5칸
prefix + J 아래로 5칸
prefix + K 위로 5칸
prefix + L 오른쪽으로 5칸

-r 플래그로 반복 입력 가능 (prefix 한 번 누르고 H/J/K/L 연타).

기타

동작
prefix + r 설정 파일 리로드

복사 모드 (vi 키바인딩)

동작
prefix + [ 복사 모드 진입
v 선택 시작
y 선택 복사 후 복사 모드 종료

2.4 상태바

One Dark 테마 기반 색상 구성: - 좌측: 세션명 (초록) - 우측: 호스트명 (파랑) + 시각 (노랑) - 현재 window: 파란 배경 볼드


3. 플러그인

3.1 TPM (Tmux Plugin Manager)

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.conf 맨 마지막에 run '~/.tmux/plugins/tpm/tpm' 필수.

TPM 조작 키 (tmux 세션 안에서)

동작
prefix + I 새 플러그인 설치 (.tmux.conf에 추가 후)
prefix + U 설치된 플러그인 업데이트
prefix + Alt + u 목록에서 제거된 플러그인 삭제

플러그인 추가 방법

  1. .tmux.confset -g @plugin 'tmux-plugins/플러그인명' 추가
  2. tmux 세션에서 prefix + I 입력
  3. 설치 완료 메시지 확인

3.2 tmux-resurrect — 세션 저장/복구

리부트나 tmux 서버 종료 후에도 세션 레이아웃을 복원할 수 있다.

저장 대상: window 배치, pane 레이아웃, 각 pane의 작업 디렉토리, 실행 중인 프로그램.

동작
prefix + Ctrl-s 현재 상태 저장
prefix + Ctrl-r 마지막 저장 상태 복구

저장 파일 위치: ~/.tmux/resurrect/

복구 절차 (리부트 후): 1. tmux 실행 (빈 세션 열림) 2. prefix + Ctrl-r 입력 3. 이전 pane 레이아웃 + 디렉토리 복원됨

3.3 tmux-continuum — 자동 저장

resurrect를 15분 간격으로 자동 실행한다. 수동 저장을 잊어도 최근 상태가 보존됨.

set -g @continuum-save-interval '15'

별도 키 조작 없음. tmux 세션이 살아있는 동안 백그라운드로 동작.


4. 설정 파일 전문

# ============================================
# Prefix: Ctrl-a (primary) + Ctrl-b (secondary)
# ============================================
set -g prefix C-a
set -g prefix2 C-b
bind C-a send-prefix
bind C-b send-prefix -2

# ============================================
# 기본 동작
# ============================================
set -g mouse on
set -g history-limit 50000
set -g base-index 1
setw -g pane-base-index 1
set -sg escape-time 0
set -g renumber-windows on
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# ============================================
# 키바인딩
# ============================================
# pane 이동 (vim 스타일)
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# pane 리사이즈
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# 설정 리로드
bind r source-file ~/.tmux.conf \; display "Config reloaded!"

# 복사모드 vi 키바인딩
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel

# ============================================
# 상태바
# ============================================
set -g status-style "bg=#282c34,fg=#abb2bf"
set -g status-left "#[fg=#98c379,bold] #S "
set -g status-right "#[fg=#61afef]#H #[fg=#e5c07b]%H:%M "
set -g status-left-length 30
setw -g window-status-current-style "fg=#282c34,bg=#61afef,bold"
setw -g window-status-current-format " #I:#W "
setw -g window-status-format " #I:#W "

# ============================================
# Plugins (TPM)
# ============================================
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# continuum: 15분마다 자동 저장
set -g @continuum-save-interval '15'

# TPM 초기화 (반드시 맨 마지막)
run '~/.tmux/plugins/tpm/tpm'