2012-05-08 9 views
1

設定がありますマシン間で設定ファイルを共有しているとかなり満足していますが、私はしばしばzsh(Ctrl + R)で検索したいのですが、どのマシンでコマンドを入力したか覚えていません。理想的には、私はこれを使用して、私のマシンから以前のコマンドの標準的なリストを検索することができます。これらのマシンで同時にネットワーク接続を行わずに作業することがある場合、履歴ファイルをマージしてすべてを同期させる賢明な方法はありますか?複数のマシン間でzshの履歴をどのように共有しますか?

+0

あなたが(同時に)同時に2台のマシン上で動作している場合、彼らは、短いネットワークに接続されていません両方のマシンのシェルにコマンドを手動で再入力する方法については、良い解決策があるとは思えません。 – simont

+0

あなたの履歴ファイルをDropboxに置くのはどうですか? – Simon

+0

私はDropboxを使用しませんが、私は理解しているので、私はいくつかの(潜在的に)オフラインマシン上で同時にファイルを修正するので、これはうまくいくとは思わないでしょう。 Dropboxは私の履歴ファイルを誤って自動作成または名前変更するでしょうか? – Matthew

答えて

2

うーん、私は、あなたが次のことを行うことができます...あなたは何とか自分のアカウントを特定することができると思います:

  • 現在の履歴でのDropboxやSCMから他のアカウントの歴史をCATENATEためにあなたの.zshrcを変更これは、現在のコンピュータ
  • に立ち上げた最初のzshのであれば、私はあなたがHIST_SAVE_NO_DUPS
をSETOPTした場合のzshは重複を除去するであろうと思い-n(タイムスタンプでソート)
  • でエントリをソート

    その後、シェル出口をトラップし、既存の履歴をドロップボックス/ SCM /その他の共有場所にコピーする必要があります。 OH-MY-zshのために、私はこのプラグインを書いた

  • +0

    これは大部分はうまくいったが、悲しいことに複数行のコマンドはこのようにして破壊される( '' \ '' -continuationまたは 'do'-do''-blocksを持つ行) – xjcl

    0

    を使用してZshの履歴を同期関連するマシンは.zsh_historyで表示されます。各マシンは、NFS内のそのファイルパスに設定されたHISTFILE env varを必要とします。

    HISTFILE env varは必須です.ZSHはシンボリックリンクを受け入れず、symlinkターゲットの最終バージョンを使用するファイルに置き換えられます。

    セットアップはVMのOSXとParallels共有フォルダを使用しているため、上記の内容はテストしていません。したがって、NFSでは、ファイルの完全性(順序?)を考慮する必要があります。また、DropboxソリューションとVS。

    わからない、https://gist.github.com/elim/f77e3e9f06b6f8a5e788ようなものが...マージするバージョンを固定するために使用することができ

    関連する問題