터미널 생산성을 높이는 Tmux 개인 설정
0. 왜 Tmux를 써야 할까? (Why Tmux?)
터미널을 **'웹 브라우저'**에 비유하면 이해가 빠르다.
멀티태스킹 (탭과 창) 브라우저에서 탭을 여러 개 띄워 검색, 유튜브, 메일을 동시에 보듯, Tmux는 하나의 터미널 창 안에서 서버 실행, 코드 수정, 로그 확인을 동시에 할 수 있게 해준다.
세션 유지 (안전장치)
가장 강력한 기능이다. 원격 서버에서 작업하다가 인터넷이 끊기거나 실수로 터미널을 닫아도, Tmux 세션은 백그라운드에서 계속 살아있다. 다시 접속(attach)하면 작업하던 모습 그대로 복구된다.
용어
-
세션 (Session)
- 브라우저 창 전체와 같다.
A 프로젝트,B 프로젝트를 따로 띄우듯, 작업의 큰 문맥을 통째로 담아두는 가장 큰 그릇이다.
-
윈도우 (Window)
- 브라우저의 **'탭(Tab)'**과 같다.
- 하나의 세션 안에서 서버(1번), **DB(2번)**처럼 용도별로 화면을 전환하며 사용하는 공간이다.
-
페인 (Pane)
- 탭 하나를 상하좌우로 쪼갠 화면이다.
- 한 윈도우 안에서 왼쪽은 에디터, 오른쪽은 로그를 동시에 띄워두고 보는 분할된 영역이다.
1. 설치 및 필수 플러그인 (Installation)
Mac(Homebrew) 환경 기준. 기본 설치 후 **TPM(Tmux Plugin Manager)**까지 설치해야 강력한 기능을 100% 활용할 수 있다.
1. Tmux 설치
brew install tmux2. 플러그인 매니저(TPM) 설치
다양한 플러그인을 간편하게 관리하기 위해 필수다.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm2. 실무 최적화 설정
(.tmux.conf)
기본 Tmux 설정(접두사 키 C+b가 멀어서 불편함)을 실무에 맞게 변경했다.
vi ~/.tmux.conf 파일을 생성하고 아래 내용을 그대로 넣는다.
# ==========================================
# 1. 기본 편의 설정
# ==========================================
# Prefix 키 변경 (기본 Ctrl+b는 손이 꼬임 -> Ctrl+a로 변경)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 마우스 사용 허용 (창 크기 조절, 스크롤 등)
set -g mouse on
# 인덱스 설정 (키보드 0번은 너무 머니까 1번부터 시작)
set -g base-index 1
set -g pane-base-index 1
set -g renumber-windows on # 창 닫으면 번호 자동 정렬
# ==========================================
# 2. 키 바인딩 (Key Bindings)
# ==========================================
# 직관적인 화면 분할 (현재 경로 유지하며 분할)
# | : 좌우 분할
# - : 상하 분할
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Vim 스타일 복사 모드 (v:선택, y:복사)
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
# ==========================================
# 3. 플러그인 (Plugins)
# ==========================================
# Vim과 Tmux 간의 이동을 통합 (Ctrl+hjkl)
set -g @plugin 'christoomey/vim-tmux-navigator'
# 필수 플러그인 로드
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# TPM 실행 (반드시 파일 맨 마지막에 위치)
run '~/.tmux/plugins/tpm/tpm'-
플러그인 관리자 (TPM)
- 스마트폰의 앱스토어와 같은 역할이다. 복잡한 수동 설정 없이, 단축키(
Ctrl + a + I) 한 번으로 필요한 플러그인을 즉시 설치하고 업데이트할 수 있게 해주는 핵심 도구다.
- 스마트폰의 앱스토어와 같은 역할이다. 복잡한 수동 설정 없이, 단축키(
-
필수 최적화 (Sensible)
- 순정 상태의 답답한 키 입력 딜레이(Esc) 나 화면 출력 속도 문제를 해결해 환경 을세팅해준다.
설정 적용 방법:
- 위 파일을 저장한다.
- 터미널에서
tmux source ~/.tmux.conf를 입력한다.- Tmux 실행 후
Ctrl + a누르고I(대문자 i) 를 눌러 플러그인을 설치한다.
3. 스마트 실행 함수
t
매번 생성 tmux new -s ...를 치는 것은 번거롭다. "없으면 만들고, 있으면 접속하는" 단축 명령어를 쉘 설정 파일(~/.zshrc 등)에 추가한다.
Bash
# t [이름] : 해당 세션이 있으면 접속, 없으면 생성
function t() {
if [ -z "$1" ]; then
# 이름 없이 't'만 치면 'main' 세션으로 연결
tmux new -A -s main
else
# 't 프로젝트명' 치면 해당 세션으로 연결
tmux new -A -s "$1"
fi
}- 사용법: "Hello" 세션을 만들고싶다? -> 터미널에서
t Hello라고 치면 끝.
4. 핵심 단축키 치트시트 (Cheatsheet)
모든 명령은 **Prefix(Ctrl + a)**를 먼저 누르고 입력한다.
| 구분 | 단축키 (Ctrl + a 후) | 설명 |
|---|---|---|
| 세션 | s |
세션 목록 보기/이동/삭제(x) (가장 중요) |
d |
세션 나가기 (Detach, 백그라운드 유지) | |
$ |
현재 세션 이름 변경 | |
| 윈도우 | c |
새 윈도우(탭) 생성 |
, |
윈도우 이름 변경 | |
n / p |
다음 / 이전 윈도우 이동 | |
| 페인 | ` |
백틱 |
- |
화면 상하 분할 | |
z |
현재 패인 전체 화면 확대/복구 (Zoom) | |
| 이동 | Ctrl + h,j,k,l |
페인 간 이동 (Prefix 없이 바로 이동) |
5. 트러블슈팅: 오른쪽 이동(Ctrl+l)이 안 될 때
Tip 마우스를 사용하지 않는 키보드 중심 환경에서 중요하다
설정을 완벽하게 했는데도 **"왼쪽(Ctrl+h)은 되는데 오른쪽(Ctrl+l)으로 이동이 안 되는 현상"**이 발생할 수 있다.
원인: 터미널 충돌
유닉스 시스템에서 Ctrl + l은 "화면 청소(Clear)" 명령어다. Tmux나 Vim이 신호를 받기 전에, 사용 중인 터미널 앱(iTerm2, Alacritty 등)이 이 키를 먼저 가로채서 발생하는 문제다
진단 방법 (cat 테스트)
범인을 확실히 잡기 위해 터미널에서 다음을 수행.
- 아무 쉘에서나
cat을 입력하고 엔터 (입력 대기 상태). Ctrl + l을 누른다.-
화면에
^L이 찍힌다? → 정상 (터미널 문제 아님).Ctrl + l을 눌렀을 때^L이 찍히는 것은, 쉘이 해당 키 입력을 '리터럴(문자)'로 인식했다는 뜻입니다. -
화면이 싹 지워진다? → 범인 검거 (터미널이 키를 가로챔).
-
해결 방법
터미널 설정에서 Ctrl + l 매핑을 해제해야 한다.
-
iTerm2:
Settings>Profiles>Keys>Key Mappings에서^l항목 삭제. -
Alacritty/Zsh: 쉘 설정(
~/.zshrc)에 아래 코드를 추가하여 키 바인딩을 해제한다.
Ctrl+l 바인딩 해제 (Vim/Tmux에게 양보)
bindkey -r "^L"Log
- • 2026-01-23: fleeting