본문 바로가기

macOS iTerm2 zsh 설정하기

인프라 글이 아닌거 같지만 그렇다고 프론트엔드 글도 아닌...

 

회사에서 새로 받은 개인 장비에 iterm2와 zsh를 세팅한 과정을 기록하는 글이다.

 

iTerm2부터 zsh 기본 세팅 과정은 여기를 많이 참고하였다.

1. iTerm2 설치

먼저 iTerm2 설치링크에서 iTerm2를 설치한다.

2. zsh 설치

이제 zsh를 설치한다. brew를 사용하면 한번에 설치할 수 있다.

brew install zsh

oh-my-zsh는 zsh를 더욱 쉽게 사용할 수 있게 미리 설정해주기 때문에 추천한다. 아래는 oh-my-zsh를 curl로 설치하는 명령어이다.

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

3. zsh 테마 적용

날 것의 zsh는 모두 흰색 글씨라 예쁘지도 않고 가독성도 떨어지니 적절한 테마를 찾는다.

이 링크를 추천한다.

 

단축키로 cmd + ,를 입력하면 preference가 나타나고 Profiles > Colors의 우측 하단에서 Color Theme을 import 해서 사용할 수 있다.

설정 예시

해당 링크의 schemes/ 디렉토리에는 다양한 테마가 있는데 원하는 테마를 쓰면된다. 글쓴이의 경우 vscode의 Dark Pastel Theme을 사용하였다.

예제 화면

이제 아래의 명령어로 설정 파일을 열어본다.

vi ~/.zshrc

열어보면 기본 ZSH_THEME이 "rubbyrussell"임을 볼 수 있는데 이것을 "agnoster"로 변경해준다.

agnoster테마는 현재 디렉토리에서 Git의 상태를 알려줍니다. 이 기능은 보이는것보다 아주 강력해서 현재 마스터브랜치인지 개발브랜치인지 혹은 커밋은 까먹고 하지 않았는지 등을 자연스래 알려줍니다.

변경하고 돌아오면 폰트가 이상하게 깨져보일텐데 이를 해결하기 위해 폰트를 새로 지정해준다.

 

네이버 D2 코딩용 폰트를 설치하고 이를 위의 단축키로 preferences를 다시 열어서 Profiles > Text에서 지정해주면 끝!

.zshrc 파일을 열어서 맨 하단에 아래의 코드를 입력해주면 사용자명 뒤에 붙는 @macbook-pro를 제거할 수 있다.

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

그리고 사용하다보면 명령어가 길어져 줄바꿈이 될 때 마지막 글자가 가려져 보이지 않는데 이를 해결하기 위해 newline을 설정해준다.

사용한 테마 기준으로 명령어를 아래처럼 입력하여 theme파일을 연다.

vi ~/.oh-my-zsh/themes/agnoster.zsh-theme #agnoster 테마 사용 시

theme 파일의 build_prompt 내의 prompt_end 바로 위에 prompt_newline을 추가한다. 반드시 end보다 아래에 입력하면 안된다.

## Main prompt
build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_aws
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline
  prompt_end
}

이제 build_prompt 아래에 아래의 코드를 입력하면 명령어가 줄바꿈되어 시작된다.

prompt_newline() {
  if [[ -n $CURRENT_BG ]]; then
    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%{%k%F{blue}%}$SEGMENT_SEPARATOR"
  else
    echo -n "%{%k%}"
  fi

  echo -n "%{%f%}"
  CURRENT_BG=''
}

4. zsh 플러그인 설치

zsh는 다양한 플러그인을 제공하여 터미널 작업을 더욱 효율적으로 할 수 있도록 지원한다.

4.1 zsh-syntax-highlighting

zsh-syntax-highlighting 플러그인은 올바른 명령어일 경우와 올바르지 않을 경우를 가시적으로 나타내준다.

(좌) 올바른 경우 (우) 틀린 경우

brew를 통해 플러그인을 설치 후 .zshrc의 plugins에 추가해준다.

zsh를 설치한 후, brew Command Not Found 오류가 뜨면 .zshrc에 PATH를 import해준다.

export PATH=/opt/homebrew/bin:$PATH
brew install zsh-syntax-highlighting
# vi ~/.zshrc
plugins=(
  git
  zsh-syntax-highlighting
)

혹시나 해당 과정 중 zsh를 다시 시작했을 때 '[oh-my-zsh] plugin zsh-syntax-highlighting not found' 메세지를 본다면 이 이슈처럼 해결한다.

4.2 zsh-autosuggestions

자동완성 플러그인으로 여기를 참고하여 설치할 수 있다.

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

마찬가지로 .zshrc의 plugins에 추가한다.

# vi ~/.zshrc
plugins=(
  git
  zsh-syntax-highlighting
  zsh-autosuggestions
)

 위 그림에서 회색 글씨로 추천 검색어?처럼 뜨는 게 보인다. 타이핑 중에 →를 누르면 자동완성된다.

 

항상 장비를 새로 받으면 이렇게 설정해서 개발 속도를 더욱 높일 수 있도록 해야겠다 :)

** 또 요용한 플러그인이나 툴이 있으면 추가 **