Qual è il modo consigliato di utilizzare Vim pieghevole per il codice Python
Domanda
Sono interessato a codice di abilitazione pieghevole in Vim per il codice Python. Ho notato diversi modi per farlo.
Qualcuno ha un modo preferito per fare codice Python pieghevole in Vim? Cioè,
- Avete un particolare plug-in Vim che si usa e come?
- Non si utilizza la piegatura manuale o si inserisce marcatori nei commenti?
- Tutti gli altri metodi consigliati per fare il codice pieghevole per Python in Vim?
Soluzione
Personalmente non posso io a convincerlo a lettiera mio codice con i marcatori. Sono diventato abbastanza utilizzato per (ed efficiente) a utilizzare trattino-pieghevole. Insieme al mio mappatura di barra spaziatrice (vedi sotto) per aprire / chiudere le pieghe ei comandi Zr e ZM ho ragione a casa. Perfetto per Python!
nnoremap <space> za
vnoremap <space> zf
Altri suggerimenti
questo file di sintassi per Python . Imposta il metodo di piegatura alla sintassi e pieghe tutte le classi e funzioni, ma nient'altro.
Ancora un altro plug-in per la piegatura di codice Python. Piuttosto semplice, docstring movimentazione, e sul GitHub:
Enjoy!
Python è adatto per piegare il trattino, bit per scrivere il mio codice che utilizza i marcatori in quanto possono sgranocchiare un documento lungo il modo desiderato e può servire come una sorta di sommario. Ho questo nel mio vimrc per capovolgere tra i due quando sto visualizzazione qualcuno elses codice.
#Toggle fold methods \fo
let g:FoldMethod = 0
map <leader>fo :call ToggleFold()<cr>
fun! ToggleFold()
if g:FoldMethod == 0
exe 'set foldmethod=indent'
let g:FoldMethod = 1
else
exe 'set foldmethod=marker'
let g:FoldMethod = 0
endif
endfun
#Add markers (trigger on class Foo line)
nnoremap ,f2 ^wywO#<c-r>0 {{{2<esc>
nnoremap ,f3 ^wywO#<c-r>0 {{{3<esc>
nnoremap ,f4 ^wywO#<c-r>0 {{{4<esc>
nnoremap ,f1 ^wywO#<c-r>0 {{{1<esc>
Credo che pieghevole trattino va bene per python. Sto facendo un repo git multi-ramificato per vim-config idee pitone / django IDE. Forcella via!
mi piace molto il python_ifold
plug .
Prova questo plugin:
http://vim.sourceforge.net/scripts/script.php ? script_id = 515
La sorgente Python viene fornito con un plug-in di sintassi vim insieme a un file vimrc personalizzato. Controllare il pitone FAQ sul vim
Per me la piegatura ideale è quello di piegare solo il class
e def
blocchi, pieghevole trattino è troppo per i miei gusti. Penso che una soluzione elegante è quella di utilizzare il sistema di sintassi come questo uno menzionato da Tomas. Tuttavia, questo è destinato a sostituire il file di sintassi originale e si può finire essendo più vecchio di quello originale (vale a dire che lo script non menziona la sintassi Python 3).
La mia soluzione è quello di mettere in ~/.vim/syntax
cartella un file denominato python.vim
con solo le linee importanti (prese dallo script di cui sopra):
syn match pythonDefStatement /^\s*\%(def\|class\)/
\ nextgroup=pythonFunction skipwhite
syn region pythonFunctionFold start="^\z(\s*\)\%(def\|class\)\>"
\ end="\ze\%(\s*\n\)\+\%(\z1\s\)\@!." fold transparent
hi link pythonDefStatement Statement
Attivare quindi semplicemente il pieghevole con :set foldmethod=syntax
.