GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vim-Tipps – Bearbeiten Sie Remote-Dateien mit Vim unter Linux

Wim ist einer der besten, hochgradig konfigurierbaren Texteditoren, der mit vielen einzigartigen Funktionen ausgestattet ist, die Sie in anderen Texteditoren nicht finden können. Heute werden wir eine der nützlichen Funktionen besprechen - Bearbeiten der Dateien des Remote-Systems vom lokalen System aus . Das heißt – wir können eine Datei bearbeiten, die in einem Remote-Linux-System gespeichert ist, ohne sich tatsächlich über SSH oder andere Methoden anmelden zu müssen. Bevor ich diesen Trick kannte, habe ich normalerweise eine SSH-Verbindung zum Remote-System hergestellt und dann die Dateien bearbeitet. Es gibt jedoch auch eine Möglichkeit, entfernte Dateien mit Vim von Ihrem lokalen System aus zu bearbeiten. Ab Version Vim 7.x das netrw.vim-Plugin wird als Standard-Plugin installiert. Mit diesem Plugin können Sie Dateien über ftp, rcp, scp oder http bearbeiten.

Was ist das Netrw-Plugin?

Für diejenigen, die sich fragen, die Netrw (Netzwerkorientiertes Lesen, Schreiben und Durchsuchen) Plugin unterstützt lokales und entferntes Bearbeiten, Lesen und Schreiben von Dateien über Netzwerke hinweg. Es unterstützt auch das Durchsuchen von lokalen und entfernten Verzeichnissen. Geben Sie für weitere Details :help netrw ein innerhalb Ihrer vim-Sitzung. Lassen Sie uns weitermachen und sehen, wie Sie Dateien, die in einem entfernten Linux-System gespeichert sind, von unserem lokalen System aus mit Vim bearbeiten.

Remote-Dateien mit Vim unter Linux bearbeiten

Das Bearbeiten einer entfernten Datei mit Vim ist sehr einfach:

vim scp://[email protected]//path_to_file

Beispiel:

Ich habe eine Textdatei namens info.txt in meinem entfernten System mit der folgenden Zeile.

Welcome to OSTechNix

Jetzt werde ich diese Datei bearbeiten, einige Änderungen daran vornehmen und dann die Datei speichern und schließen. Alles von meinem lokalen System!

Dazu führe ich einfach den folgenden Befehl aus:

$ vim scp://[email protected]/info.txt

Hier ist die visuelle Demo der obigen Aufgabe:

Dabei sollten Sie auf die folgenden drei Dinge achten.

1. [E-Mail-geschützt] (z. B. [email protected]) – Hier sk ist der Benutzername des Remote-Systems. 192.168.225.22 ist die IP-Adresse des Remote-Systems.

2. Einfacher Schrägstrich (/) - Wenn Sie eine Datei bearbeiten möchten, die in $HOME gespeichert ist Verzeichnis eines Remote-Systems, müssen Sie einen nachgestellten Schrägstrich verwenden, um die IP-Adresse oder den Hostnamen des Remote-Systems vom Dateipfad zu trennen. Im obigen Fall habe ich die info.txt-Datei im $HOME-Verzeichnis gespeichert, also habe ich einen einzelnen abschließenden Schrägstrich verwendet.

3. // (Doppelte Schrägstriche) - Um den vollständigen Pfad einer Datei anzugeben, müssen Sie doppelte Schrägstriche verwenden. Ein Schrägstrich (/) wird verwendet, um die IP-Adresse oder den Hostnamen des Remote-Systems vom tatsächlichen Dateipfad zu trennen. Und der andere Schrägstrich wird verwendet, um den absoluten (vollständigen) Pfad der Remote-Datei anzugeben. Angenommen, Sie bearbeiten eine Datei mit dem Namen info.txt die sich in /home/sk/Documents/ befindet Verzeichnis Ihres entfernten Systems. In diesem Fall wäre der Befehl:

$ vim scp://[email protected]//home/sk/Documents/info.txt

Beachten Sie die doppelten Schrägstriche zwischen der IP-Adresse des Remote-Systems und dem Dateipfad. Doppelte Schrägstriche sind nur erforderlich, wenn der absolute Pfad einer entfernten Datei angegeben wird.

