tmux 정리 (2편) — 설정, 플러그인, 실용 커스터마이징

2026. 5. 29. 15:46·블로그, 컴퓨터/Cheatsheets

tmux cheatsheet

1편에서 세션, 윈도우, 패널 개념과 기본 단축키를 다뤘습니다. 2편에서는 ~/.tmux.conf 설정으로 tmux를 실제로 쓰기 편하게 만드는 방법을 정리합니다.

기본 설정 그대로 쓰는 것도 가능하지만, prefix 키 하나만 바꿔도 체감이 크게 달라집니다. 설정을 조금씩 손대다 보면 자기 흐름에 맞는 환경이 만들어집니다.


~/.tmux.conf

tmux 설정 파일입니다. 없으면 만들면 됩니다.

touch ~/.tmux.conf

설정 변경 후 tmux 안에서 바로 반영하려면 아래 명령어를 씁니다.

# tmux 안에서
prefix + :
:source-file ~/.tmux.conf

# 또는 터미널에서
tmux source-file ~/.tmux.conf

prefix 키 변경

Ctrl+b는 기본값인데, 손 위치 때문에 불편하다는 사람이 많습니다. Ctrl+a로 바꾸는 게 가장 흔한 선택입니다.

# prefix를 Ctrl+a로 변경
unbind C-b
set -g prefix C-a
bind C-a send-prefix

bind C-a send-prefix는 tmux 안에서 실제로 Ctrl+a를 쉘에 보내야 할 때(줄 맨 앞으로 이동 등) Ctrl+a를 두 번 누르면 되게 해줍니다.


자주 쓰는 기본 설정

# 마우스 사용 허용 (스크롤, 패널 클릭, 크기 조절)
set -g mouse on

# 윈도우/패널 번호를 1부터 시작 (0 대신)
set -g base-index 1
setw -g pane-base-index 1

# 윈도우 삭제 후 번호 자동 재정렬
set -g renumber-windows on

# 상태바 갱신 주기 (초)
set -g status-interval 5

# 히스토리 길이 늘리기
set -g history-limit 10000

# 터미널 색상 지원
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"

# ESC 입력 지연 제거 (vim에서 ESC 반응 느릴 때)
set -s escape-time 0

# 현재 경로에서 패널 분할
bind '"' split-window -v -c "#{pane_current_path}"
bind '%' split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

-c "#{pane_current_path}"는 분할할 때 현재 작업 디렉토리를 이어받게 합니다. 없으면 항상 홈 디렉토리에서 시작합니다.


키 바인딩 커스터마이징

패널 이동을 vim 스타일로

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

prefix 없이 Ctrl+h/j/k/l로 이동하고 싶으면 이렇게 씁니다.

bind -n C-h select-pane -L
bind -n C-j select-pane -D
bind -n C-k select-pane -U
bind -n C-l select-pane -R

-n은 prefix 없이 바로 쓰는 바인딩입니다.

설정 파일 빠른 리로드

bind r source-file ~/.tmux.conf \; display "설정 리로드 완료"

prefix + r로 설정을 바로 반영합니다. \;는 tmux 명령어를 이어서 실행하는 구분자입니다.

copy mode 키바인딩을 vim 스타일로

setw -g mode-keys vi

bind [ copy-mode
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
bind -T copy-mode-vi C-v send -X rectangle-toggle
bind ] paste-buffer

이 설정이 있으면 copy mode에서 v로 선택, y로 복사, C-v로 블록 선택이 됩니다. vim과 동일한 흐름입니다.

시스템 클립보드에도 복사하려면 xclip이나 xsel(Linux), pbcopy(macOS)를 연결합니다.

# macOS
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "pbcopy"

# Linux (xclip 필요)
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -selection clipboard"

상태바 커스터마이징

# 상태바 위치 (top / bottom)
set -g status-position bottom

# 상태바 색상
set -g status-bg colour235
set -g status-fg colour248

# 왼쪽: 세션 이름
set -g status-left " #S "
set -g status-left-length 20

# 오른쪽: 시간
set -g status-right " %Y-%m-%d %H:%M "
set -g status-right-length 40

# 현재 윈도우 스타일
setw -g window-status-current-style fg=colour255,bg=colour238,bold
setw -g window-status-current-format " #I:#W "

# 비활성 윈도우 스타일
setw -g window-status-format " #I:#W "

#S는 세션 이름, #I는 윈도우 번호, #W는 윈도우 이름으로 치환되는 tmux 변수입니다.


tpm — tmux 플러그인 매니저

tmux도 플러그인으로 기능을 확장할 수 있습니다. tpm(Tmux Plugin Manager)이 사실상 표준입니다.

설치

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

~/.tmux.conf에 추가

# 플러그인 목록
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# 파일 맨 마지막 줄에
run '~/.tmux/plugins/tpm/tpm'

설정 후 tmux 안에서 prefix + I(대문자)를 누르면 플러그인이 설치됩니다.

플러그인 단축키

