[Mac] Terminal theme 꾸미기 (iTerm2, Oh-My-Zsh, zsh-syntax-highlighting, zsh-autosuggestions)

Seokhun Yoon·2022년 12월 17일
1

macOS도 그렇고 window도 그렇고 터미널 기본 디자인을 보면 너무 투박하다는 생각이 든다. 그리고 입력 창에 내 Root 경로가 표시되는데, 유저 이름을 길게 설정하면 보기가 좋지 않다. (나만 그런가🙄)

이제 터미널에도 갬성 몇 스푼을 넣어보자!

1. iTerm2 설치

iTerm은 macOS에서 터미널을 대체할 수 있는 터미널 에뮬레이터 입니다.

예전에는 기본 shell환경으로 bash를 제공해서 zsh를 사용하기 위해 iTerm을 썼다는데, 카탈리나 버전 이후부터는 zsh로 동일합니다. 그래서 기본 터미널을 사용해도 상관없지만, 커스터마이징을 하고 싶다면 iTerm2를 추천해요!

아래 두 방법 중에 원하는 방법으로 설치하면 됩니다.
(저는 homebrew로 앱 관리하는게 편해서 두 번째 방법을 썼습니다.)

1-1. 공식 홈페이지에서 다운받기

공식링크에 들어가서 직접 다운로드 받기

1-2. Homebrew로 설치하기

터미널 창을 열고 아래 스크립트 입력하면 설치가 진행된다.

brew install iterm2

설치가 완료되면 제대로 설치가 되었는지 아래 스크립트로 확인할 수 있어요.

brew list

잘 설치되었으면 실행을 해볼게요!

그런데 아직까진 기존 터미널과 뭐가 다른지 모르겠..🤔


2. Oh-My-Zsh 설치

여기서 부터 갬성이 들어갑니다!✨
Oh-My-Zsh는 zsh configuration을 관리하기 위한 프레임워크입니다.
이것을 이용하면 다양한 테마를 내 취향대로 골라서 적용할 수 있어요.🎨

[공식 문서]에 기재된 설치 스크립트를 터미널 혹은 iTerm에 입력하면 손쉽게 설치가 가능해요.

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

iTerm에서 이 스크립트를 실행하면 아래와 같은 화면이 나올거에요.
이제 경로도 제 맥북 이름이 제외되고 ~만 표시된 것도 확인할 수 있죠!

아, 그리고 만약에 zsh가 없다면 homebrew를 통해서 zsh를 받아주세요!

brew install zsh

3. Terminal 설정

여기서부터가 진짜 커스텀 시작!
저는 iTerm을 쓰고 있기 때문에 이것을 기준으로 진행할 거에요.
먼저 iTerm에서 Command + ,를 누르면 Preference 설정 창이 열려요.
여기서 다양한 설정을 바꿀거니까 기억해두세요!

3-1. Font (Fira-code)

Fira-code는 코딩에 최적화된 폰트입니다.
이 폰트는 숫자 0과 알파벳 O, 숫자 1과 알파벳 l 등 헷갈리는 기호나 글꼴을 구별하기 좋게 표현 해줍니다.
저는 자바스크립트를 주로 쓰는데, 화살표 함수 때문에 화살표 기호(=>)를 많이 쓰게돼요. 이 폰트를 사용하면 이 화살표도 이쁘게 표현을 해줘요!

폰트 설치

homebrew를 통해 설치가 가능합니다. 터미널 창에 아래 스크립트를 입력하세요.

brew tap homebrew/cask-fonts
brew install font-fira-code

폰트 적용하기

Preference > Profiles > Text 경로에 가서 Font는 FiraCode로 설정 합니다.
그리고 ligatures를 체크하셔야 이쁜 화살표를 사용할 수 있어요!

3-2. status bar

Preference > Profiles > Session 경로로 가서 status bar enabled를 체크합니다.

