技術

【Mac】Powerlineインストール・セットアップまとめ【zsh版】

Powerlineを導入しました。

Powerlineのインストールはちょっとクセがあるので、まとめておきます。

WindowsとMacでは、インストール方法に少し違いがあります。本記事はMacのiTerm2を対象としています。Macはbashでなくzshが対象です。bashの場合は、設定ファイルに書き込む内容が若干異なります。

前置き

Powerlineを使う理由

インストールが大変なものを、なぜなぜわざわざ使うのか?

その理由はただ一つ。ターミナルがかっこよくなるからです。モチベーションがあがる、ただそれだけです。

エンジニアだとターミナルを使用しない日はないといっても過言ではありません。そんな使用頻度の高いものは、とにかく自分のモチベーションがあがるようにカスタムするに限ります。

ターミナルはかっこよくしてなんぼです!

ちなみに導入前と導入後の違いは以下の通りです。

導入前

導入後

注意点

ターミナルログを出力するときは、Powerlineのプロンプト部分が文字化けします。

これは私は対処方法がわかりませんでした。

なのでターミナルを使う時は、作業ログも出力することが多いという方は、Powerlineを導入しないほうがいいと思います。

インストール方法

install

公式リポジトリをcloneして、installコマンドを実行します。

cd tmp
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install

powerline-shell コマンドを実行して、pathがあることを確認します。

% powerline-shell
\[\e[38;5;0m\]\[\e[48;5;35m\] base \[\e[48;5;240m\]\[\e[38;5;35m\]\[\e[38;5;250m\]\[\e[48;5;240m\] \u \[\e[48;5;238m\]\[\e[38;5;240m\]\[\e[38;5;250m\]\[\e[48;5;238m\] \h \[\e[48;5;31m\]\[\e[38;5;238m\]\[\e[38;5;15m\]\[\e[48;5;31m\] ~ \[\e[48;5;237m\]\[\e[38;5;31m\]\[\e[38;5;250m\]\[\e[48;5;237m\] tmp \[\e[48;5;237m\]\[\e[38;5;244m\]\[\e[38;5;254m\]\[\e[48;5;237m\] powerline-shell \[\e[48;5;148m\]\[\e[38;5;237m\]\[\e[38;5;0m\]\[\e[48;5;148m\] master \[\e[48;5;236m\]\[\e[38;5;148m\]\[\e[38;5;15m\]\[\e[48;5;236m\] $ \[\e[0m\]\[\e[38;5;236m\]\[\e[0m\] %

プロファイル

~/.zshrc に以下を追記

# Powerline
function powerline_precmd() {
PS1="$(powerline-shell --shell zsh $?)"
}

function install_powerline_precmd() {
for s in "${precmd_functions[@]}"; do
if [ "$s" = "powerline_precmd" ]; then
return
fi
done
precmd_functions+=(powerline_precmd)
}

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

設定反映

source ~/.zshrc

この時点では、フォントがないので文字化けのプロンプトになる。

フォント

Powerlineが有効なFontはいくつかあります。

Powerline公式では、Source Code Proを使用していますが、それより日本語が意識されてるRictyを導入することにします。

Homebrewからinstallできます。

brew tap sanemat/font
brew install ricty --with-powerline

cp -f /opt/homebrew/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/
fc-cache -vf

iTerm2上でフォントを有効にします。

Preference -> Profile -> Text -> Fontで、Ricty for Powerlineを選択

これで文字化けが消えます。

以上で、インストール作業は完了です。

セットアップ(カスタム)

Powerlineを導入すると、プロンプトが横に長くなりがちです。なので、以下のようにカスタムしていきます。

  • user名、host名は表示しない
  • カレントブランチ名は表示したい
  • コマンド入力は改行始まり

設定ファイルを作成します。

設定ファイル ~/.config/powerline-shell/config.json から、usernameとhostnameの行を削除

即反映されてプロンプトからユーザー名と消え、カレントブランチが表示されるようになります。

zshrcを改行始まりになるように修正します。function powerline_precmd()を以下の様に修正します。

function powerline_precmd() {
PS1="$(powerline-shell --shell zsh $?)
%% "
}

source ~/.zshrc で設定が反映され、改行始まりでコマンドが入力されます。

注意 Anacondaの仮想環境への横展開

Anacondaで仮想環境を切り替えると、以下のエラー文字が表示されます。

powerline_precmd:1: command not found: powerline-shell

その仮想環境上でpower-lineのインストールコマンドを叩けば、解消できます。

git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install

まとめ

以上、Mac、zshでのPowerline導入のまとめでした。

Powerlineのインストール方法は、OSやシェルによってインストール方法が異なるのですが、まとまった情報がなく、毎回導入の度にあちこち見て回っていました。

それを今後回避するために、自分の備忘録としてのまとめになります。
少しでも参考になれば幸いです。