Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Ufficio/EditorDiTesto/Helix"
Differenze tra le versioni 27 e 94 (in 67 versioni)
Versione 27 del 31/08/2014 23.35.54
Dimensione: 9674
Autore: jeremie2
Commento:
Versione 94 del 03/11/2025 15.24.13
Dimensione: 15077
Autore: jeremie2
Commento: link documentazione non ufficiale
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from jeremie2/Prove3
Linea 2: Linea 3:
#LANGUAGE it #language it
Linea 4: Linea 5:
<<Indice>> <<Indice(depth=1)>>
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=657114"; rilasci="24.04")>>
Linea 8: Linea 10:
'''FTP''' (File Transfer Protocol) è uno dei protocolli maggiormente usati per il trasferimento dei file. Solitamente prevede l'autenticazione degli utenti e una serie di comandi semplici per scaricare e caricare file.

Questa guida si occupa della configurazione del servizio FTP utilizzando il programma '''vsftpd''' (acronimo di '''Very Secure FTP Daemon'''), uno dei programmi più usati e sicuri per l'implementazione di questo servizio.
'''Helix''' è un editor di testo [[#mod|modale]] utilizzabile nel [[AmministrazioneSistema/Terminale|terminale]] simile a '''Vim''' ma con la differenza di avere fin da subito a disposizione buone impostazioni di default e funzionalità varie in modo che l'editor risulti immediatamente utilizzabile riducendo al minimo eventuali personalizzazioni.

Nonostante '''Helix''' possa semplificare la vita rispetto a editor come '''Vim''', '''!NeoVim''', '''Emacs''', ecc.. essendo un software evoluto per l'editazione di testi, richiede comunque un certo impegno per impararne l'utilizzo.<<BR>>
In questa guida vengono giusto introdotte alcune nozioni. Per approfondimenti si rimanda all'ottima [[https://docs.helix-editor.com/|documentazione]] ufficiale (e [[https://helix-editor.vercel.app/start-here/basics|non ufficiale]]) ed è inoltre consigliabile l'avvio di '''Helix''' in modalità [[https://docs.helix-editor.com/usage.html|tutor]], una guida interattiva particolarmente utile per chi stia utilizzando per la prima volta un editor modale.

{{{#!wiki tip
Per l'installazione dei ''Language Server Protocol'' ('''LSP''') consultare la [[Ufficio/EditorDiTesto/Helix/Lsp|seguente pagina]].
}}}
Linea 14: Linea 21:
È necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''vsftpd'', reperibile dal [[Repository/Componenti|componente]] '''universe'''.

<<Anchor(avvio)>>
= Avvio e arresto del servizio =

Una volta installato il pacchetto ''vsftpd'', il servizio FTP viene avviato automaticamente.

Per fermare il servizio digitare il seguente comando: {{{
sudo /etc/init.d/vsftpd stop
}}}

Per avviare il servizio, una volta arrestato, digitare il seguente comando: {{{
sudo /etc/init.d/vsftpd start
}}}

Per riavviare il servizio è utile digitare il seguente comando: {{{
sudo /etc/init.d/vsftpd restart
}}}

= Prova del servizio =

Ora, consideriamo di doverci collegare al computer, con indirizzo IP '''192.168.1.2''', su cui è stato installato il servizio FTP. Per fare ciò, da un terminale, digitare: {{{
ftp 192.168.1.2
}}}

Viene visualizzato un messaggio di richiesta di immissione delle credenziali di accesso simile al seguente: {{{
Connected to 192.168.1.2
Name (192.168.1.2):
}}}

Inserire come nome utente: {{{
anonymous
}}}
e premere «'''Invio'''».

Viene dunque richiesta la password. In questo caso è sufficiente premere «'''Invio'''». Generalmente, per l'utente '''anonymous''' non viene impostata alcuna password.

Una volta effettuato l'accesso sarà possibile esplorare le cartelle disponibili sul server, dunque caricare e scaricare i file, limitatamente ai permessi impostati per il proprio utente. Gli utenti anonimi possono avere accesso soltanto alla cartella `/home/ftp` del server, nella quale, a seconda dei parametri di configurazione impostati, potranno soltanto leggere/scaricare, oppure anche scrivere/caricare.

= Configurazione =

Per configurare un server FTP in cui gli utenti abilitati ad accedere siano gli stessi del sistema, è necessario modificare il file di configurazione del servizio {{{/etc/vsftpd.conf}}} con uno degli [[Ufficio/EditorDiTesto|editor di testo]] messi a disposizione da Ubuntu.

Aprire una finestra di terminale e digitare il seguente comando:
Installare il pacchetto [[AmministrazioneSistema/InstallareProgrammi/PacchettiSnap|snap]] digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo snap install helix --classic
}}}

== Da pacchetto .deb ==

In alternativa '''Helix''' può essere installato in formato `.deb` da un [[Repository|repository]] esterno.

 0. Aggiungere la nuova sorgente software digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo add-apt-repository ppa:maveonair/helix-editor
}}}
 0. Installare '''Helix''' digitando:{{{
sudo apt install helix
}}}

= Avvio e apertura file =

Comandi di avvio da '''terminale''':

||<:> '''Comando''' ||<:> '''Descrizione''' ||
|| `hx` || Apre l'editor. ||
|| `helix` || Versione estesa del comando precedente. ||
|| `hx percorso/file` || Apre direttaemtne un file all'interno di Helix.||

<<Anchor(file)>>
In alternativa oltre al comando [[#open|:open]] sono disponibili diverse modalità di ricerca, selezione e apertura file in stile ''file manager'' premendo la combinazione dei tasti '''spazio''' (''barra spaziatrice'') e una specifica lettera.
 * '''File picker''', per visionare e aprire file in modo pratico:
  * '''spazio + f''': apre il file picker.
  * '''spazio + F''': apre il file picker nella directory corrente.
 * '''File explorer''', cioè un file manager per navigare le directory e visualizzare e aprire file:
  * '''spazio + e''': apre il file explorer.
  * '''spazio + E''': apre il file explorer nella directory corrente.
 * '''Buffer picker''', elenco dei file aperti nell'attuale sessione;
  * '''spazio + b''': apre il '''buffer picker'''.

{{{#!wiki tip
Se il terminale è aperto a schermo intero, sulla destra sarà visibile un'anteprima del file selezionato.
}}}

= Chiusura =

Questi i comandi da '''editor''' di chiusura da digitare in modalità '''normale''':

||<:> '''Comando''' ||<:> '''Descrizione''' ||
|| `:q` || Chiude la sessione di Helix. ||
|| `:q!` || Chiude la sessione senza salvare eventuali modifiche.||
|| `:wq` || Salva le modifiche e chiude la sessione. ||

<<Anchor(mod)>>
= Modalità =

Trattandosi di un editor modale, per ogni tipologia di azione è prevista una modalità che deve essere attivata. All'apertura di un file '''Helix''' sarà in modalità '''normale''', cioè una modalità che permette di muoversi attraverso il testo e applicare modifiche come spostare o copia/incollare il testo stesso. Per poter inserire caratteri sarà necessario passare alla modalità '''inserimento''' tramite il tasto '''i'''.
Con il tasto '''Esc''' si ritornerà sempre alla modalità '''normale'''.

Niente esclude che a proprio piacimento l'utente possa impostare scorciatoie da tastiera che permettano di sfruttare azioni non previste nella modalità originaria. Ad esempio è possibile attivare [[#config|scorciatoie da tastiera]] che permettano in modalità '''inserimento''' di spostarsi velocemente fra le righe del testo.

{{{#!wiki note
Da notare che mouse e touchpad continueranno a funzionare come di consueto e potranno essere utilizzati per selezionare del testo e incollarlo tramite clic centrale o tap a tre dita.
}}}

Segue un elenco con alcune modalità:

||<:> '''Modalità''' ||<:> '''Tasti''' ||<:> '''Descrizione''' ||
|| '''Normale''' ||<:> '''Esc''' || Modalità predefinita nella quale è possibile scorrere, selezionare, copiare, incollare testo e altro. Si ritorna ad essa premendo Esc. ||
|| '''Inserimento''' ||<:> '''i''' || Inserimento. ||
|| ||<:> '''c''' || Inserimento cancellando il testo selezionato. ||
|| ||<:> '''o''' || Inserimento a capo. ||
|| ||<:> '''I''' || Inserimento a inizio riga. ||
|| ||<:> '''A''' || Inserimento a fine riga. ||
|| '''Selezione''' ||<:> '''v''' || I tasti per muoversi attraverso il testo faranno si che il testo venga selezionato.||
|| '''Ricerca''' ||<:> '''s''' || Da attivare dopo aver selezionato del testo. Permette la ricerca di parole/caratteri all'interno del testo selezionato.||

= Prompt dei comandi =

Premendo in modalità '''normale''' il tasto relativo ai due punti ''':''' si aprirà in basso il prompt dei comandi e poco più sopra un lungo elenco di comandi disponibili. Tramite il tasto '''tab''' è possibile scorrere e selezionare la funzionalità desiderata. Per non dover premere il tasto '''tab''' infinite volte, sarà sufficiente digitare le prime lettere di un comando per attivare l'auto completamento.<<BR>>
L'elenco dei comandi eseguiti in precedenza sarà consultabile premendo il tasto '''freccia su ↑'''.

Segue un breve elenco dei principali comandi.

<<Anchor(open)>>
||<:> '''Comando''' ||<:> '''In breve''' ||<:> '''Dscrizione''' ||
|| `:quit` || `:q` || Chiudi Elix. ||
|| `:open` || `:o` || Apri file. ||
|| `:new` || `:n` || Apri un nuovo file.||
|| `:buffer-next` || `:bn` || Passa al successivo file aperto.||
|| `:buffer-close` || `:bc` || Chiudi il file corrente. ||
|| `:buffer-close-others`|| `:bco` || Chiudi gli altri file. ||
|| `:buffer-close-all` || `:bca` || Chiudi tutti i file. ||
|| `:theme` || || Seleziona tema. ||
|| `:config-open` || || Apri il `config.toml` ||
|| `:config-reload`|| || Ricarica la configurazione.||
|| `:run-shell-command` || `:sh` || Esegui comandi da shell (potrebbe non funzionare per tutti i comandi) ||
|| `:lsp-stop` || || Ferma il ''language server protocol'' ||
|| `:lsp-restart`|| || Riavvia il ''language server protocol''||

= Temi =

È possibile testare una vasta gamma di temi presenti di default in '''Helix'''.

 0. In modalità '''normale''' premere ''':theme''' e quindi premere '''spazio''' per aprire la lista dei temi.
 0. Scorrere i temi tramite tasto '''tab'''. Immediatamente verranno applicati.
 0. Premere '''invio''' per utilizzare il tema selezionato.

Per rendere un tema predefinito:
 0. se assente creare il file `~/.config/helix/config.toml`.
 0. Supponendo di voler utilizzare il tema `catppuccin_frappe`, nel file dovrà essere inserita la stringa:{{{
theme = "catppuccin_frappe"
}}}
 0. Salvare e chiudere il file di configurazione.

= Muoversi attraverso il testo =

Sebbene in modalità '''normale''' sia possibile spostarsi fra i caratteri con i tasti '''freccia''', il modo principale è attraverso i tasti '''h''', '''j''', '''k''', '''l''', non a caso la posizione base delle dita della mano destra nell'utilizzo corretto della tastiera.

||<:> '''Tasto''' ||<:> '''Equivalente''' ||<:> '''Sposta il cursore''' ||
||<:> '''h''' ||<:> '''←''' || a sinistra||
||<:> '''j''' ||<:> '''↓''' || giù ||
||<:> '''k''' ||<:> '''↑''' || su ||
||<:> '''l''' ||<:> '''→''' || a destra ||

È possibile velocizzare gli spostamenti saltando di parola in parola selezionandole:

||<:> '''Tasto''' ||<:> '''Caratteri selezionati''' ||
||<:> '''w''' || In avanti fino alla prossima parola esclusa. ||
||<:> '''e''' || Avanti fino all'ultimo carattere della parola corrente.||
||<:> '''b''' || Indietro fino all'inizio della parola. ||

Attraverso la funzione '''Goto''' il cursore può eseguire i seguenti spostamenti:

||<:> '''Tasti''' ||<:> '''Spostamento cursore''' ||
||<:> '''g s''' || Primo carattere riga corrente.||
||<:> '''g h''' || Inizio riga. ||
||<:> '''g l''' || Fine riga. ||
||<:> '''g 8 g''' || Riga numero 8. (Sostituire numero riga a proprio piacimento) ||
||<:> '''g g''' || Inizio file ||
||<:> '''g e''' || Fine file ||

<<Anchor(copia_incolla)>>
= Copia/incolla =

{{{#!wiki important
Nel caso non dovesse funzionare il copia/incolla da finestre esterne, assicurarsi di aver installato il pacchetto [[apt://wl-clipboard|wl-clipboard]].
}}}

Ricordando che '''Helix''' è comunque in grado di incollare del testo selezionato tramite clic centrale del mouse o tap a tre dita sul touchpad, viene qui mostrata una lista di comandi per il copia/incolla in modalità '''normale''':

||<:> '''Tasti''' ||<:> '''Spostamento cursore''' ||
||<:> '''y''' || Copia testo selezionato da incollare sul medesimo file. ||
||<:> '''spazio y''' || Copia testo da incollare su altro file. ||
||<:> '''p''' || Incolla dopo il cursore il testo copiato sul medesimo file. ||
||<:> '''shift p''' || Incolla prima del cursore il testo copiato sul medesimo file. ||
||<:> '''spazio p''' || Incolla dopo il cursore il testo copiato da altro file. ||
||<:> '''spazio shift p''' || Incolla prima del cursore il testo copiato da altro file.||

= Annullare/ripetere azione =

In modalità '''normale''':

|| '''u''' || annulla azione ||
|| '''shift u''' || ripete azione ||

= Selezione multi linea =

 0. È possibile procedere in due modi:
  * In modalità '''normale''' ripetendo la combinazione '''shift c''' il cursore verrà moltiplicato su una linea verticale.
  * Dopo aver selezionato del testo, passando alla modalità di ricerca (tasto '''s''') è possibile digitare la parola da ricercare e quindi premere '''invio'''.

{{{#!wiki tip
Per selezionare tutto il testo in modalità '''normale''' digitare il tasto percentuale '''%'''.
}}}

= Elenchi scorciatoie =

Come si può intuire una delle maggiori difficoltà nell'utilizzo di un editor di testo di questo genere sta nel memorizzare una lunga lista di scorciatoie da tastiera. Tuttavia '''Helix''' mette a disposizione per molte delle sue funzionalità una comoda finestra con relativo elenco di scorciatoie ogni volta che in modalità '''normale''' la funzionalità viene richiamata attraverso relativo tasto di attivazione.

<<Anchor(file_picker)>>
== Space - tasto: spazio ==

Premendo il tasto '''[spazio]''' (''barra spaziatrice'') in basso a destra si aprirà una finestra con una lista di funzionalità attivabili premendo un determinato tasto. Per citarne alcune:
 * '''w''' invoca la lista comandi per suddividere verticalmente od orizzontalmente una finestra;
 * I tasti '''y''' e '''p''' offrono le [[#copia_incolla|già citate]] funzionalità di copia/incolla;
 * I tasti '''e''', '''f''' e '''b''' offrono le [[#file|già citate]] funzionalità di ricerca, selezione e apertura file in stile file manager.
 * Il comando '''k''' richiama la documentazione ufficiale inerente al linguaggio in utilizzo.

== Match - tasto: m ==

Funzionalità utile a gestire parentesi e virgolette per:
 * inserire parentesi intorno al testo selezionato, ad esempio: '''m s ('''
 * selezionare il testo interno alle parentesi: '''m i m'''
 * sostituire parentesi intorno a un testo, ad es. [] con {}: '''m r [ {'''
 * far saltare il cursore fra la parentesi di apertura e di chiusura: '''m m'''
A proposito di parentesi, pur non essendo parte della funzione '''match''', merita una menzione il comando '''alt o'''. Ogni volta che viene premuto espande la selezione del testo fino alle virgolette o parentesi più esterne.

<<Anchor(config)>>
= File di configurazione =

Per adattare '''Helix''' alle proprie esigenze è possibile creare ed editare il file `~/.config/helix/config.toml`. Ciò può essere fatto direttamente da '''Helix''' tramite i seguenti comandi.

 * ''':config-open''': apre il file di configurazione per apportare eventuali modifiche.
 * ''':config-reload''': una volta salvate le modifiche permette di caricare le nuove impostazioni senza dover riavviare '''Helix'''.

{{{#!wiki tip
Il capitolo [[https://docs.helix-editor.com/keymap.html|Keymap]] della documentazione ufficiale mostra i comandi associati alle scorciatoie da tastiera, molto utile per poter associare un comando a una scorciatoia da tastiera che faccia al proprio caso. Il capitolo [[https://docs.helix-editor.com/configuration.html|Configuration]] entra maggiormente nel dettaglio.
}}}

Le righe che iniziano col carattere '''#''' sono commenti.
Linea 59: Linea 229:
sudo gedit /etc/vsftpd.conf
}}}

Cercare la seguente riga e cancellare il carattere di cancelletto «'''#'''» presente all'inizio della stessa: {{{
#local_enable=YES
}}}

Ora è possibile tentare di collegarsi al server con il comando descritto in precedenza ed effettuare l'accesso utilizzando uno degli account utente presenti sul sistema locale.
Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema.

Applicando le impostazioni sopra discusse, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem locale. Per evitare ciò è opportuno limitare l'accesso degli utenti solamente alla propria cartella '''Home'''.

A tale scopo è utile decommentare la seguente riga: {{{
#chroot_local_user=YES
}}}

= Limitare l'accesso =

Per rafforzare la sicurezza, è possibile scegliere gli utenti ai quali vietare l'accesso al servizio FTP.

Per far ciò è utile modificare il file {{{/etc/ftpusers}}}, il quale contiene la lista degli utenti ai quali non è consentito accedere al servizio. Il seguente è del contenuto di default del file {{{/etc/ftpusers}}}: {{{
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''È consigliato aggiungere gli utenti all'elenco senza cancellare quelli pre-esistenti.''' ||

Per non consentire l'utilizzo del servizio all'utente '''mario''', è sufficiente aggiungere il nome dell'utente in coda all'elenco, in questo caso '''mario'''. Effettuate le modifiche, è necessario [[#avvio|riavviare il servizio]].

= Elenco dei parametri di vsftpd.conf =

Di seguito vengono presentati alcuni dei parametri che è possibile configurare per '''vsftpd''':

 * {{{
anonymous_enable=YES
}}} Abilita/disabilita l'accesso anonimo.

 * {{{
local_enable=YES
}}} Abilita/disabilita l'accesso agli utenti locali.

 * {{{
write_enable=YES
}}} Abilita/disabilita agli utenti l'accesso in scrittura.

 * {{{
anon_upload_enable=YES
}}} Abilita/disabilita la possibilità degli utenti anonimi di caricare file. Valido solo se l'opzione precedente è impostata a vero.

 * {{{
anon_mkdir_write_enable=YES
}}} Abilita/disabilita la possibilità degli utenti anonimi di creare nuove directory.

 * {{{
xferlog_enable=YES
}}} Attiva i log su tutte le operazioni di scaricamento e caricamento file.

 * {{{
xferlog_file=/var/log/vsftpd.log
}}} Specifica il percorso per i [[AmministrazioneSistema/LogDiSistema|file di log]].

 * {{{
ftpd_banner=
}}} Imposta un messaggio di benvenuto visualizzato all'accesso al server FTP.

= Gestione di un server FTP =

Ci sono principalmente tre modi per configurare un server ftp:

 0. '''[[#ftp1|FTP anonimo]]'''

 Sarà possibile accedere al server senza aver bisogno di un account registrato; tutti gli utenti saranno liberi di eseguire upload, che verranno ovviamente controllati da alcune regole impostate dall'amministratore di sistema (limite di dimensione, controllo anti-pirateria, etc).
                         
 0. '''[[#ftp2|FTP anonimo e controllato da password]]'''

 Questo metodo darà la possibilità di accedere al server sia ad utenti anonimi che a quelli con un regolare account a cui sarà dato accesso ad alcune cartelle predefinite dall'amministratore, eccetto che per l'utente '''root''' che potrà vedere/modificare/cancellare tutte i file e/o le cartelle.
 
 0. '''[[#ftp3|FTP con utenti virtuali e il supporto di un database MySQL]]'''

 Questo metodo abilita l'accesso al server solo per il gruppo di utenti che non ha un'autenticazione virtuale via shell nel sistema. Sarà richiesto l'uso di un database [[Server/MySql|MySql]] che conterrà tutte le informazioni riguardanti gli utenti.

<<Anchor(ftp1)>>
== FTP anonimo ==

Prima di creare un server con accesso anonimo, si dovrà aggiungere al sistema l'utente '''ftp''', con una sua directory home. Per farlo seguite questi comandi: {{{
useradd -d /home/ftp/ftp -s /bin/false ftp
mkdir -p /home/ftp/upload
}}}

Ci sono inoltre numerose opzioni con le quali avviare il server, in modo da configurarne ogni singolo aspetto. Alcune di queste opzioni sono le seguenti:

 * '''-e''' Accesso solo per gli utenti anonimi.
 * '''-B''' Avvia il server in modalità background.
 * '''-i''' Gli utenti anonimi non potranno caricare file.
 * '''-M''' Permette agli utenti anonimi di creare cartelle.
 * '''-s''' I file degli utenti ''ftp'' non possono essere scaricati.

<<Anchor(ftp2)>>
== FTP anonimo e controllato da password ==

Per consentire l'accesso al server a tutti gli utenti (registrati e anonimi), è possibile seguire questi semplici comandi:

 * '''-B ,-i ,M, -r, -s''' Stesse variabili descritte in precedenza.
 * '''-u <uid>''' Autorizza utenti con uno specifico ID(uid) ad accedere al server.
 * '''-V <Ip address>''' Solo specifici IP potranno accedere al server in modalità non-anonima.

<<Anchor(ftp3)>>
== FTP con utenti virtuali e il supporto di un database MySQL ==

Per creare un server che affidi a '''My``SQL''' la gestione degli utenti, è possibile utilizzare procedere come segue:

 * Aprire una finestra di terminale e digitare il seguente comando: {{{
sudo apt-get install pure-ftpd
}}}

 * Scaricare '''User Manager for PureFTPd''' da [[http://machiel.generaal.net/index.php?subject=user_manager_pureftpd|questo]] indirizzo.

 * Decomprimere il pacchetto e caricare il contenuto nella directory principale del server web, dunque aprire, con il proprio browser, [[http://localhost/ftp/install.php|questo]] indirizzo.

 * Seguire le indicazioni a schermo.

 * Copiare {{{pureftpd-mysql.conf}}} nella cartella di '''User Manager for PureFTPd'''.

 * Salvare la configurazione e chiudere. Per effettuare l'accesso tramite l'interfaccia web è sufficiente aprire [[http://localhost/ftp|questo]] indirizzo con il proprio browser.

=== Opzioni varie ===

 * '''-c <num>''' Numero di client massimo abilitato ad effettuare l'accesso al server. Esempio: {{{
pure-ftpd -c 3
}}}
 * '''-C <num>''' Numero massimo di connessioni per IP. '''Esempio:''' {{{
pure-ftpd -C 3
}}}
 * '''-T <bandwitdh>''' Massima banda disponibile per ogni connessione (in kb/s). '''Esempio:''' {{{
pure-ftpd -T 150
}}}
 * '''-n <MBytes>''' Numero massimo di Mb disponibili per ogni utente. '''Esempio:''' {{{
pure-ftpd -n 200
}}}
 * '''-m <Cpu Loading>''' Blocca gli upload da parte di utenti anonimi nel caso che il caricamento della CPU superi il livello definito in termini di percentuale. Esempio: {{{
pure-ftpd -m 50
}}}
# Tema
theme = "catppuccin_frappe"

[editor]
# Sezione generica

# Salvataggio automatico quando la finestra dell'editor perde il focus
auto-save = true
# Visualizza il testo a capo quando la finestra è stretta
soft-wrap.enable = true

[keys.normal]
# Sezione dedicata alla modalità "normale"

# Opzione alternativa di salvataggio file talvolta più comodo di :w
C-q = ":write"

# Bloccare e riattivare il language server protocol
A-s = ":lsp-stop"
A-g = ":lsp-restart"

[keys.insert]
# Sezione dedicata alla modalità "inserisci"

# Muoversi di parola in parola a destra e sinistra tramite i tasti freccia
"C-right" = "move_next_word_start"
"C-left" = "move_prev_word_start"

# Replicare la funzione goto per portare il cursore a inizio linea,
# sul primo carattere di linea e a fine linea
"C-a" = "goto_line_start"
"C-s" = "goto_first_nonwhitespace"
"C-l" = "goto_line_end"

# Salvataggio file
C-q = ":write"
}}}

= LSP =

Per l'installazione dei ''Language Server Protocol'' ('''LSP''') consultare la [[Ufficio/EditorDiTesto/Helix/Lsp|seguente pagina]].
Linea 216: Linea 273:
 * [[http://vsftpd.beasts.org/|Sito ufficiale di vsftpd]]

 * [[http://vsftpd.beasts.org/vsftpd_conf.html|Guida alla configurazione di vsftpd]]
 * [[https://helix-editor.com/|Sito ufficiale]]
 * [[https://docs.helix-editor.com/|Documentazione ufficiale]]
 * [[https://helix-editor.vercel.app/start-here/basics|Dettagliata documentazione non ufficiale]]
Linea 221: Linea 278:
CategoryServer CategoryProgrammazione CategoryProduttivita


Guida verificata con Ubuntu: 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Helix è un editor di testo modale utilizzabile nel terminale simile a Vim ma con la differenza di avere fin da subito a disposizione buone impostazioni di default e funzionalità varie in modo che l'editor risulti immediatamente utilizzabile riducendo al minimo eventuali personalizzazioni.

Nonostante Helix possa semplificare la vita rispetto a editor come Vim, NeoVim, Emacs, ecc.. essendo un software evoluto per l'editazione di testi, richiede comunque un certo impegno per impararne l'utilizzo.
In questa guida vengono giusto introdotte alcune nozioni. Per approfondimenti si rimanda all'ottima documentazione ufficiale (e non ufficiale) ed è inoltre consigliabile l'avvio di Helix in modalità tutor, una guida interattiva particolarmente utile per chi stia utilizzando per la prima volta un editor modale.

Per l'installazione dei Language Server Protocol (LSP) consultare la seguente pagina.

Installazione

Installare il pacchetto snap digitando nel terminale:

sudo snap install helix --classic

Da pacchetto .deb

In alternativa Helix può essere installato in formato .deb da un repository esterno.

  1. Aggiungere la nuova sorgente software digitando nel terminale:

    sudo add-apt-repository ppa:maveonair/helix-editor
  2. Installare Helix digitando:

    sudo apt install helix

Avvio e apertura file

Comandi di avvio da terminale:

Comando

Descrizione

hx

Apre l'editor.

helix

Versione estesa del comando precedente.

hx percorso/file

Apre direttaemtne un file all'interno di Helix.

In alternativa oltre al comando :open sono disponibili diverse modalità di ricerca, selezione e apertura file in stile file manager premendo la combinazione dei tasti spazio (barra spaziatrice) e una specifica lettera.

  • File picker, per visionare e aprire file in modo pratico:

    • spazio + f: apre il file picker.

    • spazio + F: apre il file picker nella directory corrente.

  • File explorer, cioè un file manager per navigare le directory e visualizzare e aprire file:

    • spazio + e: apre il file explorer.

    • spazio + E: apre il file explorer nella directory corrente.

  • Buffer picker, elenco dei file aperti nell'attuale sessione;

    • spazio + b: apre il buffer picker.

Se il terminale è aperto a schermo intero, sulla destra sarà visibile un'anteprima del file selezionato.

Chiusura

Questi i comandi da editor di chiusura da digitare in modalità normale:

Comando

Descrizione

:q

Chiude la sessione di Helix.

:q!

Chiude la sessione senza salvare eventuali modifiche.

:wq

Salva le modifiche e chiude la sessione.

Modalità

Trattandosi di un editor modale, per ogni tipologia di azione è prevista una modalità che deve essere attivata. All'apertura di un file Helix sarà in modalità normale, cioè una modalità che permette di muoversi attraverso il testo e applicare modifiche come spostare o copia/incollare il testo stesso. Per poter inserire caratteri sarà necessario passare alla modalità inserimento tramite il tasto i. Con il tasto Esc si ritornerà sempre alla modalità normale.

Niente esclude che a proprio piacimento l'utente possa impostare scorciatoie da tastiera che permettano di sfruttare azioni non previste nella modalità originaria. Ad esempio è possibile attivare scorciatoie da tastiera che permettano in modalità inserimento di spostarsi velocemente fra le righe del testo.

Da notare che mouse e touchpad continueranno a funzionare come di consueto e potranno essere utilizzati per selezionare del testo e incollarlo tramite clic centrale o tap a tre dita.

Segue un elenco con alcune modalità:

Modalità

Tasti

Descrizione

Normale

Esc

Modalità predefinita nella quale è possibile scorrere, selezionare, copiare, incollare testo e altro. Si ritorna ad essa premendo Esc.

Inserimento

i

Inserimento.

c

Inserimento cancellando il testo selezionato.

o

Inserimento a capo.

I

Inserimento a inizio riga.

A

Inserimento a fine riga.

Selezione

v

I tasti per muoversi attraverso il testo faranno si che il testo venga selezionato.

Ricerca

s

Da attivare dopo aver selezionato del testo. Permette la ricerca di parole/caratteri all'interno del testo selezionato.

Prompt dei comandi

Premendo in modalità normale il tasto relativo ai due punti : si aprirà in basso il prompt dei comandi e poco più sopra un lungo elenco di comandi disponibili. Tramite il tasto tab è possibile scorrere e selezionare la funzionalità desiderata. Per non dover premere il tasto tab infinite volte, sarà sufficiente digitare le prime lettere di un comando per attivare l'auto completamento.
L'elenco dei comandi eseguiti in precedenza sarà consultabile premendo il tasto freccia su ↑.

Segue un breve elenco dei principali comandi.

Comando

In breve

Dscrizione

:quit

:q

Chiudi Elix.

:open

:o

Apri file.

:new

:n

Apri un nuovo file.

:buffer-next

:bn

Passa al successivo file aperto.

:buffer-close

:bc

Chiudi il file corrente.

:buffer-close-others

:bco

Chiudi gli altri file.

:buffer-close-all

:bca

Chiudi tutti i file.

:theme

Seleziona tema.

:config-open

Apri il config.toml

:config-reload

Ricarica la configurazione.

:run-shell-command

:sh

Esegui comandi da shell (potrebbe non funzionare per tutti i comandi)

:lsp-stop

Ferma il language server protocol

:lsp-restart

Riavvia il language server protocol

Temi

È possibile testare una vasta gamma di temi presenti di default in Helix.

  1. In modalità normale premere :theme e quindi premere spazio per aprire la lista dei temi.

  2. Scorrere i temi tramite tasto tab. Immediatamente verranno applicati.

  3. Premere invio per utilizzare il tema selezionato.

Per rendere un tema predefinito:

  1. se assente creare il file ~/.config/helix/config.toml.

  2. Supponendo di voler utilizzare il tema catppuccin_frappe, nel file dovrà essere inserita la stringa:

    theme = "catppuccin_frappe"
  3. Salvare e chiudere il file di configurazione.

Muoversi attraverso il testo

Sebbene in modalità normale sia possibile spostarsi fra i caratteri con i tasti freccia, il modo principale è attraverso i tasti h, j, k, l, non a caso la posizione base delle dita della mano destra nell'utilizzo corretto della tastiera.

Tasto

Equivalente

Sposta il cursore

h

a sinistra

j

giù

k

su

l

a destra

È possibile velocizzare gli spostamenti saltando di parola in parola selezionandole:

Tasto

Caratteri selezionati

w

In avanti fino alla prossima parola esclusa.

e

Avanti fino all'ultimo carattere della parola corrente.

b

Indietro fino all'inizio della parola.

Attraverso la funzione Goto il cursore può eseguire i seguenti spostamenti:

Tasti

Spostamento cursore

g s

Primo carattere riga corrente.

g h

Inizio riga.

g l

Fine riga.

g 8 g

Riga numero 8. (Sostituire numero riga a proprio piacimento)

g g

Inizio file

g e

Fine file

Copia/incolla

Nel caso non dovesse funzionare il copia/incolla da finestre esterne, assicurarsi di aver installato il pacchetto wl-clipboard.

Ricordando che Helix è comunque in grado di incollare del testo selezionato tramite clic centrale del mouse o tap a tre dita sul touchpad, viene qui mostrata una lista di comandi per il copia/incolla in modalità normale:

Tasti

Spostamento cursore

y

Copia testo selezionato da incollare sul medesimo file.

spazio y

Copia testo da incollare su altro file.

p

Incolla dopo il cursore il testo copiato sul medesimo file.

shift p

Incolla prima del cursore il testo copiato sul medesimo file.

spazio p

Incolla dopo il cursore il testo copiato da altro file.

spazio shift p

Incolla prima del cursore il testo copiato da altro file.

Annullare/ripetere azione

In modalità normale:

u

annulla azione

shift u

ripete azione

Selezione multi linea

  1. È possibile procedere in due modi:
    • In modalità normale ripetendo la combinazione shift c il cursore verrà moltiplicato su una linea verticale.

    • Dopo aver selezionato del testo, passando alla modalità di ricerca (tasto s) è possibile digitare la parola da ricercare e quindi premere invio.

Per selezionare tutto il testo in modalità normale digitare il tasto percentuale %.

Elenchi scorciatoie

Come si può intuire una delle maggiori difficoltà nell'utilizzo di un editor di testo di questo genere sta nel memorizzare una lunga lista di scorciatoie da tastiera. Tuttavia Helix mette a disposizione per molte delle sue funzionalità una comoda finestra con relativo elenco di scorciatoie ogni volta che in modalità normale la funzionalità viene richiamata attraverso relativo tasto di attivazione.

Space - tasto: spazio

Premendo il tasto [spazio] (barra spaziatrice) in basso a destra si aprirà una finestra con una lista di funzionalità attivabili premendo un determinato tasto. Per citarne alcune:

  • w invoca la lista comandi per suddividere verticalmente od orizzontalmente una finestra;

  • I tasti y e p offrono le già citate funzionalità di copia/incolla;

  • I tasti e, f e b offrono le già citate funzionalità di ricerca, selezione e apertura file in stile file manager.

  • Il comando k richiama la documentazione ufficiale inerente al linguaggio in utilizzo.

Match - tasto: m

Funzionalità utile a gestire parentesi e virgolette per:

  • inserire parentesi intorno al testo selezionato, ad esempio: m s (

  • selezionare il testo interno alle parentesi: m i m

  • sostituire parentesi intorno a un testo, ad es. [] con {}: m r [ {

  • far saltare il cursore fra la parentesi di apertura e di chiusura: m m

A proposito di parentesi, pur non essendo parte della funzione match, merita una menzione il comando alt o. Ogni volta che viene premuto espande la selezione del testo fino alle virgolette o parentesi più esterne.

File di configurazione

Per adattare Helix alle proprie esigenze è possibile creare ed editare il file ~/.config/helix/config.toml. Ciò può essere fatto direttamente da Helix tramite i seguenti comandi.

  • :config-open: apre il file di configurazione per apportare eventuali modifiche.

  • :config-reload: una volta salvate le modifiche permette di caricare le nuove impostazioni senza dover riavviare Helix.

Il capitolo Keymap della documentazione ufficiale mostra i comandi associati alle scorciatoie da tastiera, molto utile per poter associare un comando a una scorciatoia da tastiera che faccia al proprio caso. Il capitolo Configuration entra maggiormente nel dettaglio.

Le righe che iniziano col carattere # sono commenti.

# Tema
theme = "catppuccin_frappe"

[editor]
# Sezione generica

# Salvataggio automatico quando la finestra dell'editor perde il focus  
auto-save = true
# Visualizza il testo a capo quando la finestra è stretta
soft-wrap.enable = true

[keys.normal]
# Sezione dedicata alla modalità "normale"

# Opzione alternativa di salvataggio file talvolta più comodo di :w
C-q = ":write"

# Bloccare e riattivare il language server protocol
A-s = ":lsp-stop"
A-g = ":lsp-restart"

[keys.insert]
# Sezione dedicata alla modalità "inserisci"

# Muoversi di parola in parola a destra e sinistra tramite i tasti freccia
"C-right" = "move_next_word_start"
"C-left" = "move_prev_word_start"

# Replicare la funzione goto per portare il cursore a inizio linea,
# sul primo carattere di linea e a fine linea
"C-a" = "goto_line_start"
"C-s" = "goto_first_nonwhitespace"
"C-l" = "goto_line_end"

# Salvataggio file
C-q = ":write"

LSP

Per l'installazione dei Language Server Protocol (LSP) consultare la seguente pagina.

Ulteriori risorse


CategoryProgrammazione CategoryProduttivita