Editare file remoti in locale senza spostarli o entrare in una shell.

Logo VIMTastiera dedicata VIM

Per chi abitualmente lavora in ambiente server, succederà molto spesso di dover editare file di testo puro, che sono normalmente file di configurazione di programmi vari, oppure sorgenti di script bash o script Python o sorgenti di programmi C, che sia ansi o C++. Insomma la necessità di dover editare file di testo puro sono innumerevoli. Ci sono diversi editor testuali che si usano in questi casi. Anche perché, di norma, un sistema server, non ha un ambiente grafico, per cui il tutto va fatto in ambiente testuale. Un editor con il quale, chi fa questo genere di lavoro, ha quasi sempre a che fare è vim che di norma è installato per default su tutti gli ambienti server. Esistono anche soluzioni grafiche per vi, come gvim in ambiente GNome oppure MacVim in ambiente oSX.

Quale che sia la versione che usiate, non tutti sanno che si può usare il vim, nella versione installata sul proprio sistema, per editare un file in remoto, senza dover per forza:

  • copiarli in locale, editarli, ricopiarli in remoto
  • entrare nella shell in remoto, editarli, uscire dalla shell remota.

Questo risulta possibile usando la combinazione vim + scp in un solo comando. Per esempio il file script.py sull’host 192.168.1.1 dall’utente andrea potrà essere editato direttamente dal nostro computer con questo comando:

vim scp://andrea@192.168.1.1:22/script.py (ATTENZIONE: path relativo all’utente andrea.)

vim scp://andrea@192.168.1.1:22//etc/hosts (ATTENZIONE: il doppio carattere slash (/) indica un percorso assoluto dalla radice del disco.)

Una volta aperta la schermata di vim vi verrà segnalato, quando il file è stato totalmente caricato, il percorso assoluto del file temporaneo nel nostro sistema ed una richiesta di invio:

“/var/folders/q4/6xwschyd5vg_96pcqsys600gn/T/vYN7lzg/0.list” 1519L, 36321C

Premi INVIO o un comando per proseguire

Dopo la pressione dell’invio avrete l’abituale ambiente di lavoro di vim, con cui potrete editare il vostro file. A lavoro ultimato, i soliti comandi di scrittura ed uscita avvieranno la trasmissione del file aggiornato verso l’host remoto.

Io la trovo una cosa piuttosto comoda, voi ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *