구리구리구리

[Mac M1] 터미널 꾸미기 (iTerm2 + Oh My ZSH) 본문

기타

[Mac M1] 터미널 꾸미기 (iTerm2 + Oh My ZSH)

guriguriguri 2021. 12. 23. 16:50

맥 카탈리나 OS부터는 bash가 아닌 zsh가 기본 쉘이며 필자의 터미널에는 homebrew만 설치한 상황입니다.

 

ZSH란?

Z Shell이라고 불리는 본쉘의 확장팩(?) 같은 쉘로 Z Shell을 사용하면 훨씬 강력하게 사용할 수 있으며 Oh My ZSH는 Z Shell에 여러가지 플러그인이나 추가기능을 사용할 수 있도록 만들어진 플러그인

 

iTerm2 설치

링크를 통해 접속하여 iterm2를 설치합니다.

 

iTerm2 테마 설치 (옵션)

링크를 통래 접속하여 원하는 다양한 iTerm2 컬러 스키마를 다운받을 수 있습니다.

다운을 받은 후 iTerm2에서 cmd + , 를 눌러 환경설정을 띄운 후 Profile -> colors에서 우측 하단의 Color Preset이라는 dropbox 클릭 후, 맨 아래쪽의 imports를 하여 다운로드 받은 모든 스키마 파일을 import하여 원하는 테마로 변경합니다. 

 

zsh와 Oh-My-ZSH 설치

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

 

사용자명 안보이게 하기

vi ~/.zshrc

# i입력하여 맨 아래 부분에 하단의 코드를 추가한 후 esc + :wq를 입력하고 enter하여 나간다.
# DEFAULT_USER
DEFAULT_USER="$(whoami)"

#
source ~/.zshrc

 

agnoster 테마 설치

현재 디렉토리에서 Git의 상태를 알려주는 테마로 현재 마스터 브랜치인지 개발 브랜치인지 알려주는 기능들이 있습니다.

# zshrc 파일 수정
vi ~/.zshrc 또는 opne ~/.zshrc

# 설정파일 진입 후 5~15번째줄에 있는 ZSH_THEME=”robyrussell” 부분을 agnoster로 수정하기 
ZSH_THEME=”agnoster”

# 설정 파일에서 나간 후 zshrc 파일 적용
source ~/.zshrc

 

위와 같은 설정을 마치면 폰트가 깨지게 되는데 다른 폰트로 변경해야 합니다.

저는 D2 코딩 폰트를 사용했습니다.

 

D2 폰트로 변경

링크로 들어가 최신 버전 폰트를 다운 받은 후 맥북 환경 설정 -> 서체 관리자에서 다운 받은 폰트를 적용합니다.

그 후 iTerm2에서 cmd + , 로 환경설정에 들어가 Profile > Text에서 change Font를 눌러 D2Coding 폰트를 선택합니다.

 

줄바꾸기 적용

긴 스크립트 입력시 화면에서 벗어나는 경우가 많기에 New Line을 적용했습니다.

agnoster 테마를 적용한 것을 기준으로 편집창을 엽니다.

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

편집창에서 build_prompt를 찾아 꼭 prompt_end 위에 prompt_newline을 추가합니다.

build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline //이부분을 추가 꼭 순서 지켜서
  prompt_end
}

그다음 아래 코드를 추가합니다.

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=''
}

설정을 완료하면 아래와 같이 줄바꿈된 라인에서 명령어가 입력됩니다.

 

하이라이팅 기능 (옵션)

사용할 수 없는 명령어라면 초록색으로 하이라이팅 되지 않으며 잘못된 명령어를 쉽게 거를 수 있습니다.

brew install zsh-syntax-highlighting

# 플러그인 설치 후 zshrc 파일에 플러그인 추가
vi ~/.zshrc

plugins=(
  zsh-syntax-highlighting
)

만약 not found 에러가 발생한다면 상단에 추가했던 plugins안에 zsh-zyntax-highlighting을 지운 후 아래의 스크립트를 실행합니다.

이 스크립트는 다시 설치한다는 의미입니다.

$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

 

자동완성 기능 (옵션)

# oh my zsh를 이용한 설치
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# zshrc 파일 열어 플러그인 로드를 위한 구문 추가
vi ~/.zshrc

plugins=(
	zsh-autosuggestions
)

source ~/.zshrc

완성된 화면!!

사용자 이름 이모티콘 커스터마이징 (옵션)

vi ~/.zshrc

# 원하는 이모지 및 이름 설정
prompt_context() { 
  # Custom (Random emoji) 
  emojis=("🦊" "🐧")
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1)) 
  prompt_segment black default "{하고싶은이름} ${emojis[$RAND_EMOJI_N]} " 
}

# 설정 종료 후 저장
source ~/.zshrc

 

추가 디자인 (옵션)

iTerm2 의 Preference에서 설정을 변경합니다.

 

1. Title bar style

  • Appearance > Theme: Minial

 

2. Title bar 밑에 1px 라인제거

  • Appearance > Windows > Show line under title bar when the tab bar is not visible: 체크 안함

 

3. 폰트 크기 및 줄간격 변경

  • Profiles > Text: 폰트사이즈 14로 변경
  • Profiles > Text: n/n 줄간격 110으로 변경

 

4. Margin 수정

  • Appearance > Panes > Side margins: 12
  • Appearance > Panes > Top & bottom margins: 10

 

5. 탭 선 제거

  • Advanced > In minimal theme, how prominent should the tab outline be?: 0

 

6. Unicode 설정

  • Profiles > Text > Unicode normalization form: NFC