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?
È stato utile?

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:

SimpylFold

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!

http://github.com/skyl/vim-config-python-ide

mi piace molto il python_ifold plug .

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top