~/.zshrc の最小限の便利な設定|macOS

はじめに
zshrc
は、macOSなどのUnix系システムで使用されるZshシェルの設定ファイルです。zshrc
内で行われる設定は、Zshシェルを起動するたびに読み込まれ、シェルの動作をカスタマイズします。ここでは、Zshシェルの設定ファイルであるzshrc
の最小限の便利な設定例を紹介します。
zshrcの場所
zshrc
ファイルは、ユーザーのホームディレクトリにあります。ホームディレクトリは、~
という記号で表されます。zshrc
ファイルのフルパスは、~/.zshrc
です。
$ vi ~/.zshrc
編集後は、source ~/.zshrc
で設定を反映します。または、ターミナルを再起動します。
コマンドラインプロンプトの表示形式の設定
zshrc
ファイルに以下の行を追加することで、コマンドラインプロンプトの表示形式を変更できます。
export PS1="%~/ $ "
デフォルトでは
toshihiko@ToshihikonoMacBook-Pro Projects %
という冗長なプロンプト表示でしたが、 ~/Projects $
というシンプルな表示になります。
このZshの設定行 export PS1="%~/ $"
は、コマンドラインプロンプトの表示形式を設定しています。具体的には、以下のような意味があります:
export
: これは環境変数を設定し、その変数を子プロセスに引き継ぐためのコマンドです。PS1
: これは「Prompt Statement 1」の略で、主にコマンドラインインターフェースで使用されるプロンプトの外観を定義する環境変数です。"%~/ $ "
: この部分はプロンプトの実際の形式を指定しています。%~/
: これは現在の作業ディレクトリを表示しますが、ユーザーのホームディレクトリが含まれる場合は~
に置き換えられます。たとえば、ユーザーのホームディレクトリが/home/user
で、現在のディレクトリが/home/user/Documents
であれば、プロンプトには~/Documents
と表示されます。$
: これはプロンプトの末尾に表示される文字で、コマンド入力を待つ状態を示しています。
この設定により、ユーザーはターミナルでどのディレクトリにいるかをすぐに把握でき、コマンド入力が可能な状態であることが明確になります。
エイリアスの設定
alias
を記述することで、よく使うコマンドのショートカットが可能になります。
alias ll='ls -alFG'
alias rm='echo "This is not the command you are looking for."; false'
上の例では、ll
と rm
というエイリアスを設定しています。 ll
は
ls -alFG
というコマンドのショートカットで、Iceberg
のプロファイルと組み合わせることで次のように色付きでキレイに表示されます。

https://cocopon.github.io/iceberg.vim/
rm
は危険なので使わせたくないため無効化してます。ファイルの削除は
$ mv something ~/.Trash
で代用しています。
または、trash-cliを使う方法もあります。
{{delete-garbage-files-macos.html#header-5}}
zsh タブ補完の設定
ターミナル操作において、日本語のファイル名やディレクトリ名を入力するのはとても煩わしい作業でした。しかし、Zshのタブ補完機能を使えば、日タブキーを押すだけで補完候補が表示され、カーソル移動で選択させることができます。
次のコードをzshrc
ファイルに追加することで、タブ補完機能を有効にできます。
autoload -Uz compinit
compinit
autoload -Uz select-word-style
zstyle ':completion:*' menu select
これにより、コマンド名、オプション、ファイル名などを入力する際に、タブキーを押すことで自動的に補完候補が表示されるようになります。 Zshのコマンドライン補完はより対話的で柔軟になり、ユーザーの入力効率が大幅に向上します。
プロンプトに背景色をつけて目立たせる
zshならではの機能かどうかわからないが、下図のように、プロンプトに背景色をつけて目立たせることが可能。コマンド実行時に、結果の出力がどこからどこまでなのか迷わずに済むため、非常に便利な機能。

設定は次のとおり:
PROMPT='%K{blue}%F{black}%~%F{black} $ %k%F{blue}▶︎%f '
RPROMPT='%F{yellow}%*%f'
コマンド実行時の時間も右端に表示される。
関連記事
- diff(colordiff)|シェル
- dateコマンドで日時の表示 macOS/Linux/Unix
- fdupes で内容が重複しているファイルを見つける|シェル
- macOSで学ぶfind・grepの基本テクニック・実用例
- ls・tree・sort・uniq コマンドの使い方