macOSで ~/.zshrc の最小限の便利な設定
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のプロファイルと組み合わせることで次のように色付きでキレイに表示されます。
Iceberg - dark blue color scheme for Vim / Neovim
rm は危険なので使わせたくないため無効化してます。ファイルの削除は $ mv something ~/.Trash で代用しています。 または、trash-cliを使う方法もあります。zsh タブ補完の設定
ターミナル操作において、日本語のファイル名やディレクトリ名を入力するのはとても煩わしい作業でした。しかし、Zshのタブ補完機能を使えば、日タブキーを押すだけで補完候補が表示され、カーソル移動で選択させることができます。
次のコードをzshrcファイルに追加することで、タブ補完機能を有効にできます。
# zshの補完設定を有効化する
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'
コマンド実行時の時間も右端に表示される。