Qualche tempo fa abbiamo discusso su come modificare file remoti con l'editor Vim su Linux. Usando quel metodo, abbiamo modificato i file archiviati su un sistema remoto su SSH senza dover effettivamente accedere al sistema remoto. Oggi parleremo di un suggerimento Vim simile:leggere e scrivere file remoti con Vim . A partire dalla versione Vim 7.x, il plug-in netrw.vim è installato come plug-in standard per impostazione predefinita. Questo plugin consente agli utenti di leggere, modificare, scrivere e sfogliare file remoti tramite ftp, rcp, scp o http.
Cos'è il plug-in Netrw?
Per chi se lo stesse chiedendo, il Netrw (Lettura, scrittura e navigazione orientate alla rete) il plug-in supporta la modifica, la lettura e la scrittura di file locali e remoti su reti. Supporta anche la navigazione nelle directory locali e remote. Per maggiori dettagli, digita :help netrw all'interno della tua sessione vim. Andiamo avanti e vediamo come leggere o scrivere file archiviati in un sistema Linux remoto dal nostro sistema locale usando Vim.
Leggi e scrivi file remoti con Vim su Linux
Leggere e scrivere file remoti è quasi come modificare file remoti.
Per leggere un file remoto dal nostro sistema locale, lo apriamo semplicemente usando il comando:
$ vim scp://[email protected]/info.txt
Digita q per uscire dal file.
Per scrivere sul file remoto, aprilo come mostrato sopra e premi "i" per entrare in modalità di inserimento e finalmente iniziare a scriverci. Al termine, premi ESC e digita :wq per salvare ed uscire.
Quello che succede effettivamente in background è che il file remoto viene copiato nella directory "/tmp" del tuo sistema locale usando il comando scp. E quindi il file viene aperto per la modifica. Al termine, il comando scp copia il file sul sistema remoto.
Visualizza il contenuto del file remoto dal tuo sistema locale per verificare se il file è stato davvero modificato usando il comando:
$ ssh [email protected] cat info.txt
Si noti che se si desidera menzionare il percorso assoluto per la directory sull'host remoto, utilizzare doppie barre (//) come mostrato nel comando seguente:
$ vim scp://[email protected]//home/sk/Documents/info.txt
Nel caso in cui tu abbia già cambiato la porta SSH predefinita per motivi di sicurezza, dovresti menzionare esplicitamente la porta SSH non come di seguito.
$ vim scp://[email protected]:2200/info.txt
Sostituisci 2200 con il tuo numero di porta SSH.
Se non disponi dell'accesso ssh/scp, puoi utilizzare altri protocolli, ad esempio ftp , come di seguito.
$ vim ftp://[email protected]/path/to/file
Leggi e scrivi file remoti all'interno della sessione Vim
Se sei già all'interno di una sessione Vim, puoi leggere e scrivere file remoti usando Nread (NetRead) e Nwrite (NetWrite).
Apri l'editor Vim nel tuo sistema locale usando il seguente comando:
$ vim
Ora sei all'interno della sessione di Vim. Per leggere il file remoto dall'interno della sessione Vim locale in un nuovo buffer, esegui semplicemente:
:e scp://[email protected]/info.txt
In alternativa, puoi utilizzare il "Nread" comando come di seguito.
:Nread scp://[email protected]/info.txt
Oppure,
:Nread "scp://[email protected]/info.txt"
Per maggiori dettagli, digita il seguente comando all'interno della sessione di Vim:
:Nread ?
Dopo aver letto il file, digita :q per uscire.
Allo stesso modo, per scrivere il file remoto, esegui:
:e scp://[email protected]/info.txt
Premere "i" per entrare in modalità inserimento e iniziare a scriverlo/modificarlo.
Puoi anche usare :w comando per creare e scrivere file. Ma questo comando creerà solo un nuovo file vuoto.
:w scp://[email protected]/info.txt
Dopo aver scritto, premi ESC e digita :wq per salvare ed uscire.
In alternativa, usa "Nwrite" comando per creare per scrivere file come di seguito.
:Nwrite scp://[email protected]/info.txt
Per conoscere maggiori dettagli su Nwrite, digita quanto segue nella sessione di Vim:
:Nwrite ?
Spero che questo aiuti.
Lettura consigliata:
- Esegui comandi su sistemi Linux remoti tramite SSH