Ich muss einige Dateien bearbeiten, die sich auf einem Server befinden, den ich über ssh erreichen kann.
Ich würde es vorziehen, diese Dateien vim
auf meiner Workstation benutzerdefiniert zu bearbeiten (ich habe keine Rechte zum Ändern der vim
Einstellungen auf dem Remote-Server). Manchmal möchte ich eine Datei mit sublime text
oder einem anderen GUI-Editor bearbeiten .
Natürlich kann ich diese Dateien herunterladen, lokal bearbeiten und wieder auf den Server hochladen. Gibt es eine elegantere Lösung?
deb
und daher keine habenapt-get
. (In diesem Fallyum
oderzypper
möglicherweise vorhanden.) Sie erfordern auch root auf dem lokalen Computer, der möglicherweise nicht verfügbar ist. (Das soll nicht heißen, dass es eine schlechte Lösung ist, aber es kommt mit einer großen Voraussetzung.)osxfuse
und installierensshfs
. Diese können mit Homebrew (brew install sshfs
undbrew cask install osxfuse
/ oder aus Paketen von osxfuse.github.ioDas kannst du so machen
scp
:Beachten Sie die beiden Schrägstriche
//
zwischen Server und Pfad, die erforderlich sind, um den absoluten Pfad korrekt aufzulösen. (Der erste Schrägstrich ist syntaktisch, während der zweite Schrägstrich wie üblich das Stammverzeichnis des Remotebenutzers angibt. Um mit dem Ausgangsverzeichnis zu beginnen, müssen Sie dies tun[:port]/~/path/to/file.txt
.)[:port]
Ist optional.Dies wird vom vim- Standard-Plugin netrw.vim erledigt . Es werden verschiedene andere Protokolle unterstützt.
quelle
E382: Cannot write, 'buftype' option is set
:set buftype=""
in vim versuchen .~/.ssh/config
und löst vim Remote-Hosts mitvim scp://[host]/path
.:e scp://...
Abhängig davon, was Sie meinen, wenn Sie sagen, dass Sie nicht die Rechte zum Bearbeiten der Vim-Einstellungen haben, gibt es möglicherweise eine Möglichkeit, Vim auf dem Server so zu verwenden, wie Sie es möchten. Wenn Sie Ihren Benutzer nicht ändern können
.vimrc
(z. B. weil Sie sich als freigegebener Benutzer anmelden), aber dennoch Dateien erstellen können, erstellen Sie ihn als eine Datei mit dem Namen, sagen wir,Loom.vimrc
und rufen Sie dann Vim mit dem-u
Schalter auf:vim -u ~/Loom.vimrc file_to_edit
Sie können auch dann einen Alias verwenden:
alias vim='vim -u ~/Loom.vimrc'
Damit können Sie Vim wie gewohnt verwenden und Ihre benutzerdefinierte.vimrc
Datei wird trotzdem geladen . Dieser Alias bleibt nach dem Abmelden nicht bestehen, sodass Sie sich keine Sorgen machen müssen, dass jemand anderes versehentlich Ihren angepassten Vim verwendet.quelle
Je nachdem, wie viele Dateien und welche Art von Dateien Sie bearbeiten möchten, ist dies möglicherweise nicht genau das, was Sie hier tun möchten, aber ich denke, es ist erwähnenswert. Wenn Sie Dateien auf einem Remote-Server bearbeiten müssen, aber alles, was Sie haben, auf Ihrer eigenen Arbeitsstation verwenden möchten, sollten Sie in Betracht ziehen, eine Art Revisionskontrollsystem auf Ihren Computern zu verwenden. Auf diese Weise können Sie Ihre lokalen Kopien auf Ihrem eigenen Computer mit der Software Ihrer Wahl ändern, die Änderungen festschreiben und dann einfach die lokalen Kopien auf dem Zielcomputer aktualisieren. Sie können die Dateien nicht nur mit der Software bearbeiten, mit der Sie sich wohl fühlen, sondern auch die Änderungshistorie für jede Datei, was immer gut ist.
Hier ist eine Liste der Revisionskontrollsoftware für alle Fälle.
quelle
git
, es zu etwas drängen wiegithub
, und die Änderungen von Ziehengithub
auf dem lokalen Rechner, zu ändern dort zu machen?Um die Antwort von Mr. Potts zu erweitern: Sie können auch die obigen Schritte ausführen und dann so etwas in .bash_profile einfügen (oder was auch immer Ihre Shell verwendet):
Dabei ist Loom Ihre ursprüngliche Benutzer-ID, unter der Sie sich anmelden.
Wenn Sie sich als gemeinsamer Account anmelden (und nicht als einzelner Account, dann klagt sudo), ist Von Neuman möglicherweise barmherzig, weil Sie verloren sind.
Ich hätte dies in einen Kommentar eingefügt, aber ich konnte den Code überhaupt nicht formatieren.
quelle
Wenn Sie eine VIM-Sitzung haben, die bereits ausgeführt wird, verwenden Sie
:silent e scp://user@myserver[:port]//path/to/file.txt
Das
:silent
vordere unterdrückt diePress Enter to Continue
Nachrichtund
e scp://user@myserver[:port]//path/to/file.txt
ist derEx
Befehl mode zum Bearbeiten der Remnotendatei.Getestet unter
BitVise SSHD
Windows 10 und mit VIM unter Ubuntu 16.04quelle
Press Enter to Continue
das erstmalige Laden unterdrückt , aber nicht für alle nachfolgenden:w