my-dev-env

터미널을 꾸며보자!

개발환경을 세팅하는 것은 매우 귀찮은 일입니다. 그럼에도 가장 중요한 것은 어떤 프로젝트를 하기 전 그에 맞는 개발환경을 구성하는 것입니다. 그 중에서도 가장 기본적인 터미널 관련 환경설정을 알아보려 합니다. 지금 하는 모든 것들은 개발과는 크게 관련없는 꾸미기 위한 장치들입니다. 하지만 못생긴 기본 터미널보다는 화려하면서도 필요한 정보를 직관적으로 보여주도록 구성하는 것들은 생산성 향상에 큰 도움이 됩니다.

iterm2

iterm은 기본 터미널을 잘 활용할 수 있도록 도와주는 터미널 에뮬레이터 입니다. tmux라는 터미널 멀티플렉서를 활용해야 한 창에 여러개의 터미널을 띄울 수 있지만 명령어가 어려운 사용자들은 iterm으로도 얼마든지 이 기능을 활용할 수 있습니다.
공식홈페이지 에 접속하셔서 다운로드 받으실 수 있으며, 실행하면 끝입니다.

추가: iterm3.3 업데이트를 수행하면 status bar를 추가할 수 있습니다.

zsh

맥과 우분투 모두 기본적으로 사용하는 쉘은 bash(Bourne Again SHell)입니다. 유닉스 환경의 기본 쉘이라 많이 사용하지만, 나온지 오래되기도 했고 단색의 환경은 다양한 정보를 표현하기에는 한계가 있는 것이 분명합니다. zsh은 컬러풀한 환경을 구성하는 것 뿐 아니라 저도 아직 다 모르는 다양한 기능들이 있다고 합니다. 대표적으로는 커맨드 오탈자 교정, 파일이름 자동완성 등 엄청 편한 기능들이 포함되어 있습니다. 이정도만 해도 개발자에게는 실수로 인한 타이핑 증가를 줄여줄 수 있어 생산성 향상에 큰 도움이 될 것입니다.

1
$ brew install zsh

homebrew가 설치되어 있지 않다면 homebrew 공식홈페이지 를 통해 꼭 설치 하시기 바랍니다. MacOS용 패키지 매니저인 homebrew는 애플에서 제공하지 않는 다양한 패키지들을 편리하게 설치할 수 있도록 도와줍니다.

zsh를 정상적으로 설치하셨다면, shell 등록을 하고 기존의 bash를 zsh로 변경해줄 차례입니다.

1
$ which zsh

를 통해 zsh의 링크 위치를 알아내고, 이를 $sudo vi /etc/shells에 등록하여 시스템이 zsh를 인식할 수 있도록 합니다.

1
$ chsh -s path/zsh

위 명령으로 shell을 zsh로 변경하면 새로운 쉘 환경을 사용할 준비가 되었습니다. iterm을 재시작하여 zsh이 정상적으로 작동하는지 확인한 다음, oh-my-zsh를 설치합니다.

oh-my-zsh + agnoster themes

oh-my-zsh는 Robby Russell이 배포한 오픈소스 터미널 프레임워크입니다. 아직도 밋밋한 zsh에 작은 수고로 화려한 테마를 적용할 수 있도록 도와줍니다. 공식 github에 가시면 자세한 설명과 함께 각종 테마들을 확인하실 수 있습니다. 그중에서도 많이 쓰이는 기본 테마는 agnoster 테마입니다.

가장 많이 쓰이는 컬러설정인 solarized dark에 가장 잘 어울리면서도 깔끔하고 다양한 정보를 보여주는 파워라인이 많은 사랑을 얻고 있습니다.

oh-my-zsh의 많은 테마들은 기본 폰트에서는 제공하지 않는 파워라인 패치폰트를 사용합니다. 따라서 파워라인 패치가 되어있는 폰트를 사용하셔야 합니다.

solarized dark

iterm2 > preferences > profiles > colors 탭에서 iterm2의 컬러설정을 바꿀 수 있습니다. 터미널의 기본색인 검정색이나 흰색은 너무 단색이라 쉽게 눈이 피로해지는 단점이 있는데, solarized 컬러 스키마는 시안성 높으면서도 편안한 어두움을 제공합니다. 공식페이지 에서 전체 설정을 다운로드 받으실 수 있습니다.

1
$ git clone git://github.com/altercation/solarized.git

그냥 클론받으셔서 사용하셔도 됩니다.

