it-swarm.com.de

So verwenden Sie Sublime over SSH

Ich versuche, Sublime Text 2 als Editor zu verwenden, wenn ich auf meinem Arbeitsserver eine SSH-Verbindung habe und stumpf bin. Ich habe diese http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (unter vielen anderen Beiträgen) gefunden, die wie es aussieht, könnte helfen, aber t genau befolgen, insbesondere mit welchen Werten ich die ferne Variable in Zeile 5 eingeben sollte. Ich setze "/ Users/Pfad/to/local/copy" in mein lokales Stammverzeichnis, aber ich weiß nicht, ob das richtig ist oder wenn es noch mehr zu tun gibt. Irgendwelche Gedanken? Ich bin auf OSX10.8

229
thumbtackthief

Es gibt drei Möglichkeiten:

Theoretisch können Sie X11 auch auf dem Remote-Server installieren und dort Sublime über die VNC- oder X11-Weiterleitung ausführen. Dies macht jedoch keinen Sinn.

153
Mikko Ohtamaa

Sie können rsub verwenden, das von TextMates rmate inspiriert ist. Aus der Beschreibung: 

Rsub ist eine Implementierung der 'rmate'-Funktion von TextMate 2 für Sublime Text 2, mit der Dateien auf einem Remote-Server mit SSH-Portweiterleitung tunneling bearbeitet werden können.

/ - Hier ist ein gutes Tutorial wie man es richtig einrichtet.

98
ubik

Ich bin unter Windows und habe 4 Methoden verwendet: SFTP, WinSCP, Unison und Sublime Text unter Linux mit X11-Weiterleitung über SSH an Windows (ja können Sie tun Sie dies ohne chaotische Konfigurationen und verwenden Sie ein kostenloses Tool).

Der vierte Weg ist der beste Weg, wenn Sie Software auf Ihrem Linux-Rechner installieren können.

Der vierte Weg:

MobaXterm

  1. Installieren Sie MobaXterm unter Windows
  2. SSH zu Ihrer Linux-Box von MobaXterm
  3. Installieren Sie in Ihrer Linux-Box Sublime Text 3. Hier ist wie wird es unter Ubuntu
  4. Starten Sie an der Eingabeaufforderung sublime mit subl
  5. Das ist es! Sie haben jetzt einen sublimen Text unter Linux, dessen Fenster jedoch auf Ihrem Windows-Desktop ausgeführt wird. Dies ist möglich, da MobaXterm die X11-Weiterleitung über SSH für Sie übernimmt, sodass Sie nichts Funkelndes tun müssen, um sie in Gang zu setzen. Es gibt zwar eine kleine Verzögerung, aber Ihre Dateien werden niemals synchron sein, da Sie sie direkt auf dem Linux-Rechner bearbeiten.

Hinweis: Beim Aufruf von subl, wenn sich eine bestimmte Bibliothek beschwert, stellen Sie sicher, dass Sie diese installieren, um den Sublimetext von mobaxterm erfolgreich aufzurufen.

Wenn Sie keine Software auf Ihrer Linux-Box installieren können, ist Unison das Beste. Warum?

  • Es ist kostenlos
  • Es ist schnell
  • Es ist zuverlässig und egal, welchen Editor Sie verwenden
  • Sie können benutzerdefinierte Ignorierlisten erstellen

SFTP

Setup: Installieren Sie das Paket " SFTP Sublime Text". Dieses Paket erfordert eine Lizenz.

  1. Einen neuen Ordner erstellen
  2. Öffnen Sie es als Sublime Text Project.
  3. Klicken Sie mit der rechten Maustaste in der Seitenleiste auf den Ordner und wählen Sie Map Remote.
  4. Bearbeiten Sie die Datei sftp-config.json
  5. Klicken Sie mit der rechten Maustaste auf den Ordner, und wählen Sie Download aus.
  6. Vor Ort arbeiten.

In der sftp-config habe ich normalerweise eingestellt:

"upload_on_save": true,
"sync_down_on_open": true,

Dies zusätzlich zu einem SSH-Terminal an der Maschine bietet mir eine ziemlich nahtlose Remote-Bearbeitung. 

