2016-04-13 3 views
3

Ich benutze jEdit als Texteditor, weil es plattformübergreifend ist, und hat alle Funktionen, die ich brauche (Java reguläre Ausdrücke, Tastenanschlag-Makros, usw.). Es ist jedoch ein Problem, einen neuen Computer einzurichten und Einstellungen zu synchronisieren (Tastaturbelegungen, Dateispeicheroptionen usw.).Wie man jEdit-Einstellungen zwischen mehreren Computern synchronisiert

Kann jemand einen guten Weg vorschlagen, dies zu tun? Im Idealfall sollte es im Hintergrund synchronisiert werden und vielleicht in einen Dropbox-Ordner geschrieben werden. Ich habe mir die jEdit Plugins angeschaut und es scheint nichts zu geben.

Danke!

+1

Ein Gedanke ist, dass Sie schließlich auf einer Reihe von Einstellungen festlegen werden. Du wirst deine ganze Karriere nicht mit Einstellungen herumspielen. Dann sind Ihre Einstellungen größtenteils statisch und Sie können sie einfach kopieren. Wie auch immer, eine Alternative könnte die Dropbox-Lösung sein. Wenn Sie auf Mac oder Linux sind, können Sie eine weiche Verbindung zu Ihrem Dropbox-Ziel wie 'ln -s ~/Dropbox/jedit_settings ~/.jedit' –

+0

True, aber die Einrichtung auf einem neuen Computer ist so ein Schmerz, dass Ich habe die meisten dieser Änderungen separat auf meinem Laptop und meinem PC gemacht, und ich möchte sicher sein, dass sie synchronisiert sind. Ich schätze, ich kann das manuell tun (besonders jetzt scheinen die Eigenschaftendateien in der neuesten Version _sortiert zu sein!), Aber ich fragte mich, ob es einen integrierteren Weg dafür gab. –

Antwort

0

Es gibt keine integrierte oder Plugin-Möglichkeit, die ich kenne, um jEdit-Einstellungen zu synchronisieren. Aber alles sollte in deinem Einstellungsverzeichnis gespeichert werden. ("sollte", weil einige Plugins Sachen anderswo speichern können, besonders wenn sie Einstellungen zusammen mit anderen Möglichkeiten verwenden, wie git oder svn, die Benutzeranmeldeinformationen in ~/.subversion/speichern.) Wo das Einstellungsverzeichnis lebt, hängt davon ab das Betriebssystem, mit dem Sie jEdit verwenden, wenn Sie den Schalter -settings nicht verwenden, um jEdit zu starten.

Um die Einstellungen zu synchronisieren, synchronisieren Sie einfach das Einstellungsverzeichnis über Google Drive, Box, Dropbox oder etwas anderes. Sie können sogar jEdit direkt diese Verzeichnisse mit dem -settings-Switch verwenden, z. G. wenn Sie auf einem Betriebssystem sind, das Symlinks wie Windows nicht richtig unterstützt.

Beachten Sie jedoch, dass schwerwiegende Probleme oder unerwartetes Verhalten auftreten können. Z.B. Sie werden auch Sachen wie zuletzt geöffnete Dateien, letzte Fenster- und Dialogpositionen, zuletzt geöffnete Dateien, ...
synchronisieren. Noch wichtiger ist, dass sich jEdit momentan nicht so gut verhält, wenn Sie zwei Instanzen im selben Einstellungsverzeichnis ausführen würde Fälle abdecken, in denen Sie den Einstellungsordner auf irgendeine Weise synchronisieren.

Ein Szenario, was passieren wird, wenn Sie zwei jEdit-Instanzen verwenden (keine Fenster, reale Fälle, wie mit -noserver geöffnet) auf demselben Computer auf dem gleichen Einstellungen Verzeichnis und wird sicher auch mit einem solchen synchronisiert Verzeichnis passieren:

  • Instanz A zu laufen beginnt, liest die Einstellungsdateien und speichert dessen Datum der letzten Änderung
  • Instanz A schreibt Konfigurationsdatei Z und speichert sein letztes Änderungsdatum
  • Instanz B zu laufen beginnt, liest die Einstellungsdateien und speichert ihre Datum der letzten Änderung
  • Instanz B schreibt Konfigurationsdatei Z und speichert ihr Datum der letzten Änderung
  • Instanz A möchte die Konfigurationsdatei Z schreiben, sieht aber, dass das Datum der letzten Änderung neuer ist als das, an das sie sich erinnerte. Es gibt eine Warnung an das Protokoll, aber nicht mehr und wird Datei Z nicht mehr speichern, bis es neu gestartet wird.

Also wenn Z e. G. ist die Eigenschaftendatei, alle Einstellungen, die danach in Instanz A vorgenommen werden, gehen verloren und werden nicht gespeichert. Und dies geschieht pro Datei, abhängig davon, welche Instanz zuerst eine bestimmte Datei schreibt, nachdem beide Instanzen gestartet wurden, so dass einige Dateien von Instanz A, manche von Instanz B gesperrt werden, was die Verwirrung weiter erhöhen könnte.

Also, wenn Sie in Ordnung mit Sachen synchronisieren wie zuletzt Dateien, zuletzt geöffnete Dateien und andere Sachen mit Pfaden darin und so weiter und so weiter und Sie stellen sicher, dass Sie nicht zwei jEdit Instanzen auf den gleichen Einstellungen verwenden Verzeichnis zur gleichen Zeit, könnte es in Ordnung sein, etwas wie Google Drive oder ähnliches zu verwenden.

1

Ich benutze das folgende Makro, um aufzuräumen und zip meine jEdit Einstellungen Verzeichnis zu meinem Google Drive Verzeichnis auf meinem Mac:

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'"); 

Dann kann ich den folgenden Alias ​​ausführen, um die Einstellungen auf anderen Maschinen zu entpacken:

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

Sieht wirklich nützlich aus. Ich habe darüber nachgedacht, wie man sowas in einer Skriptsprache außerhalb von jEdit machen kann, aber ein Makro scheint ein integrierterer Ansatz zu sein. Ich werde nicht dazu in der Lage sein, bis ich fertig bin, das neue Ubuntu auf meinem Laptop einzurichten, aber ich werde es versuchen. Vielen Dank! –

+0

Gern geschehen! :) Btw, ich löschte viele "temporäre" Einstellungsdateien, die mir nicht wichtig sind. Vielleicht möchten Sie einige von ihnen behalten, also überprüfen und modifizieren Sie das Makro, bevor Sie es verwenden. Weitere Informationen zum Einstellungsverzeichnis finden Sie unter http://www.jedit.org/users-guide/settings-directory.html. – AhLeung