2016-04-13 6 views
3

jEditはテキストエディタとして使用されます。クロスプラットフォームであり、必要な機能(Javaの正規表現、キーストロークマクロなど)を備えています。しかし、新しいコンピュータにセットアップしたり、設定(キーボードバインディング、ファイル保存オプションなど)を同期させるのは苦労します。複数のコンピュータ間でjEditの設定を同期させる方法

誰でもこれを行う良い方法を提案できますか?理想的には、バックグラウンドで同期し、おそらくDropboxフォルダに書き込むべきです。私はjEditプラグインを見てきましたが、何も表示されません。

ありがとうございます!

+1

あなたは最終的に一連の設定で解決することを考えています。あなたは、あなたのキャリア全体を設定で猿のように過ごすつもりはありません。あなたの設定はほとんど静的で、コピーするだけで済みます。とにかく、代わりにドロップボックスソリューションがあります。あなたがmacやlinuxを使っているなら、 'ln -s〜/ Dropbox/jedit_settings〜/ .jedit'のようなドロップボックスの宛先へのソフトリンクを作ることができます –

+0

真ですが、新しいコンピュータに設定することは私はラップトップと仕事用のPCでこれらの変更のほとんどを別々にしましたが、それらが同期していることを確認したいと思います。私はそれを手動で行うことができると思います(特に最新のバージョンではプロパティファイルが_sorted_と表示されます)。しかし、もっと統合された方法があるのだろうかと思いました。 –

答えて

0

jeditの設定を同期させるための組み込み方法やプラグイン方法はありません。しかし、すべては設定ディレクトリに保存する必要があります。いくつかのプラグインは他の場所にあるものを保存しているかもしれないので、特にそうするべきです(特に、設定を〜/ .subversion /などに保存するgitやsvnなどの設定と一緒に使用する場合)。 -settingsスイッチを使用してjEditを起動しない場合は、jEditを使用しているOS)。

設定を同期させるには、Googleドライブ、ボックス、Dropboxなど何らかの方法で設定ディレクトリを同期するだけです。 jehditは、-settingsスイッチを使用してこれらのディレクトリを直接使用することもできます。 g。 Windowsのようなシンボリックリンクを適切にサポートしていないOSを使用している場合。

ただし、重大な問題や予期しない動作が発生する可能性があることに注意してください。 E.最近のファイル、最後のウィンドウとダイアログの位置、最後に開いたファイルなどのものを同期させます。
さらに重要なのは、同じ設定ディレクトリで2つのインスタンスを実行すると、jEditはあまりうまく動作しません。何らかの手段で設定フォルダを同期させるケースをカバーします。

同じ設定ディレクトリの同じコンピュータ上に2つのjEditインスタンス(ウィンドウではなく、実際のインスタンス、-noserverで開かれたものなど)を使用すると、このような同期ディレクトリでも起こる1つのシナリオ:

Aが実行を開始
  • インスタンスは、彼らの最終更新日時の設定ファイルを読み込み、保存する
  • インスタンスAは、設​​定ファイルを読み込み、そのを格納し、コンフィギュレーション・ファイルZを書き込み、その最終更新日時Bが実行を開始
  • インスタンスを保存します最終更新日
  • インスタンスBは、構成ファイルZを書き込み、その最終更新日を格納します。
  • インスタンスAは、構成ファイルZを書き込もうとしていますが、最終更新日が記憶された日付より新しいことがわかります。ログには警告が表示されますが、再起動するまでファイルZはそれ以上保存されません。

したがって、 g。プロパティファイルです。インスタンスAでこれ以降に行われた設定変更は、失われて保存されません。これはファイルごとに行われ、どちらのインスタンスが最初に特定のファイルを書き込むかに応じて発生します。したがって、インスタンスAによってロックされるファイルもあれば、インスタンスBによってロックされるファイルもあります。

最近のファイル、最後に開いたファイル、その他のものにパスが入っているなどの同期をしても問題ない場合は、同じ設定で2つのjEditインスタンスを使用しないようにしてください同時にGoogleドライブなどのものを使用することもできます。

1

は私がクリーンアップするには、以下のマクロを使用し、私のMac上で私のGoogleドライブのディレクトリに私のjEditの設定ディレクトリのZIPファイルを作成します。

void delete(String name) { 
    path = jEdit.getSettingsDirectory()+"/"+name; 
    VFS vfs = VFSManager.getVFSForPath(path); 
    session = vfs.createVFSSession(path,view); 
    vfs._delete(session, path, view); 
    if (session != null) vfs._endVFSSession(session,view); 
} 

runInSystemShell(view, "cd " + jEdit.getSettingsDirectory()); 

// clean up files 
delete("abbrevs"); // I use SuperAbbrevs 
delete("killring.xml"); 
delete("recent.xml"); 
delete("perspective.xml"); 
delete("activity.log"); 
delete("history"); 
delete("printspec"); 
delete("registers.xml"); 
delete("pluginMgr-Cached.xml.gz"); 
delete("macros" + File.separator + ".macroManagerCache"); // File.separator = System.getProperty("file.separator") 
delete("server"); 
delete("jedit_quicknote.txt"); // or qn.txt 
delete("mirrorList.xml");  // mirrorList can be updated by Options -> Plugin Manager 

// clean up directories 
delete("jars-cache"); 
delete("settings-backup"); 
delete("cache"); 
delete("DockableWindowManager"); 
delete("PluginManager.download"); 
delete("printspec"); 

runInSystemShell(view, "rm -f ~/Google\\ Drive/doc/jedit.zip; zip -r ~/Google\\ Drive/doc/jedit.zip * -x '*.DS_Store'"); 

その後、私は他のマシンの設定を解凍するには、以下のエイリアスを実行することができます。

alias je_sync="rm -rf ~/.jedit/*; unzip ~/Google\ Drive/doc/jedit.zip -d ~/.jedit/" 
+0

本当に便利ですね。私はjEdit以外のスクリプト言語でそのようなことをする方法を検討してきましたが、マクロはもっと統合された方法です。私は私のラップトップに新しいUbuntuを設定し終わるまで、それに到達することはできませんが、試してみましょう。ありがとう! –

+0

あなたはようこそ! :) Btw、私は重要ではない多くの "一時的な"設定ファイルを削除しました。それらのいくつかを保つことができますので、使用する前にマクロを見直して変更してください。設定ディレクトリの詳細については、http://www.jedit.org/users-guide/settings-directory.htmlを参照してください。 – AhLeung

関連する問題