서론

    많은 사람이 zsh의 매력을 느끼고 zsh, ohmyzsh를 사용하시는 경우가 많다.
    하지만 zsh를 처음 쓴다면 의외로 단조로운 쉘 때문에 당황할 지도 모른다.

    여기에서 쓰면 좋을 zsh 확장인 oh-my-zsh와 zsh-autosuggestion, zsh-syntax-highlighting 설치방법에 대해 이야기한다.

    본론

    우선 oh-my-zsh의 설치코드는 다음과 같다.

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

    보통 cURL은 우분투나 맥에 다 깔려있기 때문에 cURL을 사용하는 방식을 권장한다.

    우분투 환경에서 zsh가 깔려있지 않다면 다음 명령어를 사용하면 된다.

    sudo apt install zsh

    oh-my-zsh 기본설정 과정에 zsh를 기본 쉘로 설정하는 옵션도 있으니 참고 바란다.

    두번째로 두개의 확장을 설치해야 한다. 참고한 곳은 다음과 같다
    이 확장 플러그인은 여러 장소에 설명되어 있으나, 설명하는 장소마다 조금씩 다르게 설명하고 있다.
    필자는 실제로 설치하여 플러그인 2개만 설치하면 되는 것을 확인했다.

    git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

    다음과 같이 zsh-autosuggestions, zsh-syntax-highlighting 플러그인만 git clone 명령어를 이용해 받아주면 된다.

    세번째로 ~/.zshrc 파일을 조금 수정해줘야 한다.

    # Set name of the theme to load --- if set to "random", it will
    # load a random theme each time oh-my-zsh is loaded, in which case,
    # to know which specific one was loaded, run: echo $RANDOM_THEME
    # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
    ZSH_THEME="agnoster"

    필자는 agnoster 테마 혹은 powerlevel10k를 추천한다. 하지만 두 테마 모두 별도 폰트가 필요하다. 이것은 마지막 내용으로 설명하겠다.

    # Which plugins would you like to load?
    # Standard plugins can be found in $ZSH/plugins/
    # Custom plugins may be added to $ZSH_CUSTOM/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

    설치한 플러그인인 zsh-autosuggestions, zsh-syntax-highlighting 을 넣으면 된다.

    필자는 다음과 같은 플러그인들을 사용중이다. 별도 설치한 두 개의 플러그인을 제외하면 모두 oh-my-zsh에서 기본으로 제공되는 플러그인이다.

    plugins=(git docker git-flow git-lfs gpg-agent node npm brew zsh-autosuggestions zsh-syntax-highlighting)

    마지막으로 다음을 설정해준다.

    setopt HIST_EXPIRE_DUPS_FIRST
    setopt HIST_IGNORE_DUPS
    setopt HIST_IGNORE_ALL_DUPS
    setopt HIST_IGNORE_SPACE
    setopt HIST_FIND_NO_DUPS
    setopt HIST_SAVE_NO_DUPS

    이 setopt문의 역할은 commandline history의 중복을 방지해주는 옵션들이다. 같은 명령어를 두번 이상 사용해도 history에는 한번만 나오도록 설정해준다.

    마지막으로 폰트 설정이다.

    다음과 같이 Iterm2 설정에서 Profiles, Text 순으로 들어가면 Font 설정이 있다. 여기에서 Ligature 옵션이 있는 폰트들을 사용하면 된다.
    예를 들어 Naver의 D2coding 폰트나 powerlevel10k에서도 사용할 수 있는 MesloGS 를 사용할 수도 있다.

    우분투나 맥의 기본 터미널에서도 비슷한 옵션을 제공하고 있다. 잘 확인해보자!

    이외에도 ligatures를 지원하는 폰트를 자유자재로 사용할 수 있다. 아래의 Use ligatures 옵션은 반드시 켜야 한다.

    결론

    zsh를 사용하면서 oh-my-zsh나 다른 좋은 플러그인들을 활용하지 못해 개발이나 다른 작업이 효율적이지 못하거나, 예전에 사용한 명령어를 잊어버리는 경우가 자주 발생한다.

    가끔은 너무 많은 history가 쌓여 용량을 차지하거나 이전에 사용한 명령어를 찾기 곤란한 경우도 있다.

    그럴때 이 설정들로 어려움을 타파해보길 바란다.

     

    [powerlevel10k 설정 방법](https://molasses-0.tistory.com/10)도 설명하고 있으니 참고 바란다!

    '기타 기술스택' 카테고리의 다른 글

    oh-my-zsh powerlevel10k 설치하기  (0) 2024.05.13
    Posted by dalbodeule