2009-02-11 27 views
13

Esto me ha molestado durante mucho tiempo, y por mucho que lo intente, no puedo encontrar una forma de evitarlo.Cómo evitar que Vim sandee el texto envuelto entre paréntesis

Cuando estoy editando archivos de texto (específicamente látex, pero eso no importa), quiero que se autoenvuelva en 80 columnas. Hace esto, excepto si estoy en el medio de una cláusula entre paréntesis, sangra el texto que es muy molesto. Por ejemplo, esto funciona bien

Here is some text... over 
two lines. 

pero esto no

Here is some text... (over 
         two 
         lines 

hace Si alguien me puede decir cómo desactivar esta opción (sólo para archivos de texto/látex) estaría muy agradecido. Es de suponer que tiene algo que ver con el hecho de que este es el comportamiento deseado en C, pero todavía no puedo descubrir qué está mal.

Respuesta

12
:set nocindent 

Las otras opciones no hacen nada, y la detección de tipo de archivo no lo cambia.

1

: establecidos noai

conjuntos sin guión automático tt pueden ser smartindent sin embargo. Echa un vistazo a la doc y ver si puede encontrar algo más

http://www.vim.org/htmldoc/indent.html

+0

No. Ninguna diferencia. – Draemon

+0

Gracioso, este fue el único que funcionó para mí, ': set nocindent' no hizo nada en mi caso. – FvD

3

Puede echar un vistazo a la opción autoindent:

autoindent - ai

Copiar guión de la línea actual cuando iniciar una nueva línea (escribiendo en el modo Insertar o al usar el comando "o" o "O"). Si no cuenta con escriba algo en la nueva línea excepto y luego escriba , la sangría se borrará nuevamente. Cuando autoindent está activado, el formateo (con el comando "gq" o cuando se llega a 'textwidth' en Insertar modo) usa la sangría de la primera línea. Cuando 'smartindent' o 'cindent' está en la sangría se cambia en casos específicos . La opción 'autoindent' se restablece cuando la opción 'pegar' es establecida. {pequeña diferencia de Vi: después de que se borre la sangría cuando se escribe o, la posición del cursor cuando se mueve hacia arriba o hacia abajo es después de la sangría eliminada; Vi coloca el cursor en algún lugar del sangría eliminado}.

+2

Ah. cindent parece ser el culpable. Intenté autoindent y smartindent pero no hicieron ninguna diferencia. ¿Cuál es la mejor manera de configurar esto para archivos de texto/látex? – Draemon

+1

mira mi otra respuesta, creo que tendrás la solución con sangría de tipo de archivo. – claf

5

Existen tres opciones que puede necesitar para apagar: establecer noai, establecer nosi y setnocin (autoindent, smartindent y cindent).

2

Desde el Vim documentation oficial

filetype plugin de guión en

Esto cambia en tres muy inteligentes mecanismos:

  1. detección de tipo de archivo. Cada vez que comience a editar un archivo, Vim intentará averiguar qué tipo de archivo es . Cuando edite "main.c", Vim indicará la extensión ".c" y
    lo reconocerá como un tipo de archivo "c". Cuando edita un archivo que comienza con "#!/ Bin/sh", Vim lo reconocerá como un "tipo de archivo sh" La detección de tipo de archivo se utiliza para la sintaxis resaltado y los otros dos
    artículos indicados a continuación. |. Tipos de archivos |.

  2. usando el plugin de tipo de archivo archivos Muchos tipos de archivos diferentes son editados con opciones diferentes. Por ejemplo,
    cuando se edita un archivo "c", es muy útil para establecer la opción 'cindent' a sangría automáticamente las líneas. Estas configuración de las opciones comúnmente útiles son
    incluido con Vim en los plugins de tipo de archivo. También puede agregar el suyo, vea
    | write-filetype-plugin |.

  3. Uso de archivos de sangría Al editar programas, la sangría de una línea puede calcularse automáticamente a . Vim viene con estas reglas de sangría para una cantidad de tipos de archivos. Ver |: filetype-indent-on | y 'indentexpr'.

+0

Ya tengo estos. Parece que no cambia cindent – Draemon

+0

Creo que debería intentar buscar un tipo de archivo-complemento escrito por alguien con el mismo problema para los archivos de látex, o tal vez podría tratar de escribir uno. – claf

+0

ah, vale. Echaré un vistazo al latex y veré si es fácil modificar – Draemon

3

Esto puede estar relacionado, al pegar de interfaz gráfica de usuario en la ventana de terminal, vim no puede distinguir los modos de pasta, por lo que para detener cualquier cosas extrañas desde occuring:

set paste 

luego pegar texto

set nopaste 

I tenía problemas similares al intentar pegar texto xml, simplemente seguiría sangrando. :)

gvim, la versión gui de vim, puede detectar modos de pegar.

+0

para booleanos. Use a! para alternar. de esa manera puede usar el historial de comandos:: ¡establecer pegar! :

+0

Este era el problema que estaba teniendo. ¡Gracias! – HaskellElephant

Cuestiones relacionadas