Eclipse y Ventanas nuevas líneas


Tuve que mover mi espacio de trabajo Eclipse de Linux a Windows cuando mi escritorio se bloqueó. Una semana después lo copio de nuevo a Linux, codifico felizmente, me comprometo con CVS. Y por desgracia, las nuevas líneas de Windows han contaminado muchos archivos, por lo que CVS diff vuelca todo el archivo, incluso cuando cambié una línea o dos!

Podría cocinar un script, pero me pregunto si arruinará mis archivos de proyecto Eclipse.

Author: Line, 2009-12-11

6 answers

Como se mencionó aquí y aquí:

Establezca la codificación de archivos en UTF-8 y los finales de línea para los archivos nuevos en Unix, de modo que los archivos de texto se guarden en un formato que no sea específico del sistema operativo Windows y se compartan más fácilmente entre escritorios de desarrolladores heterogéneos:

  • Vaya a las preferencias del espacio de trabajo (General:Espacio de trabajo)
  • Cambie la Codificación del archivo de texto a UTF-8
  • Cambie el Nuevo Delimitador de Línea del Archivo de Texto a Otro y elija Unix de la lista de selección

texto alt

  • Nota: para convertir los finales de línea de un archivo existente, abra el archivo en Eclipse y elija File : Convert Line Delimiters to : Unix

Consejo : Puede convertir fácilmente el archivo existente seleccionando luego en el Explorador de paquetes y luego yendo a la entrada del menú File : Convert Line Delimiters to : Unix

 333
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-24 09:41:29

Tenía los mismos archivos contaminados por eclipse incluso con un cambio de línea. Solución: Eclipse git settings - > Añadir entrada: Clave: core.autocrlf Valores: true

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

 9
Author: user988282,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-11 09:55:01

Hay una útil utilidad bash - dos2unix - que es un convertidor de formato de archivo de texto DOS/MAC a UNIX, que si no está ya instalado en su distribución, debería poder instalarse fácilmente a través de un administrador de paquetes. página man de dos2unix

 7
Author: Ben Hayden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-11 06:42:52

Además de las soluciones de Eclipse y la herramienta mencionada en otra respuesta, considere flip. Puede 'voltear' de cualquier manera entre saltos de línea normales y de Windows, y hace cosas buenas como preservar la marca de tiempo del archivo y otras estadísticas.

Puedes usarlo así para resolver tu problema:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(Pongo una cláusula para ignorar su.directorio git, en caso de que uses git, pero dado que flip ignora los archivos binarios por defecto, es posible que no necesites esto.)

 6
Author: Michael Scheper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:45

Podrías intentarlo. El problema es que Windows inserta un retorno de carro, así como un avance de línea cuando se le da una nueva línea. Los sistemas Unix simplemente insertan una línea de alimentación. Por lo tanto, el carácter de retorno de carro adicional podría ser la razón por la que su eclipse se equivoca con las nuevas líneas.

Tome uno o dos archivos de su proyecto y conviértalos. Puedes usar Notepad++ para hacerlo. Simplemente abra el archivo, vaya a Formato- > Convertir a Unix (cuando esté utilizando Windows).

En Linux solo prueba esto en un línea de comandos:

sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
 3
Author: Ham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-11 06:39:45

Para eliminar recursivamente los retornos de carro (\r) de los archivos CVS/ * en todos los directorios secundarios, ejecute lo siguiente en un shell unix:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;
 3
Author: Gabe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-17 18:33:37