macOS 터미널 꾸미기 - iterm2

대부분의 사람들이 macOS에서 제공하는 기본 터미널 앱을 사용하기 보다는 iterm2 사용하는 것 같다. 그래서 iterm2 다운받아 설치하도록 한다.

 

그리고 macOS 패키지 매니저인 HomeBrew도 설치해야 하며, 패키지 매니저를 설치하면 CLI환경에서 brew 명령어를 사용하여 앱 또는 패키지 설치가 가능하다.

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

HomeBrew를 설치하기 위해 Command Line for xcode가 함께 설치되며, 설치가 완료되면 아래의 스크립트를 실행하여 brew 실행 파일을 생성해야 한다.

% (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/gon/.zprofile
% eval "$(/opt/homebrew/bin/brew shellenv)"

macOS도 기본 쉘이 zsh을 사용하지만, oh my zsh 프레임워크를 설치하여 강력한 확장 기능을 사용할 수 있다. oh my zsh 및 CLI 하일라이팅 플러그인을 아래 스크립트로 설치하도록 한다.

% sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
% brew install zsh-syntax-highlighting

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

% vi ~/.zshrc

...

ZSH_THMEM="agnoster"

...

# 맨 마지막 라인에 추가
source /opt/homebrew/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
}

macOS는 vim이 기본 설치되어 있지만, 어떤 설정도 없이 디폴트 값으로 사용하기 때문에 간단히 콘솔에서 수정이 필요할 때 많이 쓰는 vi가 불편하여 색테마와 몇몇 옵션을 적용하도록 한다.

 

VIM Color 순위 사이트에서 VIM 색상 테마 파일을 다운받을 수 있으며, 여기서 가장 무난한 색상 테마인 jellybeans 테마를 받아서 설치하려면 ~/.vim/colors 디렉토리를 생성하여 여기로 복사해야 한다.

% mkdir ~/.vim/colors
% cp jellybeans ~/.vim/colors

# vimrc 생성 및 설정 내용
% vi ~/.vimrc

colorschema jellybeans
if has("syntax")
    syntax on
endif

set number
set statusline=3

set expandtab
set tabstop=2
set shiftwidth=2
set smartindent
set hlsearch

set enc=utf-8
set fenc=utf-8
set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,ucs-2le,latin1

au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\   exe "normal g`\"" |
\ endif
~

iterm2는 우분투의 tilix와 같이 화면분할 기능을 제공하여 기본 터미널 앱을 버리고 이것을 쓸 수 밖에 없겠금 만든 앱이다. 또한 상태바를 설정하여 아래와 같이 리소스 정보를 확인할 수 있으며, iterm2colorschema 사이트를 통하여 다양한 색상 테마를 적용할 수 있다.