シェルのPowerlineをPowerline-goに置き換えてみた

こんにちは、hachi8833です。

Powerline使ってますか?私もシェルのプロンプトを便利かつかっこよく表示できるPowerlineを半年ぐらい前から使っています。特にGitのディレクトリでステータスを表示できるところが非常にありがたいです。

これまで使っていたLokaltog/vim-powerlineを開いてみるとdeprecation warningが表示されていることに気づき、そして他の変種も含めて本家Powerlineに収束したらしいことを今になって知りました。

しかし本家Powerlineに差し替えてみようとしたところ、なまじpyenvをインストールしていることもあってか、Python周りの設定がいろいろ面倒で途中でくじけました。それにpowerline-daemonを常駐させないとやはり重いらしく、常駐させるのは自分的に残念です。

そんなときに見つけたのが、Go言語で書かれたpowerline-goでした。


github.com/justjanne/powerline-goより

以前にも別のGo製Powerlineを見つけたことがあったのですが、機能が少なすぎてあきらめたことがありました。これはいけるかも。

インストール

releaseディレクトリからバイナリを取ってきてもよいのですが、Go環境があるので以下で即インストールしました。

go get -u github.com/justjanne/powerline-go

私の場合Powerlineで必要なフォントは既にインストール済みだったので省略します。必要な方はpowerline-fontsなどでお探しください。

後は.bashrcに以下を追加してsource .すれば完了です。

# .bashrc
function _update_ps1() {
    PS1="$(<パス>/powerline-go -error $?)"
}

if [ "$TERM" != "linux" ]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

あっさり動きました。

カスタマイズ

後は好みに合わせてカスタマイズです。表示をあまりギンギラギンにしたくなかったのと、なるべくPowerlineが幅を取らないようにしたかったのですが、既存のオプションだと少々力不足だったので、forkして雑にカスタマイズしました。完全に自分用なのでプルリクはしません。

  • セグメントの前後のスペースを削除
  • ディレクトリ表示の...を削除
  • プロンプト$の色を変更
  • デフォルト設定を自分好みに変えてオプションを与えなくて済むようにした

powerline-goのディレクトリでgo installを実行してインストールします。

ワンバイナリできびきび動いてくれて安心かつ満足です。AWSやDockerにも対応しているようなのでそのうちチェックしてみます。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833

コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。
これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。
かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。
実は最近Go言語が好き。
仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