アプリ版:「スタンプのみでお礼する」機能のリリースについて

zshのコマンド履歴がヒストリファイルに保存されません。


環境はWindows7のcygwinで、.zshrcに
--------------------
HISTFILE=$HOME/.zsh/.zsh_history
HISTSIZE=100000
SAVEHIST=100000
setopt extended_history
--------------------
と書いていますが、zsh(cygwin)を終了しても ~/.zsh/.zsh_history に履歴が保存されなくて困っています。
zsh上で "echo $HISTFILE"と入力しても、"/cygdrive/d/home/.zsh/.zsh_history" と出力されます。

何か考えられる理由、及び問題を発見する方法があれば、些細なことでもいいので教えてください。よろしくお願いします。

A 回答 (2件)

では、


~/.zsh ディレクトリのアクセス権は? rwxになってますか?
~/.zsh/.zsh_history のアクセス権は?
HISTFILE=~/.zsh/.zsh_history とした場合は?

HOMEを設定しない場合は?

この回答への補足

アクセス権は、"ls -al"コマンドで
drwxr-xr-x 1 User None 0 2010-04-14 23:02 .zsh
となっています。

~/.zsh/.zsh_history のアクセス権ですが、初回時に自動で作成された記憶があるので、別途作成はしていませんでした。適当なテキストエディタで空の ".zsh_history" を作成後、"ls -al"コマンドは
-rw-r--r-- 1 User None 0 2010-04-15 23:17 .zsh_history
です。このファイルを作成後zshを起動しても、追記は行われませんでした。

"HISTFILE=~/.zsh/.zsh_history" とした場合も結果は同様でした。
"HISTFILE=d:/home/.zsh/.zsh_history" とした場合も同じです。

次に環境変数の HOME を削除し、インストール時にデスクトップに出現するbatファイルを実行したところ(今までは、cygwin/bin/bash.exeのショートカットを、作業フォルダ"d:/home"で起動していました)、なぜか $HOME が "/cygdrive/c/usr/local/share/ispell"でした。
そこで、この ispell の中に .zshrc を作成し、そこに"$HISTFILE=~/.zsh_history" を記述して起動しましたが、やはりヒストリは保存されませんでした。テキストエディタで空の .zsh_history 作成後も同様です。

補足日時:2010/04/15 23:41
    • good
    • 0

まず、 $HOMEの内容を確認してください。


普通なら /home/ユーザー名 になってると思うのですが、どこかで変更されないでしょうか?(システムプロパティの環境変数とか)

この回答への補足

回答ありがとうございます。

説明不足で申し訳ありません。
環境変数で HOME を d:\home と設定しています。
zsh 上で "echo $HOME" を実行した結果は "/cygdrive/d/home"でした。

.zshrc上で "$HOME/.zsh/.zsh_history" と書いて、$HISTFILEが "/cygdrive/d/home/.zsh/.zsh_history" ですので、$HOMEの内容には問題ないかと思います。

補足日時:2010/04/15 22:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!