WinSCP

  1. Installieren und starten Sie WinSCP
  2. Gehen Sie zu Voreinstellungen (Strg + Alt + P) und klicken Sie auf Übertragen und dann auf Hinzufügen. Benennen Sie die Voreinstellung.
  3. Stellen Sie den Übertragungsmodus auf binär (Sie möchten keine Zeilenumwandlungen)
  4. Dateiänderung auf "Keine Änderung" setzen
  5. Klicken Sie auf die Schaltfläche Bearbeiten neben Dateimaske und richten Sie das Ein- und Ausschließen von Dateien und Ordnern ein (nützlich, wenn Sie einen .git/.svn-Ordner haben oder Build-Produkte von der Synchronisierung ausschließen möchten).
  6. OK klicken
  7. Stellen Sie eine Verbindung zu Ihrem Remote-Server her und navigieren Sie zu dem gewünschten Ordner
  8. Wählen Sie einen leeren Ordner auf Ihrem lokalen Computer.
  9. Wählen Sie Ihre neu erstellte Vorgabe für die Übertragungseinstellungen aus.
  10. Zum Schluss drücken Sie Strg + U (Befehle> Remoteverzeichnis auf dem neuesten Stand halten) und stellen Sie sicher, dass "Beim Start synchronisieren" und "Unterverzeichnisse aktualisieren" aktiviert sind.

Von da an hält WinSCP Ihre Änderungen synchron.

Arbeiten Sie im lokalen Ordner mit SublimeText. Stellen Sie einfach sicher, dass Sublime Text so eingestellt ist, dass die Zeilenenden der gerade bearbeiteten Datei erraten werden.

Unison

Ich habe herausgefunden, dass die oben beschriebene WinSCP-Methode ein bisschen langsam ist, wenn der Quellbaum massiv ist (etwa einige hundert MB mit einer tiefen Hierarchie). Mit Unison können Sie eine wesentlich bessere Leistung erzielen. Der Nachteil ist, dass Unison nicht automatisch ist (Sie müssen es mit einem Tastendruck auslösen) und erfordert, dass eine Serverkomponente auf Ihrem Linux-Computer ausgeführt wird. Der Nachteil ist, dass die Übertragungen unglaublich schnell sind, dass sie sehr zuverlässig sind und das Ignorieren von Dateien, Ordnern und Erweiterungen unglaublich einfach ist. 

65
Carl

Nachfolgend die Antwort von @ ubik. Nachfolgend die drei einfachen (einmaligen) Schritte, um den Befehl 'subl' auf Ihrem Remote-Server zu aktivieren:

  1. [Local] Installieren Sie das Paket rsub in Sublime Text mit dem Sublime Package Manager
  2. [Local] Führen Sie den folgenden Bash-Befehl aus (dadurch wird ein SSH-Tunnel eingerichtet, der die geheime Soße von rsub ist):

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
    
  3. [Server] Führen Sie den folgenden Bash-Befehl auf Ihrem Remote-Server aus (dadurch wird der Shell-Befehl 'subl' installiert):

    Sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; Sudo chmod +x /usr/local/bin/subl
    

Und voila! Sie verwenden jetzt Sublime Text über SSH.

Sie können eine Beispieldatei in Sublime Text vom Server aus öffnen, beispielsweise mit subl ~/test.txt

32
user456584

Ich bin auf MaxOS und der bequemste Weg für mich ist die Verwendung von CyberDuck , das kostenlos ist (auch für Windows verfügbar). Sie können eine Verbindung zu Ihrem Remote-SSH-Dateisystem herstellen und Ihre Datei mit Ihrem lokalen Editor bearbeiten. CyberDuck lädt die Datei an einen temporären Ort in Ihrem lokalen Betriebssystem herunter und öffnet sie mit Ihrem Editor. Nachdem Sie die Datei gespeichert haben, lädt CyberDuck sie automatisch auf Ihr Remote-System hoch. Es scheint transparent, als würden Sie Ihre Remote-Datei mit Ihrem lokalen Editor bearbeiten.

10
bizi

Sie können etwas ausprobieren, an dem ich gearbeitet habe, " xeno ". Sie können damit Dateien/Ordner in Sublime Text (oder einem beliebigen lokalen Editor) über eine SSH-Verbindung öffnen und Änderungen automatisch auf dem Remote-Computer synchronisieren. Es sollte auf fast allen POSIX-Systemen funktionieren (ich verwende es selbst unter OS X, um eine Verbindung zu Linux-Maschinen herzustellen und Dateien in Sublime Text zu bearbeiten). Es ist kostenlos und Open Source. Ich würde mich über ein Feedback freuen.

Weitere Informationen: Es ist im Grunde ein in Python geschriebenes Git/SSH-Mashup, mit dem Sie Dateien und Ordner auf einem Remote-Computer in einem lokalen Editor bearbeiten können. Sie müssen keine Kernel-Module konfigurieren, Sie müssen keine dauerhafte Verbindung haben, sie ist alles automatisch und stört die vorhandene Quellcodeverwaltung nicht, da sie ein Git-Repository außerhalb des Arbeitsbereichs verwendet. Da es auf Git basiert, ist es extrem schnell und unterstützt das automatische Zusammenführen von Dateien, die sich an beiden Enden ändern können, im Gegensatz zu SSHFS/SFTP, das nur Dateien mit älteren Zeitstempeln blockiert.

8
havoc-io