prefix + I      플러그인 설치
prefix + U      플러그인 업데이트
prefix + Alt+u  사용하지 않는 플러그인 삭제

유용한 플러그인들

tmux-sensible

기본값을 좀 더 합리적으로 바꿔주는 설정 모음입니다. 딱히 건드릴 것 없이 넣어두면 됩니다.

set -g @plugin 'tmux-plugins/tmux-sensible'

tmux-resurrect

tmux 세션, 윈도우, 패널 레이아웃을 저장하고 복원합니다. 서버 재시작 후에도 이전 작업 환경을 그대로 되살릴 수 있습니다.

set -g @plugin 'tmux-plugins/tmux-resurrect'
prefix + Ctrl+s    세션 저장
prefix + Ctrl+r    세션 복원

tmux-continuum

tmux-resurrect를 자동화합니다. 일정 간격으로 자동 저장하고, tmux 시작 시 자동 복원합니다.

set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'      # 자동 복원 활성화
set -g @continuum-save-interval '15' # 15분마다 자동 저장

tmux-yank

copy mode에서 시스템 클립보드로 복사를 쉽게 해줍니다. macOS, Linux 모두 자동으로 감지합니다.

set -g @plugin 'tmux-plugins/tmux-yank'

전체 설정 예시

처음 시작할 때 바로 쓸 수 있는 최소한의 설정입니다.

# ~/.tmux.conf

# prefix 변경
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 기본 설정
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -g history-limit 10000
set -s escape-time 0
set -g default-terminal "screen-256color"

# 현재 경로 유지
bind '"' split-window -v -c "#{pane_current_path}"
bind '%' split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

# 패널 이동 (vim 스타일)
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

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

# copy mode vim 스타일
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 @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-yank'

run '~/.tmux/plugins/tpm/tpm'

정리 표

분류 설정 / 단축키 동작
설정 set -g mouse on 마우스 활성화
설정 set -g base-index 1 번호 1부터 시작
설정 set -s escape-time 0 ESC 지연 제거
키 prefix + r 설정 리로드
키 prefix + h/j/k/l vim 스타일 패널 이동
copy mode-keys vi vim 키바인딩
copy v → y 선택 → 복사
tpm prefix + I 플러그인 설치
플러그인 tmux-resurrect 세션 저장/복원
플러그인 tmux-continuum 자동 저장/복원
플러그인 tmux-yank 클립보드 연동
반응형
저작자표시 비영리 변경금지 (새창열림)

'블로그, 컴퓨터 > Cheatsheets' 카테고리의 다른 글

CMake 정리 (2편) — 서브디렉토리, 외부 라이브러리, 실용 패턴  (0) 2026.05.30
CMake 정리 (1편) — 개념, CMakeLists.txt, 기본 빌드  (0) 2026.05.30
tmux 정리 (1편) — 세션, 윈도우, 패널  (0) 2026.05.29
Shell Script 정리 (2편) — 에러 처리, 문자열, 실용 패턴  (0) 2026.05.28
Shell Script 정리 (1편) — 변수, 조건문, 반복문, 함수  (0) 2026.05.28
'블로그, 컴퓨터/Cheatsheets' 카테고리의 다른 글
  • CMake 정리 (2편) — 서브디렉토리, 외부 라이브러리, 실용 패턴
  • CMake 정리 (1편) — 개념, CMakeLists.txt, 기본 빌드
  • tmux 정리 (1편) — 세션, 윈도우, 패널
  • Shell Script 정리 (2편) — 에러 처리, 문자열, 실용 패턴
생각사람
생각사람
지극히 사적인 연구실
  • 생각사람
    생각사람의 별장
    생각사람
  • 전체
    오늘
    어제
    • 분류 전체보기 (207)
      • 금융 (57)
        • 주식 공부 (11)
        • 파생상품 입문 (17)
        • 파생상품 기초 (15)
        • 파생상품 실전 (14)
      • 블로그, 컴퓨터 (83)
        • 프로그래밍 (16)
        • DevOps (8)
        • AI, RL, ML, ... (5)
        • 애드센스, SEO (23)
        • 임베디드 (3)
        • 컴퓨터 관련 (7)
        • Cheatsheets (21)
      • 다른 공부들 (67)
        • 읽고 쓰기 (18)
        • 수학 (15)
        • 물리 (9)
        • 사진 공부 (25)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    c++
    깃
    c
    독후감
    version control
    옵션 투자
    양자역학
    스트래들
    CheatSheet
    웹크롤러
    프로그래밍
    선형대수학
    구글 애드센스
    파생상품
    github
    벡터
    깃허브
    GIT
    코딩
    Kreyszig
    공업수학
    cmake
    스트랭글
    옵션
    AI
    소니 a6000
    행렬
    선물 옵션
    슈뢰딩거 방정식
    오펜하이머
  • hELLO· Designed By정상우.v4.10.6
생각사람
tmux 정리 (2편) — 설정, 플러그인, 실용 커스터마이징
상단으로

티스토리툴바