2012-01-24 10 views
9

Ho impostato il metodo fold di vim su indent che funziona molto bene quando si scrive Python tranne quando ho una riga di commento. Per esempio, se ho questo pezzo di codice:Come posso correggere vim per piegare correttamente i rientri contenenti righe di commento Python?

def myFunction(): 
    # here is my comment 
    myString = "hello" 
    myInt = 2 

Se ho il mio cursore sulla linea di commento e di tipo "ZA" Ottengo un errore che dice "E490:. Nessun piega trovato" Se ho il cursore sulla riga che inizia con "myString =" Io Geta piega così:

def myFunction(): 
    # here is my comment 
+--- 2 lines: myString = "hello" ------------------------- 

In entrambi i casi mi piacerebbe ottenere questo duplice:

def myFunction(): 
+--- 3 lines: # here is my comment ------------------------- 

Fondamentalmente la riga di commento dovrebbe essere trattato come qualsiasi altra cosa Non ho trovato una risposta dalla ricerca sul web. Qualche idea? Grazie!

risposta

14

È necessario impostare il foldignore su nulla.

:set foldignore= 

Da :help foldignore:

'foldignore' 'fdi' string (default: "#") 

    Used only when 'foldmethod' is "indent". Lines starting with 
    characters in 'foldignore' will get their fold level from surrounding 
    lines. White space is skipped before checking for this character. 
    The default "#" works well for C programs. See |fold-indent|. 
3

Da :help fold-indent:

Alcune linee vengono ignorate e di ottenere il livello di piegatura della linea di sopra o al di sotto di essa, tutto ciò che è il più basso. Si tratta di righe o righe vuote o bianche a partire da con un carattere in 'foldignore'. Lo spazio bianco viene saltato prima di cercare i caratteri in "foldignore". Per C usa "#" per ignorare le linee del preprocessore.

Almeno in my vim, foldignore è impostato sul carattere '#'. Impostare a vuoto, con un comando come

:set foldignore= 

avere quelle linee incluse nella piega.

Problemi correlati