Wenn Sie einen Emacsclient-Launcher durch Kopieren einer .desktop-Datei (z. B. der Emacs-Datei) erstellen, verhält sich dieser nicht wie der Standard-Unity-Launcher. Es wird immer ein neues Fenster geöffnet. Es erkennt nicht, dass vorhandene Emacsclient-Fenster vorhanden sind, um zu ihnen zu springen. Wie kann ich dafür sorgen, dass es sich verhält?
Als Hintergrund ist dies ein sehr nützlicher Verwendungsmodus für Emacs, in dem Sie es als Daemon ausführen emacs --daemon
und dann ein Emacs-Fenster mit aufrufen emacsclient
. Eine gute Möglichkeit, dies für gewohnheitsmäßige Emacs-Benutzer zu tun, besteht darin, sie emacs --daemon
in Ihre Startup-Anwendungen zu integrieren.
emacsclient.desktop
aus irgendeinem Grund völlig . Ich habe dies schließlich umgangen, indem ichalacarte
stattdessen den Launcher in (der "Hauptmenü" -GUI) erstellt habe.Lösung von james.ferguson funktioniert gut. Was ich wollte, war die Verknüpfung von emacsclient mit einigen Dateitypen als "bevorzugte Anwendung". Dafür habe ich James 'Skript mit einer neuen "Exec" -Zeile gefunden
funktioniert besser für mich: es wird ein neuer Emac ausgeführt, wenn keiner ausgeführt wird, es wird kein neues Fenster geöffnet und es wird nicht dafür gesorgt, dass sich Emacs über Clients beschwert, die immer noch darauf warten, dass etwas passiert.
Jetzt kann ich auf Dateien klicken und sie werden in einem laufenden Emacs geöffnet, falls einer existiert, ansonsten startet Emacs.
quelle
Eine andere Möglichkeit ist die Verwendung eines Skripts :
Sie rufen also immer den gleichen Befehl auf.
quelle