프롬프트를 꾸미면 작업 맥락이 바로 보여
좋은 프롬프트는 현재 디렉터리, Git 브랜치, 활성화된 Python 환경, 직전 명령의 성공 여부를 따로 묻지 않아도 보여 줘. 꼭 필요한 정보 서너 가지만 골라도 하루 종일 pwd, git status, echo $?를 되풀이하는 수고를 크게 줄일 수 있어.
zsh 프롬프트를 직접 만들어 봐
setopt PROMPT_SUBST
autoload -U colors && colors
PROMPT='%F{cyan}%n%f@%m %~ %F{red}%(?..[%?] )%f%# '
RPROMPT='%F{8}%*%f'이 설정은 왼쪽에 사용자 이름과 호스트, 현재 디렉터리, 직전 명령의 종료 상태를 표시해. 종료 상태가 0이 아닐 때만 빨간 숫자가 나타나고, 오른쪽에는 현재 시각이 보여.
여러 셸에서 쓰려면 Starship이 편해
Starship은 zsh뿐 아니라 여러 셸에서 사용할 수 있고 Rust로 만들어져 빠른 편이야. 기본 설정도 바로 쓸 만해서 다음 두 줄로 설치하고 활성화할 수 있어.
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrcStarship은 Git 상태, 언어 버전, Kubernetes 맥락, AWS 프로필, 명령 실행 시간을 자동으로 감지해 표시해. 세부 모양은 ~/.config/starship.toml에서 바꿀 수 있고, 미리 만든 설정은 한 줄 명령으로 적용할 수 있어.
zsh만 쓴다면 Powerlevel10k도 강력해
Powerlevel10k의 첫 설정 마법사인 p10k configure는 원하는 모양을 단계별로 고르게 해 줘. instant prompt 기능은 zsh의 나머지 설정이 로드되기 전에 입력 가능한 프롬프트를 먼저 띄워서 시작이 느려지는 느낌을 줄여 줘. zsh 전용이라는 제약이 있지만 zsh를 주로 쓴다면 좋은 선택이야.
느린 정보는 나중에 갱신해
Starship과 Powerlevel10k는 먼저 그릴 수 있는 부분을 즉시 표시하고, Git이나 Python처럼 확인에 시간이 걸리는 정보는 비동기로 갱신해. 느린 조회가 키 입력을 막지 않으므로 정보가 많은 프롬프트도 빠르게 반응할 수 있어.
프롬프트는 매 명령 뒤에 실행되는 코드야
Git 상태와 네트워크 맥락을 지나치게 많이 조회하면 큰 저장소나 느린 마운트 지점에서 프롬프트 자체가 병목이 돼. 표시 항목마다 비용을 재고 조회 시간에 제한을 둬. 정보를 많이 보여 주는 것보다 정확한 정보를 빠르게 보여 주는 편이 더 가치 있어.
색과 기호만으로 상태를 구분하지 마
글꼴, 색각, 원격 터미널 설정에 따라 기호가 깨지거나 색을 구분하기 어려울 수 있어. 운영 환경과 로컬 환경처럼 중요한 맥락은 텍스트와 호스트 이름으로도 표시하고, 실제 작업을 시작하기 전에는 전용 명령으로 다시 확인해.