window에서 Git Bash에 oh my zsh 사용하기

varcode·2021년 11월 2일
4

개발환경

목록 보기
2/5
post-thumbnail

Git Bash 설치 후 Windows Terminal 설정

git bash를 설치하시고 windows terminal에서 json 설정 여시고 아래와 같이 추가해주세요.

"list":
  [
    {
      "guid": "{124fc1da-dadc-4276-9c4e-f0524ba57a49}",
      "name": "Git Bash",
      "commandline": "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l",
      "icon": "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico",
      "startingDirectory": "%USERPROFILE%",
      "cursorShape": "filledBox",
      "hidden": false
    }
 ]

추가 됬다면 시작탭에 기본 프로필을 Git Bash로 설정해주세요.

Git Bash에 zsh 설치

마지막 버전 zsh package 설치 해주세요.
ex) zsh-5.8-5-x86_64.pkg.tar.zst의 압축을 C:\Program Files\Git에 풀어줍니다.
반디집 21년 2월이후 최신버전만 zst파일 압축 해제가 가능합니다.

zsh 설정 및 oh-my-zsh 설치

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

매번 git bash를 실행하고 zsh입력이 불편하다면

# 실행
vi ~/.bashrc

# 편집 후 저장
if [ -t 1 ]; then
exec zsh
fi

ganoster 테마 및 사용자 이름만 표시

$ cd
$ vi ~/.zshrc
# i를 눌러서 편집모드

ZSH_THEME="agnoster"

# 맨 마지막 줄에 입력합니다

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}
# 편집 끝나면 ESC 클릭 후 :wq를 입력하시고 Enter로 저장 후 빠져나옵니다.

multiline (prompt newline & cursor)

$ vi ~/.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_aws
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline
  prompt_end
}

zsh-syntax-highlighting 플러그인 적용

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

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

$ source ~/.zshrc

zsh-autosuggestions 플러그인은 동작이 정상적으로 안되어서 저는 적용 안하였습니다...ㅠ

profile
백엔드와 Rust가 취미인 프론트엔드 개발자

0개의 댓글