본문 바로가기
C.W.K.
Stream
Lesson 06 of 10 · published

프롬프트 꾸미기

~10 min · prompt, starship, powerlevel10k

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

프롬프트를 꾸미면 작업 맥락이 바로 보여

좋은 프롬프트는 현재 디렉터리, 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)"' >> ~/.zshrc

Starship은 Git 상태, 언어 버전, Kubernetes 맥락, AWS 프로필, 명령 실행 시간을 자동으로 감지해 표시해. 세부 모양은 ~/.config/starship.toml에서 바꿀 수 있고, 미리 만든 설정은 한 줄 명령으로 적용할 수 있어.

zsh만 쓴다면 Powerlevel10k도 강력해

Powerlevel10k의 첫 설정 마법사인 p10k configure는 원하는 모양을 단계별로 고르게 해 줘. instant prompt 기능은 zsh의 나머지 설정이 로드되기 전에 입력 가능한 프롬프트를 먼저 띄워서 시작이 느려지는 느낌을 줄여 줘. zsh 전용이라는 제약이 있지만 zsh를 주로 쓴다면 좋은 선택이야.

느린 정보는 나중에 갱신해

Starship과 Powerlevel10k는 먼저 그릴 수 있는 부분을 즉시 표시하고, Git이나 Python처럼 확인에 시간이 걸리는 정보는 비동기로 갱신해. 느린 조회가 키 입력을 막지 않으므로 정보가 많은 프롬프트도 빠르게 반응할 수 있어.

프롬프트는 매 명령 뒤에 실행되는 코드야

Git 상태와 네트워크 맥락을 지나치게 많이 조회하면 큰 저장소나 느린 마운트 지점에서 프롬프트 자체가 병목이 돼. 표시 항목마다 비용을 재고 조회 시간에 제한을 둬. 정보를 많이 보여 주는 것보다 정확한 정보를 빠르게 보여 주는 편이 더 가치 있어.

색과 기호만으로 상태를 구분하지 마

글꼴, 색각, 원격 터미널 설정에 따라 기호가 깨지거나 색을 구분하기 어려울 수 있어. 운영 환경과 로컬 환경처럼 중요한 맥락은 텍스트와 호스트 이름으로도 표시하고, 실제 작업을 시작하기 전에는 전용 명령으로 다시 확인해.

Code

60초 안에 Starship으로·bash
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
exec zsh
# 기본 프리셋 시험
starship preset gruvbox-rainbow -o ~/.config/starship.toml

External links

Exercise

Starship을 설치하고 .zshrc에 공식 초기화 줄을 추가한 뒤 exec zsh로 다시 불러와. Git 저장소에서 브랜치 정보가 나타나는지 확인하고, 미리 만든 설정을 적용하기 전에는 기존 ~/.config/starship.toml을 백업해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.