¿Por qué vim está creando archivos con finales de línea de DOS?

15

yo tengo

set fileformat=unix

en mi .vimrcy, sin embargo, si creo un archivo en vim(ejecutándose en Cygwin) persiste en la creación de archivos en formato DOS, y tengo que ejecutarlos a través dedos2unix para limpiarlos. (Supongo que realmente no tengo que hacerlo, ya que Git los limpia para mí, pero me molesta que un editor de texto de Unix, que he instruido específicamente para usar finales de línea de Unix, los esté contaminando con basura adicional .)

¿Por qué sucedería esto? ¿Cómo puedo arreglarlo? (Y por "arreglar" no me refiero a algo que me requiera convertir cada archivo individualmente. Eso no es una solución. Eso es lo que está totalmente roto).

iconoclasta
fuente
Apuesto a que este es un problema de Cygwin. Hay una opción en Cygwin para elegir el estilo de final de línea, pero no he visto ninguna evidencia de que realmente funcione. Mi universidad usa Eclipse con cygwin para la colección del compilador GNU y me encontré con un comportamiento extraño con el getlineque resultó ser cygwin haciendo algo extraño. Resultó en un estilo en CR+LFlugar de Unix LFo incluso dos LF+CR. Debe verificar y ver qué estilo de finalización de línea ha configurado en cygwin pero YMMV. Ver también cygwin.com/faq/faq-nochunks.html#faq.api.cr-lf
Matt
@Matt: DOS / Windows usa CR+LF, no LF+CR.
echristopherson el
Tenía miedo de cambiarlos si no revisaba dos veces, si había pasado un semestre desde que tuve ese problema. Los finales de línea eran diferentes cuando se ejecutaba en cygwin y cuando se ejecutaba en el indicador de dos y recuerdo estar convencido de que era al revés de lo que esperaría de DOS, pero como puede ver, es fácil para mí cambiar.
Matt
¿Estás seguro de que este .vimrc es incluso leído? Intente cometer un error deliberado y vea si vim lo detecta.
un CVn
@ MichaelKjörling: sí, lo probé y se está leyendo. Comenté mi set numberlínea, y entró en vigencia, y la descomentó y eso entró en vigencia. También agregué "bla, bla, bla" en la parte inferior y obtuve "Presione ENTRAR o escriba comando para continuar" cuando abrí algo, pero extrañamente no había ningún mensaje de error antes (a menos que fueran letras negras sobre fondo negro).
iconoclasta el

Respuestas:

21

La configuración solo fileformatpuede no ser suficiente, dependiendo de algunos factores. Prueba esto:

set fileformat=unix
set fileformats=unix,dos
"set nobinary

Para entender lo que hacen, eche un vistazo a :help fileformats , etc.

Creo que puedo reproducir sus problemas, utilizando el vim.exeproporcionado por gitWindows. El uso de la configuración anterior solucionó el problema para mí. En el ejemplo set nobinaryse comenta porque no creo que lo necesite, lo dejé allí como un consejo que podría ayudar en caso de que necesite investigar más.

janos
fuente