Python e Vim: differenze tra le versioni

guida estesa e verificata
(guida estesa e verificata)
 
(9 versioni intermedie di uno stesso utente non sono mostrate)
Riga 9: Riga 9:


<pre>syntax on</pre>
<pre>syntax on</pre>
Se invece si volesse abilitare questa funzionalità unicamente per il proprio utente, o se non si disponesse dei privilegi di superutente, si può creare un file <code>~/.vimrc</code> contenente quella riga che dunque andrà a sovrascrivere il comportamento di default.


== Gestire l'indentazione: TAB, spazi e ''autoindent'' ==
== Gestire l'indentazione: TAB, spazi e ''autoindent'' ==
Riga 69: Riga 71:
Aggiungendo nell'ormai famoso <code>/etc/vim/vimrc</code>
Aggiungendo nell'ormai famoso <code>/etc/vim/vimrc</code>


<pre>map <f5> :w<CR>:!python %<CR></pre>
<pre>
" Running Python by pushing F5
map <f5> :w<CR>:!python %<CR>
</pre>


oppure, nel caso in cui si usi Python 3,
oppure, nel caso in cui si usi Python 3,


<pre>map <f5> :w<CR>:!python3 %<CR></pre>
<pre>
" Running Python 3 by pushing F5
map <f5> :w<CR>:!python3 %<CR>
</pre>


alla pressione del tasto F5 verrà eseguito <code>python</code> (o <code>python3</code>) passando come parametro il file corrente (indicato da <code>'''%'''</code>).
alla pressione del tasto F5 verrà eseguito <code>python</code> (o <code>python3</code>) passando come parametro il file corrente (indicato da <code>'''%'''</code>).
Riga 85: Riga 93:
[[image: Python-gvim-7-omnicompletion.png|thumb|Screenshot della funzione di omnicompletion di Vim 7 con linguaggio di programmazione Python.]]
[[image: Python-gvim-7-omnicompletion.png|thumb|Screenshot della funzione di omnicompletion di Vim 7 con linguaggio di programmazione Python.]]


Per il Python questa funzione permette di completare i nomi delle classi dei metodi e degli attributi tramite un comodo menu contestuale. Inoltre viene anche visualizzata contemporaneamente la docstring del metodo o della classe che si sta completando.
Per il Python questa funzione permette di completare i nomi delle classi, dei metodi e degli attributi tramite un comodo menu contestuale. Inoltre viene anche visualizzata contemporaneamente la docstring del metodo o della classe che si sta completando.


Una immagine vale più di mille parole. Potete notare la funzione di omnicompletion in funzione nello screenshot qui a fianco. Notare come sulla parte superiore della finestra sia apparsa automaticamente la documentazione della classe sulla quale si sta utilizzando l'autocompletamento.
Una immagine vale più di mille parole. Potete notare la funzione di omnicompletion in funzione nello screenshot qui a fianco. Notare come sulla parte superiore della finestra sia apparsa automaticamente la documentazione della classe sulla quale si sta utilizzando l'autocompletamento.


Per effettuare l'autocompletamento, quando si è in modalità inserimento basta premere <code>Ctrl+x Ctrl+o</code>.
Per effettuare l'autocompletamento, quando si è in modalità inserimento basta premere <code>'''Ctrl+x Ctrl+o'''</code>.
 
Per spostarsi nel riquadro della finestra occupato dalla documentazione o per chiuderlo si utilizzano i [[VimCS:_Gestione#Finestre|classici comandi di Vim]] per la gestione delle finestre, quali <code>'''CTRL+w w'''</code> e <code>''':close'''</code>.


A volte è anche comodo effettuare un autocompletamento ''non intelligente'', basato sulle parole presenti nel file corrente. Questo autocompletamento si ottiene premendo <code>CTRL+n</code>. Quest'ultimo metodo può risultare utile per completare nomi di variabili o di funzioni.
A volte è anche comodo effettuare un autocompletamento ''non intelligente'', basato sulle parole presenti nel file corrente. Questo autocompletamento si ottiene premendo <code>'''CTRL+n'''</code>. Quest'ultimo metodo può risultare utile per completare nomi di variabili o di funzioni.


== Tips and Tricks ==
== Tips and Tricks ==
Riga 97: Riga 107:


# '''Commentare un blocco di codice'''
# '''Commentare un blocco di codice'''
#* Premere CTRL+v e selezionare le righe di codice interessate;
#* Premere <code>'''CTRL+v'''</code> e selezionare le righe di codice interessate;
#* premere <code>'''I'''</code> (i grande) e digitare il carattere interessato (solitamente <code>#</code>);
#* premere <code>'''I'''</code> (i maiuscola) e digitare il carattere interessato (solitamente <code>#</code>);
#* premere ESC;
#* premere ESC;
#* spostarsi dalla riga corrente.
# '''Indentare e deindentare un blocco di codice'''
# '''Indentare e deindentare un blocco di codice'''
#* Premere <code>'''V'''</code> (shift + v) ed entrare in Visual Mode;
#* Premere <code>'''v'''</code> ed entrare in modalità "visuale linea";
#* Selezionare la parte di codice da in/deindentare;
#* selezionare la parte di codice da in/deindentare;
#* Premere <code>'''>'''</code> per indentare o <code>'''<'''</code> per deindentare di 1 TAB.
#* premere <code>'''>'''</code> per indentare o <code>'''<'''</code> per deindentare di 1 TAB.




'''Nota:'''
In alternativa al metodo indicato al punto 1, per commentare un blocco di testo è possibile mappare un tasto qualsiasi che faccia tutto il lavoro "sporco".
In alternativa al metodo indicato al punto '''1''', per commentare un blocco di testo è possibile mappare un tasto qualsiasi che faccia tutto il lavoro "sporco".


Perchè ciò avvenga, basterà aggiungere all'interno di ''.vimrc'' lo snippet:
Perché ciò avvenga, basterà aggiungere all'interno del file di configurazione lo snippet:
<pre>
<pre>
" #commenti python
" Python comments: # for adding and - for removing
map # :s/^/#/<CR>
map # :s/^/#/<CR>
map - :s/^#//<CR>
map - :s/^#//<CR>
</pre>
</pre>
La semplice digitazione del carattere  "'''#'''" farà in modo che il blocco in quel momento selezionato sia commentato in automatico, quella del carattere  "'''-'''" , invece, lo decommenterà.
La semplice digitazione del carattere  <code>'''#'''</code> farà in modo che il blocco in quel momento selezionato sia commentato in automatico; quella del carattere  <code>'''-'''</code> invece lo decommenterà.


== Conclusioni ==
== Conclusioni ==
Riga 127: Riga 137:
{{Autori
{{Autori
|Autore = [[Utente:TheNoise|~ The Noise]]
|Autore = [[Utente:TheNoise|~ The Noise]]
|Verificata_da =
:[[Utente:Stemby|Stemby]] 13:08, 23 mar 2015 (CET)
|Numero_revisori = 1
|Estesa_da =
: [[Utente:Stemby|Stemby]] 13:08, 23 mar 2015 (CET)
}}
}}


[[Categoria:Elaborazione testi]][[Categoria:Programmi da terminale]][[Categoria:Python]]
[[Categoria:Elaborazione testi]][[Categoria:Programmi da terminale]][[Categoria:Python]]
914

contributi