Dies ist der einfachste Weg, um Dateien lokal zu bearbeiten, die sich auf einem Remote-Host befinden, auf dem SSH zuvor für Remote-IP eingerichtet wurde

# issue on local box

Sudo apt-get install sshfs   # on local Host install sshfs ( linux )

# on local box create secure mount of remote directory

export REMOTE_IP=107.170.58.249 # remote Host IP

sshfs [email protected]${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example

Erledigt !!! 

Auf dem lokalen Host fangen Sie einfach an, die Dateien zu bearbeiten. Wenn Sie das Verzeichnis lokal auflisten, wird möglicherweise nichts angezeigt, bis Sie in ein Unterverzeichnis wechseln oder eine bestimmte Datei auflisten ... ... beim Laden von Dateien. Dies hat keine Auswirkungen auf die Bearbeitung von Dateien

subl /your/local/dir/magnum_opus.go # local file edit using sublime text

so oben bearbeitet eigentlich die entfernte Datei um

/your/remote/dir/magnum_opus.go  # remote file on box $REMOTE_IP

Für OSX oder Windows siehe dieses Tut von der Art Folk auf Digital Ocean

5
Scott Stensland

Ich weiß, das ist schon lange alt, aber ich habe eine wirklich coole Methode, die es wert ist, geteilt zu werden.

Was wird in Conemu und WinSCP benötigt? Dies sind einfache Anweisungen

  1. Öffnen Sie WinSCP.exe und melden Sie sich an meinem gewünschten Remote-Server an
    hat festgestellt, dass es wichtig ist, sich vor dem Anhängen anzumelden ...).

  2. In den Voreinstellungen für WinSCP - zwei Einstellungen zu ändern. Wählen Sie die Explorer-Typschnittstelle und nicht Commander - damit Sie keine lokalen Dateien sehen. Es sei denn, Sie möchten (aber das scheint hier zu saugen). Richten Sie Sublime als Standardeditor ein.

  3. Klicken Sie bei geöffnetem ConEmu mit der rechten Maustaste auf die Registerkartenleiste und wählen Sie die Option Attach to... aus. Ein Dialogfeld mit Ihren laufenden Anwendungen wird geöffnet. Wählen Sie WinSCP und dann OK. ConEmu hat jetzt eine offene Registerkarte, in der WinSCP Ihre Remote-Dateien anzeigt.

  4. Klicken Sie mit der rechten Maustaste auf die Registerkarte WinSCP und wählen Sie New console.... Geben Sie im daraufhin geöffneten Dialogfeld den Pfad zur ausführbaren Sublime-Datei auf Ihrem System ein. Bevor Sie Start drücken, wählen Sie in der Box New console split das Optionsfeld to right aus und legen den Prozentsatz fest. Ich wähle normalerweise 75%, aber Sie können dies nach Ihren Wünschen anpassen und es kann später geändert werden.

    1. Jetzt sehen Sie Sublime im selben Fenster, das rechts von WinSCP ausgeführt wird. Wählen Sie in Sublime im Menü "Ansicht" die Option "Sidebar->Hide Sidebar" und "bam". Jetzt haben Sie Remote-Dateien auf dieselbe Weise wie lokal, wobei einige Vorbehalte natürlich die Bearbeitung von Remote-Dateien erfordern. WinSCP blinkt jedoch schnell.

Ich habe zwei Monitore - Chrome-Browser des linken Monitors, rechter Monitor zeigt Code-Editor an. In ConEmu erstelle ich eine weitere Registerkarte und ssh in der Site, an der ich gerade arbeite. So kann ich gulp oder grunt remote ausführen und Dateien auch über die Befehlszeile bearbeiten. Die Entwicklung beschleunigte sich ernsthaft.

Hier ist ein Screenshot:

Setup Screenshot

5
dgo

Eine andere Mac-Lösung, die osxfuse ähnlich ist, ist die Verwendung des Transmit FTP-Clients von Panic Software, mit dem Sie einen Remote-Ordner als lokale Festplatte einhängen können. Es unterstützt SFTP, was sehr sicher ist.

4
Gavster

Sie können sftp verwenden, um das Remote-Verzeichnis auf Ihrem Standortcomputer bereitzustellen, und öffnen Sie die Dateien einfach mit Sublime-Text wie gewohnt. 

Um ein Remote-Verzeichnis mit sftp einzuhängen, geben Sie im Linux-Dateimanager Folgendes ein: 

sftp://[email protected]_box.com:22/home/user/code_directory

Abhängig von Ihren Internetgeschwindigkeiten kann dies langsam erscheinen. Aber das hat für mich funktioniert. 

4
David Okwii

