Tmux 에 익숙해지기 위해 정리한것들
설치
# Ubuntu
sudo apt install tmux
# mac OS
brew install tmux
# 42서울 mac OS
rm -rf $HOME/.brew && git clone --depth=1 https://github.com/Homebrew/brew $HOME/.brew && echo 'export PATH=$HOME/.brew/bin:$PATH' >> $HOME/.zshrc && source $HOME/.zshrc && brew update
brew install tmux
Bash
복사
구성
•
세션 → 윈도우 → 패널
•
각 세션은 kill 하지 않는 이상 계속 유지됨
•
기본 단축키가 진짜 이상하게 되어있다. 불-편 그래서 내가 편한대로 설정할것이다.
◦
패널간 단축키는 알트로, 윈도우간 단축키는 컨트롤+알트로
◦
세션은 윈도우가 위아래로 있다고 생각한다.
•
컴퓨터를 껏다 켜도 하던 작업 계속 유지
•
pre + : 로 내장 커맨드 가능
설정
•
설정파일 적용 : tmux source ~/.tmux.conf
•
아래의 내용을 적용했다면, pre + r 로도 가능
플러그인 설치
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Bash
복사
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# 제일 밑에 추가
run '~/.tmux/plugins/tpm/tpm'
Bash
복사
•
플러그인 설치 및 적용은 pre + I (대문자 I)
일반
#set mouse off/on - if off, forces you to use keyboard with prefix-[
set -g mouse on
#256 colours
set -g default-terminal "xterm-256color"
# start with window 1 (instead of 0)
set -g base-index 1
# start with pane 1
set -g pane-base-index 1
# use vi mode
setw -g mode-keys vi
set -g status-keys vi
# scrollback buffer size increase
set -g history-limit 100000
# disable window name auto change
set -g allow-rename off
#Setting escape time delay to be smaller
#to make tmux more responsive to commands
set -s escape-time 0
set -g status-bg black
# Status line left side
set -g status-left-length 40
set -g status-left "#[fg=colour245]#W #[fg=colour245]#I"
# S : session name
# W : window name
# I : window index
# P : pane index
# Status line right side
set -g status-right "#[fg=colour245]%b %d #[fg=colour256] %R"
# Update the status bar every sixty seconds (for the time)
set -g status-interval 60
display-message "done"
Bash
복사
단축키
unbind-key -a
source-file ~/.tmux.reset.conf
#change prefix from C-b to C-a
unbind C-b
set -g prefix C-a
#bind C-a C-a to 'home', or start of line, which was C-a previously
bind C-a send-prefix
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf
# session
bind -n C-M-m source-file ~/.tmux/mine/new_session
bind -n C-M-Down run-shell ~/.tmux/mine/next_session.sh
bind -n C-M-Up run-shell ~/.tmux/mine/prev_session.sh
bind -n C-M-j run-shell ~/.tmux/mine/next_session.sh
bind -n C-M-k run-shell ~/.tmux/mine/prev_session.sh
# splitting panes
bind -n M-n split-window -h -c '#{pane_current_path}'
bind -n M-m split-window -v -c '#{pane_current_path}'
bind -n M-w confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind -n M-q choose-tree
bind -n M-[ swap-pane -U
bind -n M-] swap-pane -D
# Use Alt-arrow keys WITHOUT PREFIX KEY to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-k select-pane -U
bind -n M-j select-pane -D
# setting windows
bind -n C-M-n new-window -c '#{pane_current_path}'
bind -n C-M-w confirm-before -p "kill-window #W? (y/n)" kill-window
bind -n C-M-q choose-window
bind -n C-M-y run-shell ~/.tmux/mine/move_window_prev.sh
bind -n C-M-o run-shell ~/.tmux/mine/move_window_next.sh
# switch windows
bind -n C-M-Right next-window
bind -n C-M-Left previous-window
bind -n C-M-l next-window
bind -n C-M-h previous-window
Bash
복사
new_session
next_session.sh
prev_session.sh
move_window_prev.sh
move_window_next.sh
세션 저장
•
컴퓨터가 꺼지더라도 세션이 그대로 유지되어 하던 작업을 이어서 할 수 있다.
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
Bash
복사
•
pre + Ctrl + s 저장
•
pre + Ctrl + r 불러오기
•
15분 간격으로 자동 저장되고 컴퓨터를 다시 켜면 자동으로 불러와진다.
명령어
# 세션 확인
tmux ls
# 세션 만들기
tmux new -s [세션이름]
# 세션 접속
tmux attach -t [세션이름]
tmux a -t [세션이름]
tmux a #
# 세션 강제 종료
tmux kill-session -t [세션이름]
Bash
복사
단축키
•
prefix : Ctrl + a
세션
pre + w : 세션 리스트
Ctrl + Alt + q : 세션 리스트 (윈도우 리스트)
Ctrl + Alt + m : 새 세션 생성 (윈도우를 위아래로 생성)
Ctrl + Alt + 방향키 위아래 : 세션 이동 (윈도우를 위아애로 이동)
Ctrl + Alt + jk : 세션 이동 (윈도우를 위아애로 이동)
pre + $ : 세션 이름 변경
pre + d : 세션 detach
Plain Text
복사
윈도우
Ctrl + Alt + q : 윈도우 리스트
Ctrl + Alt + n : 새 윈도우 생성
Ctrl + Alt + 방향키 좌우 : 윈도우 이동
Ctrl + Alt + hl : 윈도우 이동
Ctrl + Alt + yo : 윈도우 위치 이동
Ctrl + Alt + w : 윈도우 강제 종료
pre + f : 윈도우 찾기
pre + , : 윈도우 이름 변경
Plain Text
복사
패널
Alt + q : 패널 리스트
Alt + n : 가로로 새 패널 생성
Alt + m : 세로로 새 패널 생성
Alt + 방향키 : 패널 포커스 이동
Alt + hjkl : 패널 포커스 이동
ALt + [] : 패널 위치 이동
Alt + w : 패널 강제 종료
pre + 방향키 : 패널 크기 조절
Plain Text
복사
복사
•
마우스 드래그 하면 복사 됨
pre + [ : 복사 모드
V : visual 모드
y : 복사
Enter : 종료
Plain Text
복사