2012-01-24 16 views
9

Establecí el método fold de vim para sangrar, que funciona muy bien cuando escribo Python excepto cuando tengo una línea de comentario. Por ejemplo, si tengo este trozo de código:¿Cómo arreglo vim para doblar correctamente los pliegues que contienen líneas de comentarios de Python?

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

Si tengo mi cursor en la línea de comentario y el tipo "za" Me sale un error diciendo "E490:. No se encontró pliegue" Si tengo el cursor en la línea que comienza con "miCadena =" Voy a geta pliegue así:

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

En ambos casos me gustaría conseguir este redil

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

Básicamente la línea de comentario debe ser tratado como cualquier otra cosa. No he encontrado una respuesta al buscar en la web. ¿Algunas ideas? ¡Gracias!

Respuesta

14

Tienes que configurar foldignore a nada.

:set foldignore= 

De :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

De :help fold-indent:

Algunas líneas se ignoran y consiguen el nivel de la línea de pliegue por encima o por debajo de ella, cualquiera que sea el más bajo. Estas son líneas y líneas blancas o vacías que comienzan en con un carácter en 'foldignore'. El espacio en blanco se omite antes de verificar caracteres en 'foldignore'. Para C, use "#" para ignorar las líneas del preprocesador.

Al menos en mi vim, foldignore se establece en el carácter '#'. Establézcalo en vacío, con un comando como

:set foldignore= 

para tener esas líneas incluidas en el doblez.

Cuestiones relacionadas