OSX 10.8.5 で zsh 履歴が見つからない

OSX 10.8.5 で zsh 履歴が見つからない

OSX のターミナル アプリにログインすると、デフォルトのシェルは になります/bin/bash。 と入力するとecho $HISTFILEが表示され/Users/monkeybrain/.bash_historyhead $(echo $HISTFILE)ファイルに履歴エントリが含まれていることが示されます。

その後、zshシェルを切り替えるために と入力すると、奇妙なことがいくつか起こります。まず、プロンプトが変わっても (新しいシェルにいるように見えますが)、$SHELL環境変数は を指したままです/bin/bash$HISTFILE変数は現在空で、 のようなファイルは存在しません。また、またはを使用してコマンド ラインを移動すること~/.zsh_historyもできません。Ctrl-ACtrl-E

ここで何が起こっているのですか?

どうもありがとう、

メガバイト

答え1

  • 環境SHELL変数は通常シェルによって変更されません。通常は現在のユーザーのログインシェルへのフルパスが含まれます。ない現在実行中のシェル。ほとんどの場合、SHELLシェルが起動する前に設定する必要があります。zshの値を変更せずSHELLbashが設定されていない場合はログイン シェルに戻しますSHELL

  • デフォルトではHISTFILEは設定されていませんzsh。履歴を保存する場合は、そのために使用したいファイルに設定する必要があります。

    HISTFILE="${HOME}/.zsh_history"
    

    また、保存する行数をSAVEHIST指定するために正の整数値を設定する必要があり、デフォルトは(ありがとうzshHISTFILE0モンキーブレインヒントについては を参照してください)。また、HISTSIZEシェル セッションで利用できる履歴の行数を示す も発生させたい場合があります。デフォルトは のみです30。例:

    HISTSIZE=2000
    SAVEHIST=2000
    

    これは通常、構成ファイルで行われます~/.zshrc

  • zshEDITORは、環境変数と をチェックしてキーバインド設定を推測しようとしますVISUAL。どちらかに文字列 "vi" が含まれている場合、入力モードzshが使用されます。このモードでは、 +も+ もデフォルトでバインドされていません。入力モード ( のデフォルト)を使用する場合は、次のコマンドを実行するだけです。viinsCtrlACtrlEemacsbash

    bindkey -e
    

    これは、~/.zshrc

全体的に、zshデフォルト設定で実行しているようです。まだない場合は~/.zshrc、作成して必要な設定を追加するだけです。

関連情報