GERLA.CC

estensione per vs code · gratis

Il server
dentro l'editor.

Remote SFTP/FTP porta i server remoti dentro Visual Studio Code: SFTP su SSH, FTP e FTPS, l'albero delle cartelle nella barra laterale, il terminale sulla stessa connessione dei file, la ricerca eseguita sul server. Le password stanno nel portachiavi di sistema, non in un file dentro il progetto.

151 KB · richiede VS Code 1.85 o successivo · provata su macOS e Linux · gratis, anche per uso commerciale

L'albero delle cartelle remote nella barra laterale di VS Code, con il file aperto nell'editor e il terminale remoto in basso index.php · produzione SFTP / FTP produzione ▾ /var/www ▾ html index.php config.php .htaccess ▸ assets ▸ logs staging OUTLINE ƒ bootstrap() ƒ render() ƒ handle() 123 456 789 rsftp:// TERMINALE SSH · produzione $ grep -rIn "DB_HOST" . ./config.php:14: $

l'albero remoto nella barra laterale, il file aperto direttamente dal server, la shell sulla stessa connessione.

Perché l'ho scritto

Da anni sposto file su server remoti mentre sviluppo, e da anni la stessa scena: apri il file con un client FTP, lo modifichi in un editor diverso da quello che stai usando per il progetto, salvi, ricarichi. Oppure installi una delle estensioni per VS Code che fanno la stessa cosa, e scopri che la password del server di produzione è finita in chiaro dentro un file JSON nella cartella del progetto, a un «git add .» di distanza dal repository.

Ho scritto Remote SFTP/FTP per togliermi questo problema, e visto che funziona lo metto a disposizione gratuitamente.

Il server diventa parte dell'editor

L'idea è semplice. Configuri la connessione una volta, SFTP su SSH oppure FTP e FTPS, e nella barra laterale compare l'albero delle cartelle remote. Clicchi un file, si apre. Lo modifichi, premi Salva, e il file viene riscritto sul server. Non c'è nessuna copia locale che dopo due giorni non sai più se è più aggiornata di quella remota, e non c'è nessuna sincronizzazione da lanciare e da ricordarsi. Una cartella remota può anche diventare la radice del workspace, e a quel punto ci lavori esattamente come su un progetto sul tuo disco.

VS Codeeditor, albero, ricerca
→
una connessioneSFTP / SSH
→
file + shell + grepsul server
→
server remotoun solo login

Terminale, ricerca, trascinamento

Sulle connessioni SSH c'è anche il terminale remoto, e qui c'è un dettaglio a cui tengo: la shell si apre sulla stessa connessione già aperta per i file. Nessun secondo login, nessuna seconda password. Se lanci il comando da una cartella dell'albero, la shell parte già lì dentro.

La funzione che uso di più, però, è la ricerca. Cercare una stringa dentro un progetto su un server remoto è di solito una scocciatura: o scarichi tutto, o entri in SSH e ti arrangi con grep. Qui scegli da quale cartella partire e cosa cercare, e se l'account SSH ha una shell la ricerca viene eseguita direttamente sul server con grep e find. In rete passa solo l'elenco dei risultati, non i file. Clicchi un risultato e il file si apre alla riga giusta. Sulle connessioni FTP, dove una shell non esiste, l'estensione scandaglia le cartelle dal client: più lenta, ma funziona.

Sotto l'albero delle connessioni c'è anche una struttura del file aperto: classi, funzioni e metodi, con un clic per saltarci dentro. Funziona anche sui file remoti il cui linguaggio non ha un language server attivo, grazie a una lettura testuale di riserva.

C'è poi tutta la parte di trascinamento. File e cartelle dal gestore file del sistema verso una cartella remota per caricarli, elementi dentro l'albero remoto per spostarli sul server senza far transitare i dati dal tuo computer, e persino fra due connessioni diverse per copiare da un server a un altro: in quel caso i dati passano da un flusso all'altro senza toccare né il disco né la memoria, quindi un file da qualche centinaio di megabyte non è un problema.

Se usi già altri strumenti

Non devi riconfigurare niente a mano: c'è un comando che legge le connessioni dal tuo ~/.ssh/config, dai file sftp.json dei progetti e da un'altra estensione diffusa, ti mostra cosa ha trovato e importa quelle che scegli, unendo i doppioni. Le password e le passphrase che trova finiscono nel portachiavi, non nella configurazione.

Sono supportati anche i server raggiungibili solo attraverso un bastione, e se la connessione cade l'operazione in corso viene ripresa da sola: un salvataggio o un trasferimento sopravvivono a un buco di rete senza finestre d'errore.

Le tre cose di cui vado più fiero

Non si vedono, ed è per quelle che l'ho scritto.

credenziali

Nel portachiavi, non nel progetto

Le password stanno nel portachiavi di sistema, attraverso l'archivio sicuro di VS Code. Non in un file dentro la cartella del progetto, quindi non in un commit per distrazione.

known_hosts

La chiave del server viene verificata

Come fa ssh: se l'host è nuovo ti mostra l'impronta e ti chiede conferma; se la chiave è cambiata ti avverte in modo esplicito, perché può essere una rotazione legittima oppure qualcuno in mezzo.

salvataggio

Niente sovrascritture di nascosto

Se un collega ha toccato quel file dopo che l'hai aperto, prima di scrivere ci si ferma: puoi confrontare le due versioni e decidere tu.

Limiti

Come si installa

01 · scarica

Prendi il file .vsix

Scarica il .vsix (v0.1.0)

02 · installa

Install from VSIX

Estensioni (Cmd/Ctrl+Shift+X) › menu ··· › Install from VSIX... › scegli il file.

Oppure dal terminale:

code --install-extension remote-sftp-ftp-0.1.0.vsix

Su macOS code va abilitato una volta: Cmd+Shift+P › «Shell Command: Install 'code' command in PATH».

03 · ricarica

Ricarica la finestra e collegati

Cmd/Ctrl+Shift+P › «Reload Window». Poi l'icona SFTP / FTP nella barra laterale.

Serve VS Code 1.85+. Per aggiornare, stessa procedura col file nuovo: le connessioni restano.

Licenza

Gratis, per qualunque uso, anche commerciale. Non è open source: non ridistribuire il file, linka questa pagina.

remote-sftp-ftp-0.1.0.vsix

151 KB · VS Code 1.85+ · macOS e Linux
sha256 f89c20fa e9da3ea0 897ed20f bb047e1c cb672363 e9c03f75 d7fa83ff 73f5b8d2

Scarica