ZSH 꾸미기

우분투 사용에 bash로도 충분하지만, zsh 사용하면 git 관리가 좀 더 편하고 유용하여 기본 쉘로 zsh를 주로 사용하게 되었다. 우분투 설치를 2년만에 하다보니, 예전에 설정했던 기억이 거의 없어지는 관계로 간단히 정리둔다.

 

우선 zsh 및 sytax-highlight를 apt로 설치하고, wget을 사용하여 oh-my-zsh를 설치하도록 한다.

$ sudo apt install zsh zsh-syntax-highlighting
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

zsh과 oh-my-zsh를 설치하였다면, 아래 명령어를 사용하여 기본쉘을 zsh로 변경하도록 한다.

$ chsh -s /bin/zsh

그리고 테마를 robbyrussell에서 agnoster로 변경하고 syntax-highlight가 적용되도록 아래와 같이 수정하도록 한다.

$ vi ~/.zshrc

...

ZSH_THEME="agnoster"

...

# 맨 마지막 라인에 추가
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

 

마지막으로 커맨드 라인을 개행되어 작성하기 위해 agnoster 테마 파일을 아래와 같이 수정해야 한다.

$ vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

...
# newline() 추가
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=''
}

## 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
}

zsh 다양한 플러그인을 추가하면 좀 더 이쁘고 편한 환경을 구성할 수 있지만, 이 정도만 추가하여도 bash보다 가독성이 좋고 git 사용에 불편함이 많이 줄어든다.