7 Stimmen

Ist es möglich, emacs mit einer entfernten Konfigurationsdatei zu starten?

Ich habe verschiedene arbeitsbezogene .emacs-Konfigurationsdateien auf Servern, auf denen ich für verschiedene Unternehmen arbeite. Es handelt sich dabei um Pakete, die ich aus verschiedenen Gründen nicht lokal auf meinem Rechner speichern möchte. Gibt es eine Möglichkeit, emacs mit einem dieser entfernten Verzeichnisse zu starten, als ob es lokal wäre?

Tramp ist großartig, um entfernte Dateien so zu bearbeiten, als wären sie lokal - jetzt würde ich gerne einen ganzen Emacs-Editor auf die gleiche Weise starten können.

7voto

spacebat Punkte 186

Aus reiner Neugier habe ich das gerade ausprobiert:

emacs -q --load "/ssh:USER@HOSTNAME:.emacs.d/init.el"

Das hat funktioniert, aber die entfernte init.el setzt Ladepfade wie "~/.emacs.d/vendor/", also muss eine init-Datei wirklich wissen, dass die Pfade und Dateinamen, die sie setzt, relativ zu einer gemeinsamen Basis sein müssen. Diese Basis könnte durch eine gemeinsame Variable gesetzt werden, also versuchen Sie es:

emacs -q --eval '(setq init-base "/ssh:USER@HOSTNAME:") (load (concat init-base ".emacs.d/init.el"))'

Dann fügen Sie in der Fernkonfiguration vor init-base auf einen beliebigen Pfad oder Dateinamen, der entfernt sein soll.

4voto

slu Punkte 1185

emacs mit einem dieser entfernten Verzeichnisse starten, als ob es lokal wäre

Wenn es sich bei den Servern um Unix/Linux-Server handelt und Sie ssh-Zugang haben, können Sie versuchen SSH-Dateisystem . Dann können Sie die Server in lokale Verzeichnisse mounten, z. B.:

> sshfs server1: ~/remote/server1 
> sshfs server2: ~/remote/server2

Dann könnten Sie emacs mit emacs --no-init-file --load ~/remote/servers2/.emacs und so weiter.

Pakete, die ich aus verschiedenen Gründen nicht lokal speichern möchte

Wenn auf den entfernten Rechnern Pakete in .emacs.d installiert sind, können Sie auf Ihrem lokalen Rechner Skripte wie das folgende erstellen:

;; .emacs.server1.el
(add-to-list 'load-path (expand-file-name "~/remote/server1/.emacs.d"))
(add-to-list 'load-path (expand-file-name "~/remote/server1/.emacs.d/package1"))
(load (expand-file-name "~/remote/server1/.emacs"))

Und dann starten Sie emacs wie folgt: emacs --no-init-file --load ~/.emacs.server1.el

Offensichtlich hängt dieses Skript von den oben genannten Halterungen ab.

2voto

Trey Jackson Punkte 72000

Sie finden die SO-Frage vielleicht Bearbeitung einer entfernten Datei mit emacs tramp aus einer ssh-Sitzung heraus beginnen fragt nach einer Lösung für ein verwandtes Problem. Vielleicht geben Ihnen die dortigen Antworten das, was Sie wollen, nämlich dass Sie sich an einen Emacs anschließen können, der auf dem entfernten Rechner läuft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X