zshには右プロンプトというものがある。
何に使うの?と思ってたけど、パスとかを表示させておくと便利(左に表示させるのと比べてカラムがずれないとか)なようなので試してみた。
ついでに、うっかりmasterをいじり回してしまう事故を防ぐために、gitのブランチも表示させてみる。


基本的にこちらの記事を参考、というかコピペ。
パスが長い時に省略するように最後だけ変えてみた。


autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2> /dev/null
function rprompt-git-current-branch {
local name st color gitdir action
if [[ “$PWD” =~ ‘/\.git(/.*)?$’ ]]; then
return
fi
name=`git branch 2> /dev/null | grep ‘^\*’ | cut -b 3-`
if [[ -z $name ]]; then
return
fi
gitdir=`git rev-parse –git-dir 2> /dev/null`
action=`VCS_INFO_git_getaction “$gitdir”` && action=”($action)”
st=`git status 2> /dev/null`
if [[ -n `echo “$st” | grep “^nothing to”` ]]; then
color=%F{green}
elif [[ -n `echo “$st” | grep “^nothing added”` ]]; then
color=%F{yellow}
elif [[ -n `echo “$st” | grep “^# Untracked”` ]]; then
color=%B%F{red}
else
color=%F{red}
fi
echo “$color$name$action%f%b ”
}
setopt prompt_subst
RPROMPT='[`rprompt-git-current-branch`%20<..<%~]’ [/bash] プロンプト描画するたびにgitが走るのでちょっと重い気もするけど、便利だからいいか。 ついでに左プロンプトに表示されていたパスをなくし、リモートの時はホスト名が出るようにしてみる。 [bash] case ${UID} in 0) PROMPT=”# ” PROMPT2=”%_# ” SPROMPT=”%r is correct? [n,y,a,e]: ” ;; *) PROMPT=”%% ” PROMPT2=”%_%% ” SPROMPT=”%r is correct? [n,y,a,e]: ” ;; esac [ -n “${REMOTEHOST}${SSH_CONNECTION}” ] && PROMPT=”%${HOST%%.*} ${PROMPT}” [/bash] もっと毛むくじゃらにもできるけど、まぁこのへんにしておこう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>