iTerm2·Zsh·Tmux 개발 환경 설정
macOS에서 터미널을 설정하며 모아 둔 내용입니다. 터미널 앱은 iTerm2를 사용하고, 셸에는 Zsh와 플러그인을, 여러 작업을 나눠 실행할 때는 Tmux를 조합했습니다.
글꼴과 테마는 화면을 읽기 위한 설정이고, 자동완성과 세션 관리는 명령을 입력하고 작업을 이어가기 위한 설정입니다. 필요한 것부터 적용할 수 있도록 나눠 정리했습니다.
Zsh와 입력 보조 기능
당시에는 Homebrew로 다음 패키지를 설치했습니다.
brew install zsh zsh-completions zsh-autosuggestions zsh-syntax-highlighting autojumpzsh-autosuggestions는 이전 입력을 바탕으로 명령을 제안하고, zsh-syntax-highlighting은 입력한 명령을 색으로 구분합니다. 패키지 설치와 셸에서 해당 기능을 불러오는 설정은 별개입니다.
Oh My Zsh를 쓴다면 ~/.zshrc의 플러그인 목록과 실제 설치 경로를 맞춰야 합니다. Homebrew로 설치한 플러그인을 Oh My Zsh의 plugins 목록에 이름만 넣어도 항상 읽히는 것은 아닙니다. 각 패키지의 설치 안내에 따라 source 설정이나 플러그인 경로를 확인해야 합니다.
테마와 글꼴
원래 메모에는 Powerline 글꼴과 Bullet Train, Powerlevel10k 테마가 함께 있었습니다. 테마를 여러 개 동시에 적용하는 것이 아니라 하나를 선택하는 구성입니다.
프롬프트의 아이콘이 네모로 보이면 먼저 iTerm2에서 선택한 글꼴이 해당 문자를 지원하는지 확인합니다. 테마별 설치 방식과 필요한 글꼴은 각 저장소의 안내를 따르는 편이 좋습니다.
Tmux 세션 사용
Tmux는 하나의 터미널 안에서 창과 패널을 나누고 세션을 분리해 둘 수 있는 도구입니다.
brew install tmux
tmux new -s work기본 키 설정에서 Ctrl+B를 누른 뒤 D를 누르면 세션에서 빠져나옵니다. 다시 연결할 때는 이름을 지정합니다.
tmux attach -t workSSH 연결이 끊겨도 원격 작업을 유지하려면 원격 서버에서 Tmux를 실행해야 합니다. 로컬 맥북의 Tmux 안에서 작업한다고 맥북을 꺼도 프로세스가 계속 실행되는 것은 아닙니다. Tmux 서버가 있는 장비의 프로세스가 살아 있어야 합니다.
창 번호와 플러그인 설정
기존 설정에서 창·패널 번호와 상태 표시줄 부분을 추리면 다음과 같습니다.
set -g base-index 1
set -g pane-base-index 1
set -g status-position top
set -sg escape-time 0플러그인은 TPM으로 관리했습니다. 다음은 세션 저장 관련 플러그인만 남긴 예시입니다.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmset -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# 다른 설정 뒤에 배치
run '~/.tmux/plugins/tpm/tpm'Tmux 안에서 설정을 다시 읽고, 기본 prefix인 Ctrl+B 다음 대문자 I로 플러그인을 설치합니다.
tmux source-file ~/.tmux.conf세션 유지와 재부팅 뒤 복원
tmux-resurrect는 창과 패널, 작업 디렉터리 같은 환경을 저장하고 복원합니다. tmux-continuum은 저장을 자동화하며, 시작 시 자동 복원을 쓰려면 별도 옵션이 필요합니다.
set -g @continuum-restore 'on'이 복원은 실행 중이던 배치의 메모리 상태나 처리 위치를 그대로 되살리는 기능이 아닙니다. 긴 작업을 중단 없이 유지하려는 목적과, 재시작 후 터미널 구성을 다시 여는 목적을 나눠 사용해야 합니다.