zshの履歴機能の設定方法(MacOSXでの設定)

2010年2月14日

先日書いた iTermで日本語コマンドを正常に扱うための設定 をして以来、Phactoryのメインマシンである Macbook proのデフォルトシェルはすっかりzshになっていますが、単純にMacPortsで zshをインストールしただけでは、履歴機能が使えません。 


そこで、今回は履歴機能を使えるようにするための設定方法を解説します。

まずは、前回の記事に従って 頑張ってzshをインストールして頂きます。その後、~/.zshrcを作成してください。

履歴機能を有効にするためには以下の事柄を.zshrcに記述する必要があります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 履歴ファイルの保存先 
HISTFILE=$HOME/.zsh-history

# メモリ内の履歴の数 
HISTSIZE=30000

# 保存される履歴の数 
SAVEHIST=100000

# 履歴ファイルに時刻を記録する機能を有効化 
setopt extended_history

# 履歴をターミナル間で共有する 
setopt share_history



HISTFILEは必須の設定項目で、これがないとそもそも履歴ファイルが作成されず機能が有効化されません。


HISTSIZE, SAVEHISTはそれぞれ履歴の保存数に関する設定で、後者がファイルへの履歴の保存数、前者が それらのうち、直近の何個の履歴情報をメモリに格納しておくかという設定です。


つまり、SAVEHISTで 指定した保存数だけ履歴を検索できることになりますので、何件の履歴を保存したいのか?という観点で 数値を決定しましょう。


あと便利なのが、「setopt share_history」です。

この設定を有効化することによって、 ターミナルを複数立ち上げて、履歴を共有することができます。


つまり、ターミナルをA, Bの2枚立ち上げているとして、Aの方で「ssh username@hoge.com」というコマンドを 実行し、ターミナルBで何かしらのコマンドを実行するか、Enterキーを押すと、Aの履歴が同期し使用可能となります。 


これは個人の好みの問題もありますので、試してみたいという方だけ設定すればよいと思います。


あ、最後に、「source ~/.zshrc」を忘れないでくださいね。これを実行しないと設定が有効になりません。