2013-05-15 10 views
6

Voglio usare vim per scrivere il codice Python ma c'è un problema sull'indentazione automatica. Prima ho scaricato l'ultimo python.vim da http://www.vim.org/scripts/script.php?script_id=790 e lo ho inserito nella directory corretta. Poi ho modificato il mio vimrc.Il rientro automatico non funziona quando si utilizza il codone di codifica vim

syntax on 
set nu 
set tabstop=4 
set softtabstop=4 
set shiftwidth=4 
"set cindent 
set autoindent 
set smartindent 
set expandtab 
set filetype=python 
au BufNewFile,BufRead *.py,*.pyw setf python 

ora scopro che le parole chiave come 'per', 'se', 'mentre' possono autoindent perfettamente. Ma non funziona su "def", "try", "except". Cosa devo fare? Grazie mille.

risposta

7

Ho questa linea nel mio vimrc da molto tempo, non so se al giorno d'oggi c'è modo migliore. ma potresti almeno provarci.

set cindent 
autocmd FileType python setlocal foldmethod=indent smartindent shiftwidth=4 ts=4 et cinwords=if,elif,else,for,while,try,except,finally,def,class 

e devo

filetype plugin indent on 

troppo

+0

E 'una buona idea e funziona. Grazie mille :) –

+0

Quando aggiungo "rientro plugin di tipo file" su vimrc, ottengo il rientro automatico corretto. Grazie. –

1

Questo script vim si è collegato al non fare qualsiasi auto-indentazione, solo l'evidenziazione della sintassi.

L'auto-indentazione si sta osservando è quello che è costruito in vim, è stato progettato per la codifica C, e riconosce solo le parole chiave descritte qui:

http://vimdoc.sourceforge.net/htmldoc/options.html#%27cinwords%27

Ecco perché funziona per if e while ma non def (non c'è def in C). L'hai acceso con set cindent.

Si consiglia di provare un altro script come questo:

http://www.vim.org/scripts/script.php?script_id=974

+0

In realtà quando aggiungo "rientro plugin di tipo file" su vimrc, ottengo il rientro automatico corretto. Questo significa che lo script a cui mi sono collegato ha indentazione automatica ma non l'ho acceso? –

Problemi correlati