구현하는 기능이 늘어날 수록 다수의 터미널을 사용하게 됩니다. 1개의 터미널 화면에서 복수의 분할 화면을 사용하도록 돕는 유틸리티중 screentmux 2가지가 있는데 screen 은 분할된 Session 이 불안정 하다는 내용이 있어서 tmux 를 사용해 보겠습니다. 아래의 내용은 Tmux를 쉽게 사용하기(tmux.conf 파일 설정) 를 참고 하였습니다.

Install

$ sudo apt-get install tmux
$ nvim ~/.tmux.conf
$ tmux
$ tmux source-file ~/.tmux.conf

Setting

아래의 설정 내용을 tmux.conf 에 정의하면 다음과 같은 단축키를 활용할 수 있습니다.

  • pane 가로 나누기 : ctrl+a, -
  • pane 세로 나누기 : ctrl+a,
  • pane 간 이동하기 : alt + 방향키
  • pane 삭제하기 : ctrl+d
  • pane 크기 조절 : ctrl+a 누른 상태에서 방향키

  • window 생성하기 : ctrl+a, c
  • window 삭제하기 : ctrl+d
  • window 이동하기 : ctrl+a, 0-9 (window number)
  • n (next window)
  • p (prev window)
  • 스크롤 모드 : ctrl+a,[
# .tmux.conf

# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# switch panes using Alt-arrow without prefix
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

# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on

Copy & Paste

Tmux 내부의 Session 을 사용하고 있어서 외부의 프로그램에서 터미널 내용을 가져오는 방법은 찾지 못하고 있습니다. 현재까지는 내부에서 파일에 결과값을 저장하고, 그 파일을 외부에서 활용하는 방법을 사용하고 있습니다.

  • Enter ‘copy mode’ by pressing CTRL+A, [.
  • Press CTRL+SPACE to start copying.
  • Use arrow keys to grap the block.
  • Press ALT+W or CTRL+W to copy into Tmux buffer.
  • Press CTRL+A, ] to paste different Tmux pane/window.