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やシェルによってインストール方法が異なるのですが、まとまった情報がなく、毎回導入の度にあちこち見て回っていました。
それを今後回避するために、自分の備忘録としてのまとめになります。
少しでも参考になれば幸いです。
