Home tmux 설치 및 적응기
Post
Cancel
Preview Image

tmux 설치 및 적응기

VSCode를 탈출하고 싶다.

이유는… 점점 무거워진다는 것이다.

처음에는 단순한 텍스트 에디터 수준이었지만,

터미널도 무거워지고, extension들도 점점 많아진다.

새로 부팅해서 VSCode를 켜면 로딩이 상당히 느리다…

뭐 나중에 개선하면 돌아가서 쓰겠지만, 굳이…? 또 이렇게 해보다가 불편하면 돌아가겠지…

아무튼 그래서 vim 을 주로 사용해보려고 한다.

그런데 vim 하나만 사용하기엔 역시 불편하다.

가장 큰 불편함은 터미널을 동시에 여러 개 켜야한다는 것이다.

그래서 이에 대한 해결책을 찾아보다가, 예전부터 관심이 있었던 tmux를 한 번 사용해보기로 했다.

이 글도 tmux를 통해서 작성해보았다.

1.png

생각보다는 어렵지 않고 편하다…?

트랙패드를 이렇게까지 안 써본적은 오랜만인 것 같다.

자세한 후기는 아래에 적어보겠다.

macOS 기준으로 간단하게 설명하겠다.

설치

1
$ brew install tmux

아래 명령어를 통해서 설치되었다는 것을 확인할 수 있다.

1
$ tmux -V

용어

tmux를 처음 접했을 때 여러 새로운 용어들이 나온다.

사실 정리할 생각은 없었는데, https://medium.com/@jeongwhanchoi/install-tmux-on-osx-and-basics-commands-for-beginners-be22520fd95e를 보면서 정리의 필요성을 느껴서 같이 정리해본다.

Prefix

tmux에서는 단축키 명령어를 사용하기 위한 Prefix가 있다.

기본 tmux Prefixctrl + b이며, 이는 수정가능하다.

예를 들어 단축키가 %라면 <ctrl + b> + % 또는 <Prefix> + %을 입력하면 된다.

커스텀 Prefix 설정은 아래에서 따로 소개하겠다.

Session

tmux에서 관리하는 가장 큰 단위 유닛이다.

attach/detach를 통해서 접근할 수 있다.

exit를 통해서 세션을 나갔다면, 세션은 백그라운드에서 계속 실행되고 있다.

Window

세션안에 존재하는 tab개념으로 생각하면 좋다.

한 세션에는 여러 윈도우들이 존재할 수 있다.

윈도우를 만들고, 바꿀 수 있다.

Pane

윈도우 안에 존재하는 스크린 유닛 개념으로, 한 윈도우는 여러 Pane들이 존재할 수 있다.

단축키

Session

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 세션 시작하기
$ tmux

# SESSION_NAME으로 세션 시작하기
$ tmux new -s SESSION_NAME

# 세션 끝내기
$ exit

# Attach Session
$ tmux attach -t SESSION_NAME

# Detach Session
<prefix> + d

# Session List
$ tmux ls

Window

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#window 생성
ctrl + b, c

#window 이름 수정
ctrl + b, ,

#window 종료
ctrl + d

#window 이동
ctrl + b, 0-9 : window number
            n : next
            p : prev
            w : window selector

Pane

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# pane 나누기
ctrl + b, % : 세로 분할
          " : 가로 분할

# pane 이동
ctrl + b, q : number
          o : 순서대로 이동

# pane 닫기
ctrl + d

# 사이즈 조절
ctrl + b, :resize-pane -L,R,D,U 10
# OR
ctrl + b, alt + 방향키

# 레이아웃 변경
ctrl + b, spacebar

커스텀 설정 (.tmux.conf)

1
$ vim ~/.tmux.conf

에서 아래와 같이 필요한 설정을 해주면 좋다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# ~/.tmux.conf
set-option -g history-limit 10000       #history 라인 10000
set-option -g default-shell /bin/zsh    #기본 bash zsh로 변경

# 기본 Prefix 키 바인딩을 수정
# unbind default prefix and set it to ctrl-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# make delay shorter
set -sg escape-time 0



#### key bindings ####

# reload config file
bind r source-file ~/.tmux.conf \; display ".tmux.conf reloaded!"

# quickly open a new window
bind N new-window

# synchronize all panes in a window
bind y setw synchronize-panes

# pane movement shortcuts (same as vim)
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 마우스 사용할 수 있게끔 설정
# enable mouse support for switching panes/windows
set -g mouse on

#### copy mode : vim ####

# set vi mode for copy mode
setw -g mode-keys vi

# copy mode using 'Esc'
unbind [
bind Escape copy-mode

# start selection with 'space' and copy using 'y'
bind-key -T copy-mode-vi 'y' send-keys -X copy-selection

# paste using 'p'
unbind p
bind p paste-buffer

# colorscheme 사용하도록 설정
# https://github.com/tmux-plugins/tpm 참고
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Terminal type configuration
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

colorscheme 사용하는 설정도 위에 포함되어 있다.

기존 tmux에서는 vim 사용시 제대로 안되었기 때문에…

만약 사용하고 싶다면, https://github.com/tmux-plugins/tpm를 참고해서 설정해보자.

만약 설정한다면, ~/.tmux/plugins 경로부터 설정해둬야한다.

실제 적용한 cli

1
2
3
4
5
6
7
8
$ brew install tmux
$ mkdir ~/.tmux
$ mkdir ~/.tmux/plugins
$ git clone git@github.com:tmux-plugins/tpm.git ~/.tmux/plugins/tpm
# After clone dotfiles repository
# https://github.com/bossm0n5t3r/dotfiles/blob/master/.tmux.conf
$ ln -sf ~/gitFolders/dotfiles/.tmux.conf .tmux.conf
$ tmux

후기

위에도 적어봤지만, 전체적으로 이 글을 작성하는데 있어서 다른 IDE를 사용하지 않고 작성해보았다.

생각보다 편했다…

트랙패드는 이미지 저장 및 설정하는데 잠깐 사용했고, 그 외에는 bundle exec jekyll serve

빌드된 이미지 결과를 확인하는데 주로 사용했다.

앞으로 여러 터미널을 동시에 띄워서 사용해보고 더 후기를 남겨보겠다.

References

This post is licensed under CC BY 4.0 by the author.

[Rust] Generic Types

[Java][Collections] 개요