Search
Duplicate
📍

Tmux 삽질

생성일
2022/05/15 23:19
태그
개발환경
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
복사

삽질

참고