[Linux/Mac] vim을 IDE처럼! zsh 설정부터 vim 플러그인 설정까지 총 정리

2020. 2. 7. 02:20Develop

서버에 zsh 세팅과 vim 세팅을 하는 김에 쓰는 정리글이다. 아래의 스크린샷이 뒤에서 설명할 모든 설정을 완료하였을 때 보게될 최종적인 모습이다. tmux를 통해서 상하로 화면 분할을 한 상태이고 아래는 shell, 위는 vim 편집기를 보이고 있다. 이렇게 해놓고 작업하면 여타 IDE를 사용하는 것과 비슷한 느낌으로 작업이 가능하다.

 

모든 설정이 끝난 후의 모습

 

전제조건

- 리눅스 / Mac

- iTerm2

- zsh

 

1. Oh-My-Zsh

(1) 설치 

다음 둘 중 하나의 script 명령을 통해서 oh-my-zsh 다운로드를 받는다.

 

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

혹은

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

 

(2) 테마 변경

git branch, virtualenv와 같은 현재 상태를 보여주는 agnoster 테마로 변경

 

$ vim ~/.zshrc

# 이후 ZSH_THEME=""robbyrussell 부분을 찾아서 다음과 같이 수정
ZSH_THEME="agnoster"

# 적용
$ source ~/.zshrc

 

여기까지하면 대부분의 경우 폰트가 깨지게 되는데, 다음 repo에서 powerline font를 다운 받고 설치를 한 이후에, iTerm2 Text 설정에서 다운 받은 폰트를 적용해주면 해결된다.

링크: https://github.com/powerline/fonts
 

powerline/fonts

Patched fonts for Powerline users. Contribute to powerline/fonts development by creating an account on GitHub.

github.com

 

# 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 에서 "Meslo LG S for Powerline" 을 선택하고, 폰트 크기는 Regular로 선택해준다.

 

Dracula 테마 설치

다른 IDE를 사용할 때도 종종 즐겨쓰던 Dracula 테마를 사용했다. 개인 취향에 따라 원하는 테마를 찾아서 적용하면 된다.

 

$ git clone https://github.com/dracula/iterm.git

 

clone 받은 폴더에 들어가서 'Dracula.itermcolors'라는 이름의 파일을 클릭하면 자동으로 iTerm2에 테마가 import 된다.

이후 iTerm2 > Preferences > Profiles > Colors > Color Presets 에서 Dracula를 선택해주면 바로 테마가 적용된다.

테마를 좀 더 꾸미려면 iTerm2 > Preferences > Appearance > Tabs > Theme 에서 Dark를 선택하고, iTerm2 > Preferences > Appearance > Windows 에서 'Hide Scrollbars'를 체크, 'Show line under title bar with the tab bar is not visible'을 uncheck하면 된다.

 

 

(3) Oh-My-Zsh 추가 설정

command line 맨 앞에 보이는 사용자 이름 삭제

~/.zshrc에 다음 코드를 추가하고 $ source ~/.zshrc 를 실행하여 적용한다.

 

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

 

zsh 멀티라인 적용

다음 코드를 ~/.oh-my-zsh/themes/agnoster.zsh-theme 파일에 추가한다.

 

prompt_newline() {
  if [[ -n $CURRENT_BG ]]; then
    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%(?.%F{$CURRENT_BG}.%F{red})❯%f"

  else
    echo -n "%{%k%}"
  fi

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

## Main prompt
build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline # 멀티라인 적용
  prompt_end
}

 

Syntax Highlighting

syntax highlighting을 적용하면 shell에서 커맨드를 입력할 때 명령의 종류에 따라 색이 바뀐다든지, 밑줄이 생긴다든지 하는 시각화 효과가 적용된다.

 

# Installation
$ brew install zsh-syntax-highlighting

# ~/.zshrc 에 다음 내용 추가
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

 

 

Oh-My-Zsh에는 path 자동완성과 같은 여러가지 유용한 플러그인들이 있지만, 경험상 플러그인을 사용하는 것이 항상 편하지만은 않아서 설치하지 않았다. 플러그인을 설치하고 싶다면 http://heetop.blogspot.com/2017/10/oh-my-zsh_12.html 를 참고하길 바란다.

 

 

2. Vim 플러그인

vim 플러그인을 하나하나 직접 설치하다가 너무 귀찮아서 그냥 깃헙에 올라온 좋은 repo의 힘을 빌리기로 하였다. 다음 링크의 git repo에 들어가서 clone을 받고 스크립트를 실행하기만 하면 여러가지 유용한 vim 플러그인과 테마들이 한 번에 설치/적용된다. 

 

$ git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
$ sh ~/.vim_runtime/install_awesome_vimrc.sh

 

.vimrc 설정을 확인하거나 수정하고 싶다면 ~/vim_runtime/vimrcs 폴더에 들어가서 basic.vim, extended.vim, filetypes.vim, plugins_config.vim 중에 알맞은 파일에 들어가서 내용을 수정하면 된다. 예를 들어 File System 구조를 보여주는 NERD Tree 플러그인이 vim을 실행할 때마다 자동으로 open되길 바란다면, ~/vim_runtime/vimrcs/plugins_config.vim 에서 NERD Tree 부분을 찾아서 다음 내용을 추가해준다.

 

autocmd VimEnter * NERDTree

 

각 플러그인들에 대한 구체적인 사용법은 https://github.com/amix/vimrc 를 참조하거나 해당 플러그인 사용법을 검색해보길 바란다.