Für alle emacs Nutzer: eedit
Verfasst: Samstag 16. Juni 2007, 23:11
Ich verwende es schon länger, und gerade ist mir die Idee gekommen, es mal vorzustellen. Das Modul überprüft, ob ein laufender emacs-Server zu finden ist. Sofern dies nicht der Fall ist, startet das Modul eine neue Instanz des emacs, und wartet per inotify, bis der Server gestartet ist.
Dann verwendet es emacsclient, um die angegebenen Dateien in der laufenden Instanz zu öffnen.
Der Code ist hier zu finden: http://www.ubuntuusers.de/paste/11828/
Erforderlich ist dazu noch pyinotify, mindestens 0.7.0
Damit die Sache funktioniert, muss die elisp Funktion server-start beim Start von emacs ausgeführt werden. Außerdem scheint sich der Pfad des Sockets zwischen verschiedenen emacs-Versionen geändert zu haben. Ich verwende emacs 23 aus dem cvs, bei früheren Versionen sind evtl. Anpassungen am Code nötig.
Die Benutzung ist denkbar einfach: "python eedit.py filename" öffnet die Datei und wartet, bis man sie aus emacs mittels C-x # wieder schließt, fügt man die Option -n hinzu, wird die Datei einfach nur geöffnet und das Skript beendet sich.
Edit: Docstrings korrigiert und unnützen Thread import entfernt. Jetzt gibt pylint mir sogar ohne Tricks 10.0 Punkte
"Wow ! Now this deserves our uttermost respect."
Dann verwendet es emacsclient, um die angegebenen Dateien in der laufenden Instanz zu öffnen.
Der Code ist hier zu finden: http://www.ubuntuusers.de/paste/11828/
Erforderlich ist dazu noch pyinotify, mindestens 0.7.0
Damit die Sache funktioniert, muss die elisp Funktion server-start beim Start von emacs ausgeführt werden. Außerdem scheint sich der Pfad des Sockets zwischen verschiedenen emacs-Versionen geändert zu haben. Ich verwende emacs 23 aus dem cvs, bei früheren Versionen sind evtl. Anpassungen am Code nötig.
Die Benutzung ist denkbar einfach: "python eedit.py filename" öffnet die Datei und wartet, bis man sie aus emacs mittels C-x # wieder schließt, fügt man die Option -n hinzu, wird die Datei einfach nur geöffnet und das Skript beendet sich.
Edit: Docstrings korrigiert und unnützen Thread import entfernt. Jetzt gibt pylint mir sogar ohne Tricks 10.0 Punkte