Wenn ich in Windows zwischen Programmen wechseln möchte, verwende ich normalerweise die Windows-Taste plus eine Zifferntaste, um ein Programm über meine Taskleiste auszuführen. Die meisten Programme werden entweder ausgeführt oder, falls bereits eine Instanz vorhanden ist, in den Vordergrund gerückt und konzentriert. Emacs (gestartet mit runemacs.exe) erstellt jedoch einen neuen Eintrag in der Taskleiste, und wenn Sie die Verknüpfung erneut verwenden, wird nur eine neue Instanz erstellt. Soweit ich das beurteilen kann, kann ich nicht einmal mit Emacs-Befehlen zwischen den verschiedenen Frames wechseln (ich habe Cx 5 o ausprobiert).
Gibt es eine Möglichkeit, dies so zu gestalten, dass bei der späteren Verwendung der Windows-Hotkeys nur die vorhandene Instanz von Emacs verwendet wird. Wenn nicht, kann ich es zumindest so machen, dass ich problemlos zwischen den verschiedenen Frames navigieren kann? Ich habe dieses Snippet ausprobiert:
(require 'server)
(unless (server-running-p)
(start-server))
von der Antwort auf diese Frage , aber es machte keinen Unterschied.
quelle
emacsclientw.exe
runemacs.exe
einen alternativen Editor bereitstellen , können Sie auch dann aufrufenemacsclientw.exe
, wenn kein Bearbeitungsserver ausgeführt wird.Antworten:
Fügen Sie dies Ihrer Init-Datei hinzu, um sicherzustellen, dass beim Starten von Emacs ein Bearbeitungsserver erstellt wird
Stellen Sie nun Ihre Windows-Verknüpfung
emacsclientw.exe
wie folgt ein:Dies sollte einen vorhandenen Emacs-Frame (falls vorhanden) fokussieren oder anderweitig aufrufen
runemacs.exe
. (Vielen Dank an Vamsi für die Hilfe beim Einstellen der Befehlsparameter.)quelle
-c
Flagge das Problem?C:\path\to\emacsclientw.exe -n -e "(raise-frame)" -a "C:\path\to\runemacs.exe"
, um das Erstellen eines neuen Frames zu vermeiden und den vorherigen Frame anzuheben.-c
wird es auch eine Datei zu besuchen erwarten? (Wenn Sie nicht sagen können, dass ich gerade nicht auf einem Windows-Computer bin.)-c
solange es den-e
Ausdruck hat.Ich bin heute auf eine andere Antwort auf das Problem mit SuperUser gestoßen . Es scheint hackischer zu sein, aber das Ergebnis stimmt besser mit anderen Programmen unter Windows überein.
quelle
Properties
Sie in auch dasStart in
Verzeichnis festlegen und Emacs für eine bestimmte Datei oder ein bestimmtes Verzeichnis öffnen. (Ich starte Emacs mit Dired imStart in
Verzeichnis. IOW, ich übergebe das gleiche"
Verzeichnis ( -zitiert) wie das Argument anrunemacs
.)