Z Shellを使いこなして最強になる 〜設定編〜

2021-01-06
岡野 洋平
#
zsh
#
#

岡野です。

前回の移行編の続きです。

zshへの移行が完了しました。

ここから楽しくなるところではないでしょうか!

修正対象の設定ファイルと設定の反映

これから記載する各種設定を記述する設定ファイルと、記述した設定の反映方法です。

修正対象のファイルの開き方です。

$ vim ~/.zshrc

設定の反映方法です。

$ source ~/.zshrc

zshの各種設定

zsh-completionsで補完機能をより強力にする

以下のコマンドを実行して sh-completions をインストールします。

$ brew install zsh-completions

インストールが完了すると以下のメッセージが表示されます。

To activate these completions, add the following to your .zshrc:

  if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

    autoload -Uz compinit
    compinit
  fi

You may also need to force rebuild `zcompdump`:

  rm -f ~/.zcompdump; compinit

Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting
to load these completions, you may need to run this:

  chmod go-w '/usr/local/share'

言われるがままに zshrc に上記設定を追加します。

そして私の環境の場合、上記メッセージの通り、

Last login: Tue Oct 27 13:51:32 on ttys001
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]? y%

というメッセージが表示されたので、

記載の chmod go-w '/usr/local/share'  を実行することで表示されないようになりました。

文字コードを指定

.zshrcに以下を追記

export LANG=ja_JP.UTF-8

日本語ファイル名を表示可能にする

.zshrcに以下を追記

setopt print_eight_bit

gitのbranchをプロンプトに表示する。

$ mkdir ~/.zsh
$ cd ~/.zsh
$ curl -o git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
$ mv git-prompt.sh .git-prompt.sh

詳細な設定手順は git-prompt.sh 内のコメントにて記載があります。

.zshrcに以下を追記

setopt PROMPT_SUBST
source ~/.zsh/.git-prompt.sh

プロンプトをカスタマイズ

.zshrcに以下を追記

PROMPT='%F{cyan}%W%f %F{cyan}%*%f:%F{yellow}%m%f:%F{magenta}%n%f: %F{green}%~%f %F{red}$(__git_ps1 "%s" )%f '

この設定だと結構うるさい感じになります。

最初だからこれくらい、はりきらいないと!ということで良しとします。

%F{red}$(__git_ps1 "%s" )%f の部分はgitのブランチ名の表示部分です。

cd無しでもディレクトリ移動

.zshrcに以下を追記

setopt auto_cd

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

.zshrcに以下を追記

setopt auto_pushd

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

.zshrcに以下を追記

HISTFILE=~/.zsh_history

履歴の保存先ファイル指定

.zshrcに以下を追記

export HISTSIZE=1000

メモリに保存される履歴の件数

.zshrcに以下を追記

export HISTSIZE=1000

履歴ファイルに保存される履歴の件数

.zshrcに以下を追記

export SAVEHIST=10000

同時に起動しているzshの間でhistoryを共有する

.zshrcに以下を追記

setopt share_history

historyに保存するときに余分なスペースを削除する

.zshrcに以下を追記

setopt hist_reduce_blanks

同じコマンドをhistoryに残さない

.zshrcに以下を追記

setopt hist_ignore_all_dups

最後に

zshの設定完了です。

しかし、ここまでで初歩的な設定なのではないでしょうか?

まだまだ最強への道は遠い。。。

最強!

株式会社Grandreamでは、フルリモートであなたのスキルを活かし、活躍できるエンジニアを募集しております。 詳しくは採用ページをご確認いただき、お気軽にお問い合わせください。

株式会社グランドリームでは、AWSを駆使した開発からUI/UXデザインまで、Webアプリケーションに関するすべての要望に応えます。
まずは一度お気軽にご相談ください。

お問い合わせはこちら