저자는 Oh My Zsh의 대안으로 최소한의 Zsh 설정을 제안하며, 이를 통해 쉘 시작 시간을 획기적으로 단축할 수 있음을 강조합니다.
1. 최소 Zsh 설정
기본적인 Zsh 설정은 다음과 같은 핵심 요소로 구성됩니다:
-
HISTSIZE및SAVEHIST: 거대한 히스토리 크기(10억 개)를 설정하여 과거 명령어를 보존합니다. -
EXTENDED_HISTORY: 히스토리 항목에 타임스탬프를 추가하여 기록의 유용성을 높입니다. -
autocd:cd명령 없이 디렉토리 이동을 가능하게 하여 편의성을 증대합니다. -
compinit: Zsh의 강력한 자동 완성 시스템을 초기화하여 효율적인 명령어 입력을 지원합니다.
2. Starship을 이용한 프롬프트 사용자 정의
기존 Oh My Zsh의 플러그인 방식 대신, 빠르고 단일 바이너리로 제공되는 Starship을 프롬프트 도구로 추천합니다.
-
클라우드 서비스(
aws,gcloud,azure),nodejs,package모듈을 비활성화하여 시각적 노이즈를 줄입니다. -
성공 심볼(
success_symbol)과 명령어 실행 시간(cmd_duration) 표시를 커스터마이징하여 정보 전달력을 높입니다. -
.zshrc파일에eval "$(starship init zsh)"한 줄을 추가하여 쉽게 활성화할 수 있습니다.
3. fzf를 활용한 히스토리 검색
zsh-autosuggestions 플러그인의 방해 요소를 지적하며, Ctrl+R에 바인딩된 fzf를 통한 대화형 퍼지 히스토리 검색을 선호합니다. 이는 필요할 때만 검색 기능을 활성화하여 집중도를 높입니다.
4. 성능 개선
이러한 변경을 통해 쉘 시작 시간이 기존 0.38초에서 0.07초로 크게 단축됨을 보여줍니다. 이는 매일 수많은 터미널 탭을 사용하는 사용자에게 상당한 생산성 향상을 의미합니다.
5. 기타 유용한 팁
-
Vim 사용자에게는 Zsh의 Vim 모드(
set -o vi) 활성화를 권장하여 명령어 편집 속도를 향상시킬 수 있습니다. -
저자는 tmux와 터미널 기반 에디터(helix)를 활용하며, lazygit, yazi 파일 관리자 팝업 및 임시 분할 화면을 자주 사용하여 수많은 쉘 세션을 여는 워크플로우를 설명합니다.