Gitのブランチ名をzshのプロンプトに表示する

基本的にはここに書いてある通りにしたんだけど、このままだと動かなかったので、少し手を加えている。

まず、ブログに書かれているコードより、gistに書かれている内容の方が新しいので、そっちを使う。

しかし、re_match_pcre を指定すると、zsh/pcreモジュールが無いといわれ、エラーになる。

rprompt-git-current-branch:2: failed to load module `zsh/pcre': /usr/lib/zsh/4.3.17/zsh/pcre.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
rprompt-git-current-branch:2: -pcre-match not available for regex

そこで、re_match_pcre の指定を外し、zsh/regexモジュールを使う。
zsh/regexモジュールでは、POSIXの正規表現しか使えないので、正規表現を書き換える。12

あと、Gitが出力するメッセージが変わったみたいなので、それに合わせて正規表現のパターンを変更しておく。

というわけで、直したのがこちら。

■ 追記

スマートな解決法発見。

  1. (?m)が使えないので、trコマンドを使って改行を削除し、それに対してzsh/regexで正規表現をかける。
  2. grepコマンドを使う方法に変更。

コメントを残す