그 다음 바로 옆에 Configure Status Bar를 클릭하셔서 원하는 옵션을 추가하시면 됩니다.!

이렇게 선택하면 짜잔~ 상태바가 상단에 생겼습니다!

만약 상태바를 하단에 두고 싶다면 Preference > Appearance > General 에서 Status bar location을 Bottom으로 변경해주세요.
그리고 저는 좀 블록의 구분감을 없애고 싶어서 Theme을 Minimal로 변경했어요.

이제 좀 개발자 갬성이 생기지 않았나요? 하지만 아직 뭔가 부족해보여요.
컬러를 좀 추가해보죠!

3-3. Color Scheme (Snazzy)

iterm2colorschemes 링크에 들어가보면 여러가지 색상 조합이 있어요.
여기서 원하는 테마의 이름을 우클릭 > 다른 이름으로 링크 저장을 선택하여 저장합니다.

그 다음에는 Preference > Profiles > Colors에서 우측 하단 Color Presets...을 클릭하여 저장한 컬러 조합을 import
합니다.

import한 컬러 조합을 선택하면 아래처럼 적용된 화면을 확인할 수 있습니다!
제가 사용한 컬러 조합은 Snazzy 입니다.

3-4. Terminal window name

창 상단에 현재 내 컴퓨터의 이름이 나오는데, 이것이 노출되는게 싫다면 변경도 가능해요.
Preference > Profiles > Window 에서 Custom window title를 체크하고 원하는 이름을 입력 합니다.

3-5. zsh Theme (agnoster)

기본 테마도 깔끔하긴한데 좀 더 개발자스러운 느낌으로 바꿔봅시다!
iTerm에서 아래 스크립트를 입력하세요.

vi ~/.zshrc

그리고 ZSH_THEME = robbyrussell 찾아서 agnoster로 바꿔줍니다.

그런데 내 이름이 다시 나오네..?

사용자 이름을 숨기고 원하는 닉네임으로 바꿔봅시다!
다시 .zshrc를 열고 아래 스크립트를 추가해줍니다.

vi ~/.zshrc
prompt_context() {
  emojis=("🦊" "🐱" "🐶" "🐼" "🐯" "🦁")
  nickname="원하는 닉네임"
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
  prompt_segment black default "${nickname} ${emojis[$RAND_EMOJI_N]} "
}

이 상태도 좋지만, 현재 경로가 길어지면 명령어가 줄바꿈이 되어버려서 보기가 싫어요. 아예 명령어 시작점을 줄바꿈 해버립시다!

agnoster 테마를 선택 했다면, 아래 스크립트를 실행합니다.

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

그리고 build_prompt()를 찾아서 prompt_newline을 prompt_hg와 promt_end사이에 추가 해주세요.

# File: ~/.oh-my-zsh/themes/agnoster.zsh-theme
...

build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline // 줄바꿈하는 함수!
  prompt_end
}

...

그리고 코드 최하단으로 내려와서 prompt_newline 함수를 정의해줍시다.

# File: ~/.oh-my-zsh/themes/agnoster.zsh-theme
...

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

그러면 짠! 명령어 시작점이 줄바꿈이 되었다!

3-6. Plug-in

zsh-syntax-highlighting 설치

사용할 수 있는 명령어인지 확인할 수 있는 플러그인이에요.
명령어 실수를 확 줄여줘서 적극 추천합니다!

brew install zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

zsh-autosuggestions 설치

내가 입력할때 흐린 글씨로 무슨 명령어를 입력할지 추천해주는 플러그인이에요.

brew install zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

.zshrc 에 추가하기

.zshrc 파일을 열고 plugins를 찾아 설치한 zsh-syntax-highlighting zsh-autosuggestions를 추가 해줍니다.

vi ~/.zshrc
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)

짜잔~
이제 이렇게 이쁘게 그리고 편하게 코드를 작성할 수 있는 환경이 되었습니닷!

Reference

profile
블록체인 개발자를 꿈꾸다

0개의 댓글