背景・目的
bashやzshにはgit-prompt.shが用意されており、これを活用することでプロンプトにそのリポジトリのブランチを表示できるそうです(bashユーザーでないのであまり調べていません)
私の環境ではtcshを使っているのですが、同様のことを実現したいと思っています。
すでに調べたこと
この記事を発見しました。
https://kohagi.hatenablog.com/entry/20090715/p1
当該記事では
tcsh
1alias gitbranch 'git branch --no-color |& sed -e "/^[^*]/d" -e "s/* \(.*\)/:\1/"' 2alias prompt 'set prompt="[%M:%c3:%h`gitbranch`]"' 3alias cd 'cd \!*; prompt' 4set prompt="[%M:%c3:%h`gitbranch`] "
とすることで表示できると書かれています。
実現したいこと
ブランチの部分の色を変えて表示したいです。具体的には、
hh:mm:ss username@hostname:pwd (branch)
と表示したく、特に(branch)の部分について、括弧を白で、branchを適当な別の色で表示したいです。
しかし、後述の記述では求める表示になりません。その理由と解決策を求めています。
現在試したこと
以下のように記述しました。
csh
1 alias gitbranch 'git branch --no-color |& sed -e "/^[^*]/d" -e "s/* \(.*\)/ %{\e[0;37m%}%{\e[1;33m%}\1%{\e[0;37m%}/"' 2 if ( $?tcsh ) then 3 alias prompt 'set prompt="%{\e[0;33m%}%P %{\e[1;33m%}%n@%m%{\e[0;37m%}:%{\e[4;33m%}%~`gitbranch`\n%{\e[0;35m%}> "' 4 set prompt = "%{\e[0;33m%}%P %{\e[1;33m%}%n@%m%{\e[0;37m%}:%{\e[4;33m%}%~(`gitbranch`)\n%{\e[0;35m%}> " 5 alias cd 'cd \!*; prompt' 6 endif
出力される結果
hh:mm:ss username@hostname:pwd e[0;37me[1;33m(branch)>
となってしまいます。ちなみにブランチ部分はpwdに設定した%{\e[4;33m%}で表示されています。また>前の改行が処理されなくなります。さらに、コマンドを入力した状態でカーソル位置を動かすとなぜか新たな行が生成し、カーソル位置がそちらに表示されるようになります。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。