zsh, zplug과 oh-my-zsh 시작하기

2017-12-19
블로그 UI가 개편중입니다. 참고해주세요.

최종 모습

스크린샷

zsh을 사용하게 된 계기

  • bash sh을 아주 잘쓰고 있었음
  • 실수로 rm -rf ~를 입력
  • 혼돈의 카오스
  • 닷으로 시작하는 설정 파일들이 날라감 (.bash* 등등)
  • 이렇게 된 이상 그 좋다던 zsh을 사용해보자.

셋업 환경

  • mac
  • iTerm2

zsh 설치하기

mac은 기본적으로 zsh이 깔린 듯 하다. 아래를 실행시켜 확인해본다.

zsh --version

만약 없다면 아래의 커맨드를 실행시켜 설치한다.

brew install zsh

설치가 끝났다면 chsh을 사용해서 기본 쉘을 바꾼다.

chsh -s `which zsh`

oh my zsh 설치하기

홈페이지에 나와 있는 방법대로 아래의 2가지 중 한 가지 방법으로 설치한다.

wget

sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

curl

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

위의 sh를 실행시키면 git에서 oh my zsh 저장소를 ~/.oh-my-zsh 경로에 clone을 한다. 그리고 vi ~/.zshrc에 기본 셋팅을 자동으로 해준다. 여기까지는 oh my zsh 사용법이다.

zplug 설치하기

일반적으로는 위의 방법까지 진행하면 크게 사용하는 데에는 지장이 없을 것이다. 개인적으로 oh my zsh을 커버할 수 있는 프레임워크를 원했고 찾아보니 일본 냄새 풀풀 나는 zplug이라는게 있었다.

사실 이것 말고도 여러 가지가 있었으나 범용성이 떨어졌다. oh my zsh에 너무 의존적이거나 사용하기 불편하거나 느리거나 세 가지 중 하나여서 모든 zsh의 라이브러리를 커버할 수 있으면서 속도도 괜찮은 zplug를 선택하였다. zplug에서는 아래 목록을 사용할 수 있다. (사실상 거의 모든 것)

  • Zsh plugins/UNIX commands on GitHub and Bitbucket
  • Gist files (gist.github.com)
  • Externally managed plugins e.g., oh-my-zsh and prezto plugins/themes
  • Binary artifacts on GitHub Releases
  • Local plugins
  • etc. (you can add your own sources!)

그럼 이제 zplug을 설치해보자.

export ZPLUG_HOME=~/.zplug
git clone https://github.com/zplug/zplug $ZPLUG_HOME

설치는 끝났고 사용하는 법만 남았다. 기본적으로 oh my zsh에서 사용 가능한 플러그인과 테마가 모두 사용이 가능하다. 또한 외부테마도 사용할 수 있다. 필자는 spaceship이라는 어여쁜 외부 테마를 사용할 예정이다.

기존에 oh my zsh에서 자동으로 작성해준 .zshrc의 모든 내용을 지우고 아래의 내용으로 교체한다.

##################
# VAL SET
##################
export ZSH=~/.oh-my-zsh

##################
# ZPLUG LOAD
##################
source ~/.zplug/init.zsh

##################
# ZPLUG START
##################
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-history-substring-search"
zplug "zsh-users/zsh-syntax-highlighting"
zplug "robbyrussell/oh-my-zsh", use:"lib/*.zsh"
zplug "plugins/git", from:oh-my-zsh
zplug "plugins/osx", from:oh-my-zsh, if:"[[ $OSTYPE == *darwin* ]]"
zplug "plugins/zsh_reload", from:oh-my-zsh
zplug "plugins/colorize", from:oh-my-zsh
zplug "plugins/docker", from:oh-my-zsh
# zplug "themes/robbyrussell", from:oh-my-zsh

# theme
zplug "denysdovhan/spaceship-zsh-theme", use:spaceship.zsh, from:github, as:theme

# install & load
zplug check || zplug install
zplug load

아래 커맨드로 적용시킨다.

source ~/.zshrc

zplug를 통해 oh my zsh의 플러그인과 github에 있는 외부테마가 콜라보를 이루며 잘 적용된다.

자세한 사용법은 zplug를 참조하는게 좋을것 같다. (아직 필자도 잘 모르기 때문에..)

폰트 깨짐 해결

막상 spaceship theme를 적용하면 터미널 내에서 폰트가 깨진다. https://github.com/powerline/fonts에 가면 터미널을 위한 특수 폰트가 준비되어 있다. 설치한다.

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
  • iTerm2 > Preferences > Profiles > Text 설정에 들어간다.
  • Font부분에서 Use a different for non-ASCII text에 체크한다.
  • Non-ASCII Font에서 Change Font를 클릭하고 Roboto Mono for Powerline을 선택한다.

해결완료.

iTerm2 꾸미기

http://iterm2colorschemes.com/, 감사하게도 이 사이트에 iTerm에 관련된 테마가 준비되어 있다. 다운 받고 압축을 풀면 schemes 폴더에 수많은 테마들이 존재하고 import를 통해 적용시키기만 하면 된다.

  • iTerm2 > Preferences > Profiles > Colors 설정에 들어간다.
  • 우측 하단 Color Presets... 클릭
  • Imports... 클릭
  • schemes > ayu 테마 적용

적용완료.

모든 설정이 끝났다. 이제 zsh로 즐거운 터미널 생활을 해보자.

Prev

docker 컨테이너 내의 locale(로케일) 에러 해결

특정 docker image를 컨테이너로 만들고 접속해보니 아래와 같은 locale 에러 메세지가 발생했다. 무시하고 작업을 해도 되지만 매우 거슬려서 아래와 같이 추가 설정을 하였다. bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory bash: warning: setlocale: LC_COLLATE:...

window에서 headless 프로젝트 시작하기

이 글까지 찾아왔다면, 설치나 셋팅 문제로 고생을 많이하고 왔을꺼라는 추측이든다. 후.. 나 역시 이 글을 적기까지 꽤 많은 삽질(대략 4일 정도… 아마도 배경지식의 부족)을 했다. 이제 막 window에서 headless project를 시작해 보려 하는 분들을 위해 삽질의 결과물을 글로 써본다. 프로젝트...