Ich habe an einem Projekt mit dem Namen GiySync gearbeitet. Es braucht noch etwas Arbeit, aber es ist Open Source und ich benutze es seit einigen Jahren jeden Tag. Ich arbeite auch an einer nativen OS X-Version, die ich GitSyncApp genannt habe.

Im Moment ist es nur OS X, aber es sollte leicht sein, Unterstützung für Linux und möglicherweise auch für Windows hinzuzufügen.

Es überwacht Dateisystemereignisse und verwendet git zum Synchronisieren eines Projektordners auf Ihrem lokalen Computer und einem Server.

Ich habe die anderen Lösungen wie osx Fuse, Expand Drive, Transmit, mehrere Lösungen, die rsync verwendet haben, ausprobiert. Bei kleinen Projekten funktionieren sie alle "OK", aber wenn Sie mit viel Code arbeiten, funktionierten sie nicht für mich.

Viele Dateisystemoptionen werden zur Verbesserung der Leistung zwischengespeichert. Das ist in Ordnung, bis dies nicht der Fall ist. Zum Beispiel, wenn Sie mit anderen Personen arbeiten und jemand anderes die Dateien auf dem Server ändert.

Ich bin auch auf Probleme gestoßen, wenn ich in einem flockigen oder langsamen Netzwerk war, wo ich mit leeren Dateien enden würde. Oder eine Datei, die nicht synchronisiert wurde, dann wurde das Zwischenspeichern merkwürdig. hoffentlich hast du kürzlich begangen. Mit git wird dieses Problem gelöst, da die Integrität jedes Commits überprüft wird.

Zwei Bonusfunktionen:

  1. Sie erhalten ein Commit für jede Sicherung. Es ist nicht sehr nützlich, aber wenn Sie jemals in der Zeit zurückkehren müssen, können Sie.
  2. Es funktioniert mit jedem Texteditor.
3
Jachin

Eine Lösung, die für mich gut funktioniert hat - lokal auf dem Mac bearbeiten und die Datei automatisch mit einem Remote-Computer synchronisieren

  1. Stellen Sie sicher, dass Sie sich auf dem Remote-Computer ohne Kennwort angemeldet haben. Wenn nicht, folgen Sie diesen Schritten http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/

  2. erstellen Sie in ~/Library/LaunchAgents/filesynchronizer.plist eine Datei mit folgendem Inhalt:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filesynchronizer</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-avz</string> <string>/Users/USERNAME/SyncDirectory</string> <string>[email protected]:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  3. In einem Terminalfenster laufen 

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. Das ist es. Alle Änderungen an Dateien in ~/SyncDirectory werden mit ~/SyncDirectory auf dem Remote-Computer synchronisiert. Lokale Änderungen überschreiben alle Remote-Änderungen.

Dadurch wird ein Launchd-Job erstellt, der SyncDirectory überwacht. Wenn etwas geändert wird, führt Rsync zur Synchronisierung des Verzeichnisses mit dem Remote-Computer aus.

0
Ran Locar

Verwende FileZilla

Dies gilt für Mac- und Windows-Benutzer (ich verwende auf Mac). Ich habe im Laufe der Jahre mehrere der aufgelisteten Antworten verwendet und festgestellt, dass FileZilla meinen Anforderungen entspricht, wenn ich Dateien auf einem Remote-Host bearbeite, auf den ich SSH-Zugriff habe. Es ist auch schnell einzurichten.

  • Ich konfiguriere eine neue Serververbindung
  • verbindung zum Server herstellen
  • klicken Sie mit der rechten Maustaste auf die Datei, die Sie bearbeiten möchten, und wählen Sie View/Edit.

Dadurch wird mein Standardeditor (Sublime) aufgerufen, der jedoch mit jedem installierten Editor funktioniert.

  • Sobald ich die Datei speichere, fordert Filezilla mich automatisch auf, zu fragen, ob ich diese Datei wieder auf den Server hochladen möchte. Ich klicke auf "Ja" und dann wird sie aktualisiert.
0
Ben Havilland

Abhängig von Ihren genauen Anforderungen können Sie die Verwendung von BitTorrent Sync in Betracht ziehen. Erstellen Sie einen freigegebenen Ordner auf Ihrem Heim-PC und Ihrem Arbeits-PC. Bearbeiten Sie die Dateien auf Ihrem Heim-PC (mit Sublime oder was auch immer Sie möchten) und sie werden beim Speichern automatisch synchronisiert. BitTorrent Sync ist nicht auf einen zentralen Server angewiesen, der die Dateien speichert (a la Dropbox und dergleichen). Daher sollten Sie theoretisch keine Probleme mit dem Speichern vertraulicher Informationen durch Dritte haben.

0
thedudeabides

lsyncd scheint eine nette Alternative zum sshfs-Ansatz zu sein. Wenn Sie "-Delay 0" verwenden, funktioniert es in Echtzeit.

0
JLarky