GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils Vim - Modifier des fichiers distants avec Vim sous Linux

Vim est l'un des meilleurs éditeurs de texte hautement configurables, doté de nombreuses fonctionnalités uniques que vous ne trouverez pas dans d'autres éditeurs de texte. Aujourd'hui, nous allons discuter de l'une des fonctionnalités utiles - modifier les fichiers du système distant à partir du système local . Cela signifie - nous pouvons modifier un fichier stocké dans un système Linux distant sans avoir à nous y connecter via SSH ou toute autre méthode. Avant de connaître cette astuce, je me connectais généralement en SSH au système distant, puis j'éditais les fichiers. Cependant, il existe également un moyen d'éditer des fichiers distants avec Vim à partir de votre système local. À partir de la version 7.x de Vim, le plugin netrw.vim est installé en tant que plugin standard. Ce plugin vous permet d'éditer des fichiers 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. Allons-y et voyons comment éditer des fichiers stockés dans un système Linux distant à partir de notre système local à l'aide de Vim.

Modifier des fichiers distants avec Vim sous Linux

Éditer un fichier distant avec Vim est très simple :

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

Exemple :

J'ai un fichier texte nommé info.txt dans mon système distant avec la ligne suivante.

Welcome to OSTechNix

Maintenant, je vais modifier ce fichier et y apporter quelques modifications, puis enregistrer et fermer le fichier. Le tout depuis mon système local !

Pour ce faire, je lance simplement la commande suivante :

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

Voici la démonstration visuelle de la tâche ci-dessus :

Ici, vous devez faire attention aux trois choses suivantes.

1. [protégé par e-mail] (Par exemple, [email protected]) - Ici sk est le nom d'utilisateur du système distant. 192.168.225.22 est l'adresse IP du système distant.

2. Barre oblique unique (/) - Si vous souhaitez modifier un fichier stocké dans $HOME répertoire d'un système distant, vous devez utiliser une barre oblique finale pour séparer l'adresse IP ou le nom d'hôte du système distant du chemin du fichier. Dans le cas ci-dessus, j'ai stocké le fichier info.txt dans le répertoire $HOME, j'ai donc utilisé une seule barre oblique finale.

3. // (Doubles barres obliques) - Pour spécifier le chemin complet d'un fichier, vous devez utiliser des doubles barres obliques. Une barre oblique (/) est utilisée pour séparer l'adresse IP ou le nom d'hôte du système distant du chemin d'accès réel au fichier. Et l'autre barre oblique est utilisée pour mentionner le chemin absolu (complet) du fichier distant. Par exemple, supposons que vous modifiez un fichier nommé info.txt qui se trouve dans /home/sk/Documents/ répertoire de votre système distant. Dans ce cas, la commande serait :

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

Notez les doubles barres obliques entre l'adresse IP du système distant et le chemin du fichier. Les doubles barres obliques ne sont requises que lors de la mention du chemin absolu d'un fichier distant.

Vérifiez le contenu du fichier distant à partir de votre système local :

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

Voir? J'ai ajouté un mot supplémentaire "blog" dans le fichier info.txt.

Parfois, vous avez peut-être modifié le port SSH par défaut pour des raisons de sécurité. Dans ce cas, mentionnez le port SSH non comme 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

Que se passe-t-il en arrière-plan ?

Lorsque vous modifiez le fichier distant à partir de votre système local à l'aide de la commande suivante :

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

Vous avez peut-être remarqué la sortie suivante au bas de votre éditeur Vim :

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

Signification - La commande scp copie le fichier demandé depuis le système distant et l'enregistre dans /tmp répertoire de votre système local, puis l'ouvre pour modification. Une fois l'édition terminée, le fichier est téléchargé sur le système distant à l'aide de la commande scp.

Modifier des fichiers distants dans la session Vim

Si vous êtes déjà dans une session Vim, vous pouvez alors éditer des fichiers distants depuis votre système local comme ci-dessous.

Ouvrez le fichier depuis Vim dans un nouveau tampon en exécutant la commande suivante :

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

Effectuez les modifications dans le fichier et appuyez sur ESC clé et tapez :wq pour enregistrer et fermer le fichier.

Jetez un œil à la démonstration visuelle suivante.

Comme vous pouvez le voir dans la sortie ci-dessus ;

  • J'ai ouvert l'éditeur Vim depuis mon système local,
  • Ensuite, j'ai ouvert le fichier distant nommé info.txt dans la session Vim dans un nouveau tampon,
  • Puis apporté quelques modifications au fichier,
  • Enfin, enregistrez les modifications et fermez le fichier (ESC et :wq).

Vous pouvez également ouvrir le fichier dans un nouvel onglet en exécutant :

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

J'espère que cela t'aides. Je publierai d'autres astuces Vim dans les jours à venir. Continuez à visiter !

Suggestion de lecture :

  • Astuces Vim – Lire et écrire des fichiers distants avec Vim sous Linux
  • 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. Déplacer des fichiers sur Linux sans mv

  3. Howto :Programmation en C avec des fichiers temporaires sous Linux

  4. Édition à distance avec un éditeur local (Linux)

  5. Comment lister les fichiers avec des chemins complets sous Linux ?

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

Commande Cp sous Linux (Copier des fichiers)

Linux :Comment partager des fichiers sur un réseau local avec woof

Commande Linux WC avec exemples

Comment renommer un ou plusieurs fichiers sous Linux

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