GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils Vim - Lire et écrire des fichiers distants avec Vim sous Linux

Il y a quelque temps, nous avons expliqué comment éditer des fichiers distants avec l'éditeur Vim sur Linux. En utilisant cette méthode, nous avons édité des fichiers stockés sur un système distant via SSH sans avoir à se connecter au système distant. Aujourd'hui, nous allons discuter d'une astuce Vim similaire - lire et écrire des fichiers distants avec Vim . À partir de la version 7.x de Vim, le plugin netrw.vim est installé en tant que plugin standard par défaut. Ce plugin permet aux utilisateurs de lire, éditer, écrire et parcourir des fichiers distants via ftp, rcp, scp ou http.

Qu'est-ce que le plug-in Netrw ?

Pour ceux qui se demandent, le Netrw (lecture, écriture et navigation orientées réseau) prend en charge l'édition locale et à distance, la lecture et l'écriture de fichiers sur les réseaux. Il prend également en charge la navigation dans les répertoires locaux et distants. Pour plus de détails, tapez :help netrw à l'intérieur de votre session vim. Voyons comment lire ou écrire des fichiers stockés dans un système Linux distant à partir de notre système local à l'aide de Vim.

Lire et écrire des fichiers distants avec Vim sous Linux

La lecture et l'écriture de fichiers distants sont presque identiques à la modification de fichiers distants.

Pour lire un fichier distant depuis notre système local, nous l'ouvrons simplement à l'aide de la commande :

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

Tapez q pour quitter le fichier.

Pour écrire dans le fichier distant, ouvrez-le simplement comme indiqué ci-dessus et appuyez sur "i" pour entrer en mode insertion et enfin commencer à y écrire. Une fois que vous avez terminé, appuyez sur ESC et tapez :wq pour enregistrer et quitter.

Ce qui se passe réellement en arrière-plan, c'est que le fichier distant est copié dans le répertoire "/tmp" de votre système local à l'aide de la commande scp. Et puis le fichier est ouvert pour l'édition. Une fois que vous avez terminé, la commande scp copie le fichier sur le système distant.

Affichez le contenu du fichier distant depuis votre système local pour vérifier si le fichier a vraiment été modifié à l'aide de la commande :

$ ssh [email protected] cat info.txt

Veuillez noter que si vous souhaitez mentionner le chemin absolu du répertoire sur l'hôte distant, utilisez des doubles barres obliques (//) comme indiqué dans la commande suivante :

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

Juste au cas où vous auriez déjà modifié le port SSH par défaut pour des raisons de sécurité, vous devez mentionner explicitement le port SSH no like ci-dessous.

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

Remplacez 2200 par votre numéro de port SSH.

Si vous n'avez pas d'accès ssh/scp, vous pouvez utiliser d'autres protocoles, par exemple ftp , comme ci-dessous.

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

Lire et écrire des fichiers distants dans la session Vim

Si vous êtes déjà dans une session Vim, vous pouvez alors lire et écrire des fichiers distants en utilisant Nread (NetRead) et Nwrite commandes (NetWrite).

Ouvrez l'éditeur Vim dans votre système local à l'aide de la commande suivante :

$ vim

Vous êtes maintenant dans la session Vim. Pour lire un fichier distant depuis la session Vim locale dans un nouveau tampon, exécutez simplement :

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

Alternativement, vous pouvez utiliser le "Nread" commande comme ci-dessous.

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

Ou,

:Nread "scp://[email protected]/info.txt"

Pour plus de détails, tapez la commande suivante dans la session Vim :

:Nread ?

Après avoir lu le fichier, tapez :q pour quitter.

De même, pour écrire le fichier distant, exécutez :

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

Appuyez sur "i" pour entrer en mode insertion et commencer à écrire/modifier.

Vous pouvez également utiliser :w commande pour créer et écrire des fichiers. Mais cette commande créera uniquement un nouveau fichier vide.

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

Après avoir écrit, appuyez sur ESC et tapez :wq pour enregistrer et quitter.

Vous pouvez également utiliser "Nwrite" commande à créer pour écrire des fichiers comme ci-dessous.

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

Pour en savoir plus sur Nwrite, saisissez ce qui suit dans la session Vim :

:Nwrite ?

J'espère que cela vous aidera.

Suggestion de lecture :

  • Exécuter des commandes sur des systèmes Linux distants via SSH

Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Lire et écrire des données de n'importe où avec la redirection dans le terminal Linux

  3. Trucs et astuces pour utiliser CUPS pour imprimer avec Linux

  4. Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

  5. Comparer graphiquement des fichiers et des dossiers sous Linux avec Meld

Conseils pour lister les fichiers avec ls sur la ligne de commande Linux

Comment faire pivoter et compresser les fichiers journaux sous Linux avec Logrotate

Conseils Vim - Modifier des fichiers distants avec Vim sous Linux

Synchronisation des fichiers et répertoires Linux avec rsync

commande d'écriture sous Linux avec des exemples

presse-papiers linux lire/écrire en C