【zsh】ターミナルに矢印を付ける方法を初心者向けに解説する【簡単】

こんにちは!のせっち@nosecchi01です。

僕はWordPressを中心としたマークアップエンジニアとして活動しておりますが、ターミナルを使わない日はありません。

以前bashを使ったカスタマイズ方法をご紹介しましたが、zshに切り替えたのでzsh向けの方法を紹介します。

黒い画面が得意じゃない方向けにも、わかりやすく解説していきます。

bashバージョンをお探しの方は下記の記事をどうぞ!

完成形の確認

下記のような状態を目指します!

  • 矢印を表示
  • ユーザー名・ホスト名を非表示
  • git branchを表示
  • コマンドの後一行開ける
  • cdなしでディレクトリ移動
  • シンタックスハイライト

それでは実際にやっていきましょう!

矢印を表示(下準備)

矢印を表示するために、Powerline-shellを使っていきます。

Powerline-shellの公式githubはこちら

https://github.com/b-ryan/powerline-shell

しかし、powerline-shellを入れるだけではダメで、専用のフォントが必要です。ないと矢印の部分が文字化けします。

ですので、まずフォントをインストールしていきます!

フォントのインストール

白源というフォントを使います。

下記からzipファイルをDLして、各フォントを端末にインストールします。

Rictyというフォントも候補に上がるのですが、色々試した結果、僕はHackGen35Nerdが一番しっくりきました。

初心者向けになるべくコマンドは使わない形で解説していますが、homebrewでもインストール可能です。
(zipでDLした方は下記の作業は不要です)

brew tap homebrew/cask-fonts
brew cask install font-hackgen
brew cask install font-hackgen-nerd

インストールしたら、忘れずにフォントを変更します。

ターミナルでフォント変更を行う

ターミナル → 環境設定 → プロファイル からフォントを変更します。
HackGenであれば、好きなものを選んでOKです。

僕はVisual Studio Codeを使っているのでそちらのターミナルも変更します。
(お使いのエディタを適宜設定してください)

Visual Studio Codeでフォントを変更する

設定(preferences)からターミナルのfont familyを探します。
上部の検索バーに"terminal font"くらいまで入力したら出てきます。

矢印を表示(Powerline-shellをインストール)

準備ができたのでPowerline-shellをインストールしていきます。

公式の手順通りいきましょう。

Powerline-shellの公式githubはこちら

https://github.com/b-ryan/powerline-shell
# 任意のディレクトリに移動後
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install

python setup.py installでエラーが出た方はpythonのバージョンが古い可能性があります。
こちらの記事を参考にpythonのバージョンを3.xに上げてみてください。

続いて.zshrcを編集します。

ない場合は作成します。

touch ~/.zshrc

設定を追加していきます。

vimで書いてもいいですし、.zshrcをエディタで開いて直接編集してもいいようです。

vimは下記のように操作します。

vi ~/.zshrc

続いて、iを押してINSERTモードに変更し、下記を追記します。

# powerline-shellの設定
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

追加したらescでINSERTモードを抜けて、:wqで確定させます。

ここまでできたら、設定を反映します。

source ~/.zshrc

これで矢印/gitブランチが出るようになります!

ユーザー名、ホスト名を表示しない

ユーザー名、ホスト名は邪魔なので表示しないようにします。

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

mkdir -p ~/.config/powerline-shell && \
powerline-shell --generate-config > ~/.config/powerline-shell/config.json

~/.config/powerline-shell/というディレクトリを作成し、その中にconfig.jsonを作りました。

エディタで開いて下記部分を削除します。

{
  "segments": [
    "virtual_env",
    "username", // 削除
    "hostname", // 削除
    "ssh",
    "cwd",
    "git",
    "hg",
    "jobs",
    "root"
  ],
}

jsonファイルでコメントアウトはNGなので実際の操作では削除するようにしてください。

コマンドの後1行あける

.zshrcを編集します。

# コマンドの実行ごとに改行
function powerline_precmd() {
  PS1="
$(powerline-shell --shell zsh $?)%"
}

zshの場合はコード上で改行すると改行になります。
インデントが気持ち悪いと思いますが、インデントもターミナルに反映されてしまうので詰めています。

忘れずに設定を反映します。

source ~/.zshrc

その他の設定(一気に紹介)

その他の細かな設定を一気に紹介します。

cdを省略してディレクトリ移動

## cdを省略してディレクトリ移動
setopt auto_cd

cd -で以前移動したディレクトリを表示

## cd -で以前移動したディレクトリを表示
setopt auto_pushd

コマンドのスペルをミスして実行した場合に候補を表示

## コマンドのスペルをミスして実行した場合に候補を表示
setopt correct

シンタックスハイライト

シンタックスハイライトを入れると、コマンドに適宜色付けをしてくれます。
テンションが上がるので入れましょう!

.zshというフォルダを作成して、そこにzsh-syntax-highlightingをcloneします。

mkdir ~/.zsh
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

今後も何か追加する場合は~/.zshに全部cloneするようにしておくと便利です。

あとは、.zshrcを編集するだけです。

## zsh-syntax-highlighting
if [ -f ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
  source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi

お疲れ様でした!

この記事を書いた人

のせっち

福岡県出身。早稲田大学卒。創業100年の鉄鋼商社でバンコク駐在最年少抜擢。毎日擦り切れるまで働かなくても幸せに生きている人々を見てフリーランスになりました。
- WordPressが得意!
- 初心者向けGulp教材は購入者100部以上!