zsh로 프롬프트에 현재 분기 이름 표시
완성품은 이쪽
현재 디렉토리와 (git 아래의 경우) 현재 분기를 표시합니다.
이전 준비
글꼴 설치
Menlo for Powerline.ttf을 다운로드하여 설치합니다.
디렉토리와 브랜치 이름 뒤의 오른쪽 삼각형 "▶︎"을 사용하고 싶기 때문입니다. 떨어진 .ttf 파일을 두 번 클릭하면 설치 프로그램이 시작됩니다.
글꼴 전환
설치가 끝나면 터미널 환경설정(⌘,)의 프로파일 > 텍스트 > 글꼴을 설치한 "Menlo for Powerline"으로 변경합니다.
변경되면 터미널을 다시 시작합니다.
.zshrc에 추가
.zshrc에 다음을 추가합니다.
.zshrcautoload -Uz vcs_info
setopt prompt_subst
# vcs_info_msg_0_変数をどのように表示するかフォーマットの指定 %b: ブランチ名
zstyle ':vcs_info:git:*' formats '%b'
precmd () { vcs_info }
# プロンプトを見やすくする
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
가 깨져 있지만 Menlo for Powerline이라면 “▶︎”처럼 표시됩니다.
우선 완성시키고 싶은 사람은 여기서 끝. 이하 해설입니다.
2행까지
autoload -Uz vcs_info
setopt prompt_subst
autoload
에서 $FPATH에 있는 내장 함수를 로드할 수 있습니다.-U
는 읽을 때 사용자가 정의한 alias를 무시하고 읽습니다. -z
는 쉘을 명시 적으로 zsh로 읽습니다.
vcs_info는 버전 관리 시스템에서 정보를 가져오는 함수입니다. git 이외에 svn 등에서도 사용할 수 있습니다.autoload -Uz vcs_info
그냥 읽는 것만으로 실행하지 않습니다. 이번에는 나중의 행에서 프롬프트를 표시할 때마다 매번 실행하도록 설정하기 때문에 여기에서 실행할 필요가 없습니다.
setopt prompt_subst
하면 나중에 설정하는 PROMPT 변수 내에서 변수 전개하게 됩니다.
6행까지
zstyle ':vcs_info:git:*' formats '%b'
precmd () { vcs_info }
zstyle
에 git 정보가 들어있는 변수 vcs_info_msg_0_
의 형식을 설정합니다. %b
는 현재 브랜치를 나타냅니다.
그 외에는 어느 버전 관리 시스템을 사용하고 있는지를 나타내는 %s
등도 있습니다. 자세한 내용은 The Z Shell Manual
precmd () {}
는 프롬프트를 표시할 때마다 실행하는 함수입니다. 여기서 git에서 정보를 얻는 vcs_info
를 실행하여 프롬프트를 볼 때마다 변수 vcs_info_msg_0_
의 내용을 최신으로 다시 씁니다.
9행
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
PROMPT에 표시할 형식을 설정합니다.
${vcs_info_msg_0_}
에서, 먼저 형식을 지정한 vcs_info_msg_0_
에 들어 있는 git 의 정보를 전개합니다.
또한 배경색은 %K{色番号}
에서 시작점을 지정하고 %k
에서 종료점을 지정합니다.
문자색은 %F{色番号}
로 시작점을 지정하고 %f
로 종료점을 지정합니다.
도시하면
오른쪽 삼각「▶︎」의 부분의 색은 %F{色番号}
로 지정하기 때문에, 문자색 지정이 약간 섞여 있습니다.
또한 {}
안에서 사용할 수 있는 색 번호는 for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo
에서 확인할 수 있습니다.
해설은 이상입니다.
git하외 밖에서는 녹색의 배경이 나오지 않게 하고 싶다 (vcs_info_msg_0_에서 PROMPT를 조건 분기하면 아마 할 수 있다.)
마지막으로 코멘트를 끈적끈적 쓴 버전을 붙여 둡니다. (내 .zshrc 그대로)
.zshrc#gitのブランチ名を表示する
autoload -Uz vcs_info
# vcs_info_msg_0_変数をどのように表示するかフォーマットの指定
## デフォルトのフォーマット
### %s: どのバージョン管理システムを使っているか(git, svnなど)
### %b: ブランチ名
zstyle ':vcs_info:git:*' formats '%b'
# プロンプトを表示する直前に毎回実行する
precmd () { vcs_info }
# ターミナルを見やすくする
# PROMPT変数内で変数展開する
setopt prompt_subst
## 使える色の確認は for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo
## 背景色の変更 %K{色番号}で開始 %kで終了
## 文字色の変更 %F{色番号}で開始 %fで終了
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
참고 링크
.zshrc에 다음을 추가합니다.
.zshrc
autoload -Uz vcs_info
setopt prompt_subst
# vcs_info_msg_0_変数をどのように表示するかフォーマットの指定 %b: ブランチ名
zstyle ':vcs_info:git:*' formats '%b'
precmd () { vcs_info }
# プロンプトを見やすくする
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
가 깨져 있지만 Menlo for Powerline이라면 “▶︎”처럼 표시됩니다.
우선 완성시키고 싶은 사람은 여기서 끝. 이하 해설입니다.
2행까지
autoload -Uz vcs_info
setopt prompt_subst
autoload
에서 $FPATH에 있는 내장 함수를 로드할 수 있습니다.-U
는 읽을 때 사용자가 정의한 alias를 무시하고 읽습니다. -z
는 쉘을 명시 적으로 zsh로 읽습니다.vcs_info는 버전 관리 시스템에서 정보를 가져오는 함수입니다. git 이외에 svn 등에서도 사용할 수 있습니다.
autoload -Uz vcs_info
그냥 읽는 것만으로 실행하지 않습니다. 이번에는 나중의 행에서 프롬프트를 표시할 때마다 매번 실행하도록 설정하기 때문에 여기에서 실행할 필요가 없습니다.setopt prompt_subst
하면 나중에 설정하는 PROMPT 변수 내에서 변수 전개하게 됩니다.6행까지
zstyle ':vcs_info:git:*' formats '%b'
precmd () { vcs_info }
zstyle
에 git 정보가 들어있는 변수 vcs_info_msg_0_
의 형식을 설정합니다. %b
는 현재 브랜치를 나타냅니다.그 외에는 어느 버전 관리 시스템을 사용하고 있는지를 나타내는
%s
등도 있습니다. 자세한 내용은 The Z Shell Manualprecmd () {}
는 프롬프트를 표시할 때마다 실행하는 함수입니다. 여기서 git에서 정보를 얻는 vcs_info
를 실행하여 프롬프트를 볼 때마다 변수 vcs_info_msg_0_
의 내용을 최신으로 다시 씁니다.9행
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
PROMPT에 표시할 형식을 설정합니다.
${vcs_info_msg_0_}
에서, 먼저 형식을 지정한 vcs_info_msg_0_
에 들어 있는 git 의 정보를 전개합니다.또한 배경색은
%K{色番号}
에서 시작점을 지정하고 %k
에서 종료점을 지정합니다.문자색은
%F{色番号}
로 시작점을 지정하고 %f
로 종료점을 지정합니다.도시하면
오른쪽 삼각「▶︎」의 부분의 색은
%F{色番号}
로 지정하기 때문에, 문자색 지정이 약간 섞여 있습니다.또한
{}
안에서 사용할 수 있는 색 번호는 for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo
에서 확인할 수 있습니다.해설은 이상입니다.
git하외 밖에서는 녹색의 배경이 나오지 않게 하고 싶다 (vcs_info_msg_0_에서 PROMPT를 조건 분기하면 아마 할 수 있다.)
마지막으로 코멘트를 끈적끈적 쓴 버전을 붙여 둡니다. (내 .zshrc 그대로)
.zshrc
#gitのブランチ名を表示する
autoload -Uz vcs_info
# vcs_info_msg_0_変数をどのように表示するかフォーマットの指定
## デフォルトのフォーマット
### %s: どのバージョン管理システムを使っているか(git, svnなど)
### %b: ブランチ名
zstyle ':vcs_info:git:*' formats '%b'
# プロンプトを表示する直前に毎回実行する
precmd () { vcs_info }
# ターミナルを見やすくする
# PROMPT変数内で変数展開する
setopt prompt_subst
## 使える色の確認は for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo
## 背景色の変更 %K{色番号}で開始 %kで終了
## 文字色の変更 %F{色番号}で開始 %fで終了
export PROMPT='%K{250} %F{016}%C%k%K{118}%f%F{250}%f%F{016}%{${vcs_info_msg_0_}%f%k%F{118}%f $'
참고 링크
Reference
이 문제에 관하여(zsh로 프롬프트에 현재 분기 이름 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumatira/items/41562f1d9001927e9888텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)