지난 설명에 이어서 이번에는 tmux 의 설정에 대해서 자세히 살펴보자.
tmux 는 conf 파일로 단축키와 기능을 설정할 수 있다.
tmux.conf 설정 파일
tmux.conf
파일을 홈디렉토리 아래에 다음과 같이 생성한다.
$ vi ~/.tmux.conf
bind r source-file ~/.tmux.conf \; display "Reloaded!"
위의 설정은 현재의 session 에서 설정 파일인 tmux.conf
을 동적으로 바로 리로딩하는 기능을 가진다.
새로운 session 을 만들고 설정 파일을 리로딩해보자.
$ tmux new -s sample
이제 prefix
+ r
을 해보면 설정 파일이 리로딩된 것을 볼 수 있다. (prefix
는 ctrl + b
를 나타내며 Reloaded!
문구가 나타난 후 바로 삭제돼서 화면 캡쳐가 어렵다. ㅠㅠ)
설정 파일에 적용할 수 있는 내용을 더 알아보자.
set -s escape-time 1
prefix
와 command
사이에 인식할 수 있는 간격이 1초라는 의미이다. 리로딩의 경우 prefix
를 누르고 r
을 1초 이내에 눌러야 한다.
set -g base-index 1
setw -g pane-base-index 1
윈도우와 패인의 번호가 0
번이 아닌 1
번 부터 시작한다.
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
패인의 사이즈를 조절할 수 있다. prefix
+ H
는 왼쪽으로 5 만큼 늘린다는 의미이며, 수평(좌우)으로 2개의 패인으로 나눠진 경우에서 우측 패인에서 사용할 수 있다. 패인이 수직(위아래)으로 나눠진 경우에는 prefix
+ H
가 아니라 prefix
+ J
혹은 K
를 사용할 수 있다.
아래 이미지를 보면 오른쪽 패인이 조금 더 넓은 것을 볼 수 있다.
set -g mouse on
마우스 클릭으로 패인의 포커스를 이동할 수 있다.
setw -g pane-border-style fg=green,bg=black
setw -g pane-active-border-style fg=white,bg=yellow
현재 선택된 패인을 컬러바로 보여준다. 바로 위의 그림에서 노란색바가 아래에 있는데 이는 우측 패인이 선택되었다는 의미이다.
set -g status-left-length 40
set -g status-left "#[fg=green][#S] "
맨 아래 status 라인 왼쪽 사이드에 세션의 이름을 녹색으로 보여준다. 여기서는 [sample]
로 보여진다.
bind _ split-window -v -c "#{pane_current_path}"
bind / split-window -h -c "#{pane_current_path}"
패인을 나누면서 현재 패인의 디렉토리를 그대로 적용해 준다. prefix
+ %
는 수평(좌우)로 나누지만 세션을 만들 때의 디렉토리를 적용해준다. 하지만 prefix
+ /
는 수평(좌우)로 나누면서도 좌측 패인의 디렉토리를 우측패인에 그대로 적용해 준다.
아래 seungkyua 라는 디렉토리 위치가 그대로 적용된 것을 볼 수 있
Window / Pane 추가 기능
window 옮기기
세션에 있는 윈도우를 또 다른 세션으로 옮길 수 있으며, 서로 다른 윈도우를 하나의 윈도우에 패인으로 나눠서 통합할 수 있으며, 윈도우에 있는 패인을 또 다른 윈도우로 옮길 수 있다.
추가로 panes
세션을 만들고 거기에 first
윈도우를 만든다.
$ tmux new -s panes -n first -d
panes
세션에 second
윈도우를 만든다.
$ tmux new-window -t panes -n second
panes
세션에 들어간다. 윈도우는 second
윈도우에 접속된다.
$ tmux attach -t panes
first
윈도우를 second
윈도우에 패인으로 붙힌다.
prefix + : ---> 명령 모드로 변경됨
join-pane -s panes:1 ---> 명령 모드에서 명령어를 실행
결과로는 first
윈도우가 second
윈도우로 합쳐지면서 second
윈도우는 2개의 패인으로 남는다.
패인 layout 바꾸기
prefix
+ space
는 수직(위아래) 패인 레이아웃을 수평(좌우) 패인 레이아웃으로 바꿀 수 있다. 이 때 토글로 작동한다.
여러 패인에 동시에 명령어 실행하기
prefix
+ ctrl + s
로 여러 패인에 동시에 명령어를 실행할 수 있다. 이 명령어도 토글로 작동된다.
현재 패인을 새로운 윈도우로 옮기기
prefix
+ !
는 현재 패인을 새로운 윈도우로 만들면서 옮길 수 있다. 위에 2:second
윈도우가 있고 우측 패인이 있는데, 우측 패인에서 해당 키를 수행하면 1:zsh
윈도우가 만들어지면서 해당 패인이 윈도우가 된다.
패인 최대화하기
prefix
+ z
는 현재 패인을 최대화해서 보여준다. 보통 패인은 창을 나눠서 쓰기 때문에 화면이 좁을 수 있는데 일시적으로 현재 패인을 전체화면 윈도우로 만들어 준다고 생각하면 쉽다.
토글 기능이라 전체화면 윈도우에서 prefix
+ z
를 수행하면 원래 패인 크기도 돌아온다.
최대화가 되면 화면 아래에 status 에서 패인이름 끝에 Z
표시가 붙어 있어 현재 상태를 알기 쉽게 되어 있다.