macOS Catalina가 bash에서 zsh로 바뀔 때 알림이 있었으므로 이제 마이그레이션하여 환경을 조성했습니다.

내 Mac에서는 터미널 시작 시 상당히 전부터 다음과 같은 경고가 표시되었습니다.
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

다양한 Qiita 기사를 참고로 하면서, 자신용의 비망록으로서 bash 로부터 zsh 로 환승한 뒤에 여러 가지 터미널 환경을 커스텀 하려고 결의했으므로, 작업 내용을 남겨 두려고 생각했습니다.

개인적으로는 서버 오퍼레이션이 많기 때문에, bash에 갖추어 두고 싶은 기분이 매우 있습니다(Tab 보완의 감각이라든지 Completion의 감각)이, 어쩔 수 없기 때문에.

맞춤 결과





폰트도 보기 쉽고, 색도 부드럽고 개인적으로는 좋은 느낌입니다.

요약


  • 터미널 스타일은 iceberg
  • 글꼴은 "흰색 소스 (HackGen)"
  • 프롬프트에 Starship 채택
  • zsh 설정 관리에 oh-my-zsh 채택

  • 정보 수집



    우선 정보를 수집했습니다.

    너의 터미널은 어색하다.

    iTerm2와 starship에서 terminal과 shell을 세련했습니다!

    프롬프트를 초절 세련된 Starship 소개

    【문자폭 반각 3:전각 5도 추가】Ricty를 신 폰트라고 숭배하는 내가, 프리 라이센스의 프로그래밍 폰트 「백원」을 만든 이야기

    이것만 모이면, 적당히 편리한 터미널 + zsh 환경이 갖추어질 것이라고 하는 것으로 셋업 스타트입니다

    기기 스타일 변경



    너의 터미널은 어색하다.에서 얻은 정보로 iceberg라는 스타일이 있기 때문에 그쪽을 사용하기로했습니다.



    여기에서 파일을 다운로드하고 스타일을 적용했습니다. 절차는 인용 원본 기사에 설명되어 있습니다.

    starship 설치 전에 필요한 글꼴 설치



    starship 공식 사이트에는 "Powerline 글꼴이 터미널에 설치되어 활성화되어 있어야합니다"라는 설명이 있으므로 Fira Code 글꼴을 사용해 보았습니다. 그래서 Powerline 폰트에 대응하고 있는 RictyDiminished with FiraCode 라고 하는 것을 사용합니다

    ... 라고 하고 싶은 곳입니다만, RictyDiminished with FiraCode 를 starship 로 이용하려고 하면, 브랜치 기호의 크기가 의도한 것과 다르기 때문에, 「백원 (HackGen)」을 이용하기로 했습니다.

    【문자폭 반각 3:전각 5도 추가】Ricty를 신 폰트라고 숭배하는 내가, 프리 라이센스의 프로그래밍 폰트 「백원」을 만든 이야기

    이쪽도 터미널의 폰트의 설정으로부터, 「HackGen35Nerd Console Regular 14pt」를 선택해 설정을 했습니다

    starship 설치



    starship은 공식 사이트에서 볼 수 있듯이 "쉘에 대한 최소한의 매우 빠르고 무한히 사용자 정의 가능한 프롬프트"입니다. Cross-Shell Prompt라는 말도 있듯이, zsh뿐만 아니라 bash에서도 대응하고 있습니다.

    이쪽은 일본어 번역도 있으므로, 공식 사이트의 순서로 문제 없다고 생각합니다. brew도 있으므로 취향에.
    curl -fsSL https://starship.rs/install.sh | bash
    

    이것은 git로 관리하고 있는 디렉토리의 상태를 빨리 확인하기 위해 도입했습니다. 그 밖에도 확장이 늘면 좋네요.

    oh-my-zsh 설치



    oh-my-zsh는 zsh의 구성 관리 프레임 워크입니다.

    라고 하는 위치설정입니다만, 커뮤니티가 개발한 다양한 확장 기능의 혜택을 받을 수 있습니다.

    prezto 라고 고민했습니다만, 나는 자주docker , docker-compose 커멘드의 completion 의 공식 순서가 oh-my-zsh 의 순서이었기 때문에, prezto 는 포기했습니다.

    Command-line completion | Docker Documentation

    그리고, 이런 이야기도 있는 것 같습니다. (bash 때는 docker exec -it ... 로 보완되어 있었지만, zsh 에서는 docker exec -i -t ... 로 해야 한다고 합니다)

    "docker exec" doesn't do container name autocompletion if used with options · Issue #5568 · ohmyzsh/ohmyzsh

    .zshrc 사용자 정의


    ### ここから上は oh-my-zsh のデフォルトのままなので、カスタムした内容だけ記載してます。
    
    # tab による Auto Completion をしないように NO_AUTO_MENU を指定
    setopt NO_AUTO_MENU
    
    # oh-my-zsh から取ってきた適当な LSCOLORS を採用
    export LSCOLORS="exfxcxdxbxegedabagacad"
    
    eval "$(starship init zsh)"
    
    export PATH="/usr/local/sbin:$PATH"
    
    # Load rbenv
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    
    # Load NVM, if you are using it
    [[ -s $HOME/.nvm/nvm.sh ]] && source $HOME/.nvm/nvm.sh
    

    마지막으로



    사용해도 좋고, 개인적으로 zsh는 보완이 너무 친절한 절이 있었기 때문에 먹지 않고 싫었지만, 이것이라면 bash와 손색없는 느낌으로 생활할 수 있을 것 같습니다.

    zsh만의 편리한 기능도 꼭 활용해 가고 싶네요 ◝( ⁰▿⁰)◜

    좋은 웹페이지 즐겨찾기