다시 iterm2의 컬러 설정으로 돌아와 오른 쪽 밑의 color presets… 드랍다운을 선택하시고, export 혹은 (가져오기?)를 선택하셔서 방금 클론받은 디렉토리 > iterm2-colors-solarized 의 파일 두가지를 모두 불러와 설정하면 자동으로 변경이 완료됩니다.

powerline patched font

개발자들은 고정폭글꼴을 사용합니다. 일반적인 텍스트의 가독성은 떨어지지만 코드를 볼 때에는1, l, I, ㅣ, | 을 명확하게 표현하는 것이 매우 중요합니다. 이런 글자를 구분하지 못해 오류가 난다면 시간낭비가 엄청날 뿐더러 찾고 난 뒤에도 별로 기분이 좋지 않단 말이죠…

저는 코딩용 폰트로 오픈소스 코딩폰트인 Hack을 사용합니다. Dejavu 와 Bitstream을 기반으로 세미콜론과 콤마를 좀 더 잘 표현한 점이 매력적이라 적극적으로 사용하고 있습니다.

oh-my-zsh에 많은 테마는 Hack 공식버전 을 사용하는 것 만으로도 무리없이 적용가능하지만, 좀 더 많은 기호를 지원하는 버전을 사용하기를 권장합니다.

powerline patched Hack font

폰트 네가지(Regular, Bold, Italic, Bold-Italic) 모두 다운받은 뒤 시스템에 설치하시면 사용을 위한 준비가 모두 되었습니다. Iterm2 > preferences > profiles > text 탭에서 폰트를 바꾸실 수 있는데 여기서 font와 NON-ASCII-font 모두 Hack으로 바꿔주시면 됩니다. 어차피 터미널에서 글을 읽기보다는 코딩을 더 많이 할테니 모두 바꿔줍니다.

oh-my-zsh, themes

휴… 드디어 oh-my-zsh과 테마를 설정할 시간입니다.

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

위 명령어로 oh-my-zsh를 설치해줍니다. 설치가 완료되면 텍스트로 oh-my-zsh라는 그림이 그려질 것입니다.

이제 쉘 환경파일인 zshrc에서 관련 작업을 진행합니다.

1
$ vi ~/.zshrc

크게 건드릴 부분은 없고, ZSH-THEME라는 부분이 있는데 여기서 "robbyrussell" 이라고 되어있는 부분을 바꾸면 테마가 바뀝니다. 기본으로 /.oh-my-zsh/themes에 여러 테마가 있으며 이 중 하나를 선택하실수도, 새로운 테마를 저장한 뒤, 이를 적용하실 수도 있습니다.

이번에는 robbyrussell을 agnoster로 바꿔보겠습니다. 만약 random으로 놓으시면 터미널을 실행할때 마다 다른 테마로 작업하실 수 있습니다…

위에서 색상과 폰트를 모두 바꿔주었기 때문에 큰 문제없이 달라진 터미널 환경을 확인하실 수 있습니다. 저는 agnoster에 잠시 거처를 두고 생활하다 최근 bullet-train에 정착했습니다. pyenv, nvm, golang 등 개발환경을 더욱 직관적으로 표현하고 시간까지 확인할 수 있는 부분이 매력적이었습니다. 딱 제가 쓰는 환경들을 지원한다는 점이 매력적이었고, 어느정도 커스터마이즈 할 수 있다는 점도 재미있습니다.

agnoster 테마가 좋은 점은 git의 브랜치와 상태를 바로 확인할 수 있다는 점입니다. solarized 스킴과 가장 잘 어울리는 테마이기도 합니다.

vim-powerline

제 포스트 중 vim-go-with-vundle 를 따라하셨다면, vim의 플러그인 매니저인 vundle이 설치되었을 것입니다. 이를 이용해 간단하게 vim-powerline을 설치합니다.

github에서 확인하고 설치할 수 있습니다.

공식 레포에서는 pathogen 혹은 vundle을 활용해 설치할 것을 권장하고 있습니다.

1
2
3
4
5
6
7
8
9
10
11
$ vim ~/.vimrc

(~/.vimrc)


Plugin `Lokaltog/vim-powerline`

language en_US.UTF-8
let g:Powerline_symbols = 'fancy'
set laststatus=2

을 추가합니다.

vim에서 :PluginInstall 명령으로 플러그인 설치를 명령하면 자동으로 설치를 진행합니다.

혹시 fancy라고 했을 때, 예제의 화면이 아니라 부호가 깨져나온다면 'unicode’로 설정하시면 정상적으로 작동하는 것을 볼 수 있습니다.