Überprüfen Sie den Inhalt der Remote-Datei von Ihrem lokalen System aus:

$ ssh [email protected] cat info.txt
[email protected]'s password: 
Welcome to OSTechNix blog

Sehen? Ich habe ein zusätzliches Wort "Blog" in der Datei info.txt hinzugefügt.

Manchmal haben Sie möglicherweise den standardmäßigen SSH-Port geändert für Sicherheitszwecke. Geben Sie in diesem Fall die SSH-Portnummer wie unten an.

$ vim scp://[email protected]:2200/info.txt

Ersetzen Sie 2200 durch Ihre SSH-Portnummer.

Wenn Sie keinen ssh/scp-Zugang haben, können Sie andere Protokolle verwenden, zum Beispiel ftp , wie unten.

$ vim ftp://[email protected]/path/to/file

Was passiert also im Hintergrund?

Wenn Sie die Remote-Datei von Ihrem lokalen System aus mit dem folgenden Befehl bearbeiten;

$ vim scp://[email protected]/info.txt

Vielleicht ist Ihnen die folgende Ausgabe unten in Ihrem Vim-Editor aufgefallen:

:!scp -q '[email protected]:info.txt' '/tmp/vsoDT6K/0.txt'
"/tmp/vsOLzGf/0.txt" 1L, 21C

Bedeutung - Der Befehl scp kopiert die angeforderte Datei vom entfernten System und speichert sie in /tmp Verzeichnis Ihres lokalen Systems und öffnet es dann zur Bearbeitung. Nachdem Sie die Bearbeitung abgeschlossen haben, wird die Datei mit dem scp-Befehl zurück auf das Remote-System hochgeladen.

Remote-Dateien in einer Vim-Sitzung bearbeiten

Wenn Sie sich bereits in einer Vim-Sitzung befinden, können Sie dann entfernte Dateien von Ihrem lokalen System wie unten bearbeiten.

Öffnen Sie die Datei in Vim in einem neuen Puffer, indem Sie den folgenden Befehl ausführen:

:e scp://[email protected]/info.txt

Nehmen Sie die Änderungen in der Datei vor und drücken Sie ESC drücken und :wq eingeben um die Datei zu speichern und zu schließen.

Sehen Sie sich die folgende visuelle Demo an.

Wie Sie in der obigen Ausgabe sehen können;

  • Ich habe den Vim-Editor von meinem lokalen System geöffnet,
  • Dann habe ich die Remote-Datei mit dem Namen info.txt in der Vim-Sitzung in einem neuen Puffer geöffnet,
  • Und dann einige Änderungen in der Datei vorgenommen,
  • Zum Schluss die Änderungen gespeichert und die Datei geschlossen (ESC und :wq).

Sie können die Datei auch in einem neuen Tab öffnen, indem Sie Folgendes ausführen:

:tabe scp://[email protected]/info.txt

Hoffe das hilft. Ich werde in den kommenden Tagen weitere Vim-Tipps posten. Besuchen Sie uns weiter!

Empfohlene Lektüre:

  • Vim-Tipps – Lesen und schreiben Sie entfernte Dateien mit Vim unter Linux
  • Befehle auf Remote-Linux-Systemen über SSH ausführen

Linux
  1. 10 erstaunliche Tipps und Tricks für die Arbeit mit Linux

  2. Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

  3. Wie liste ich Dateien mit vollständigen Pfaden in Linux auf?

  4. Zip-Dateien werden unter Linux mit Backslashes erweitert, keine Unterverzeichnisse

  5. Wie kann ich mehrere Dateien in VIM bearbeiten?

Tipps zum Auflisten von Dateien mit ls in der Linux-Befehlszeile

Cp-Befehl in Linux (Dateien kopieren)

Linux:So teilen Sie Dateien in einem lokalen Netzwerk mit woof

Linux-WC-Befehl mit Beispielen

So benennen Sie eine Datei (en) in Linux um

Vim-Tipps – Lesen und schreiben Sie entfernte Dateien mit Vim unter Linux