¿Cómo eliminar automáticamente los espacios en blanco finales en Eclipse?
eclipse-plugin whitespace (14)
La pregunta tiene dos partes, una de las cuales ya tengo la respuesta.
- ¿Cómo eliminar automáticamente los espacios en blanco finales del archivo completo que se está editando ? -> Respuesta: use el complemento AnyEdit , que se puede configurar para hacer eso en cualquier guardado en el archivo.
- ¿Cómo eliminar automáticamente los espacios en blanco finales solo de las líneas que cambié ? -> Esto no lo sé y agradecería cualquier ayuda.
- Eliminar espacios en blanco de todo el archivo que se está editando :
Preferencias -> Java -> Editores -> Guardar acciones -> marcar Realizar las acciones seleccionadas en guardar -> marcar Acciones adicionales -> hacer clic en Configurar .. -> ir a la pestaña Organización de código -> marcar Eliminar espacios en blanco finales -> seleccionar Todas las líneas .
- Eliminando los espacios en blanco solo de las líneas que cambié :
Preferencias -> Java -> Editor -> Guardar acciones -> marcar " Realizar las acciones seleccionadas en guardar -> marcar Formato del código fuente -> seleccionar Formato de líneas editadas .
Tenga en cuenta que no es necesario hacer clic en Configurar la configuración del formateador en la página del formateador : todos los estilos de código incluyen automáticamente la eliminación de espacios en blanco. Al menos no pude encontrar una configuración para esto en la configuración del Formatter, y funcionó de manera GoogleStyle Convenios de Java incorporados, Eclipse, Eclipse 2.1 y GoogleStyle .
Al utilizar esta configuración, obviamente también debe desactivar la solución a la parte 1 de la pregunta.
Eclipse version checked: 4.5.2
Como dijo @Malvineous, no es profesional sino una solución alternativa usar el método Buscar / Reemplazar para eliminar el espacio al final (a continuación se incluye la pestaña U + 0009 y el espacio en blanco U + 0020).
Solo presiona Ctrl + F (o comando + F)
- Encuentra
[/t ][/t ]*$
- Reemplazar con una cadena en blanco
- Usar expresiones regulares
- Reemplaza todo
extra:
Para eliminar el espacio inicial, encuentre ^[/t ][/t ]*
lugar de [/t ][/t ]*$
Para eliminar líneas en blanco, busque ^/s*$/r?/n
En caso de necesidad, para aquellos editores que no admiten la eliminación de espacios en blanco al final (por ejemplo, el editor XML), puede eliminarlo de todas las líneas haciendo una búsqueda y reemplazando, habilitando expresiones regulares, y luego encontrando "[/ t] + $ "y reemplazándolo con" "(en blanco). Probablemente haya una expresión regular mejor para hacerlo, pero me funciona sin necesidad de instalar AnyEdit.
Es imposible hacerlo en Eclipse de forma genérica en este momento, pero se puede cambiar con el conocimiento básico de Java y algún tiempo libre para agregar soporte básico para esta https://bugs.eclipse.org/bugs/show_bug.cgi?id=180349
El problema dependiente: https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173
Hay una forma realmente fácil de hacer esto con sed, la herramienta de línea de comandos de Unix. Probablemente podrías crear una macro en Eclipse para ejecutar esto:
sed -i ''s/[[:space:]]*$//'' <filename>
Haz lo siguiente:
Preferencias -> Java -> Editor -> Guardar acciones
No necesitas ningún plugin para hacerlo. Por ejemplo, si codifica JAVA, puede borrar espacios en blanco finales configurando acciones de guardado:
Eclipse 3.6
Preferencias -> Java -> Editores -> Guardar acciones -> Comprobar Realice las acciones seleccionadas al guardar -> Comprobar acciones adicionales -> Haga clic en el botón Configurar ...
En la pestaña Organización de código , marque Eliminar espacios en blanco finales
No tengo conocimiento de ninguna solución para la segunda parte de su pregunta. La razón es que no está claro cómo definir que he cambiado . Cambiado cuando? Solo entre 2 salvados o entre compromisos ... Básicamente - olvídalo.
Supongo que le gustaría seguir alguna pauta, pero no toque el resto del código. Pero la guía debe usarse en general, y no para mordeduras y piezas. Así que mi sugerencia es: cambie todo el código a la pauta: es una operación que se realiza una sola vez, pero asegúrese de que todos sus desarrolladores tengan el mismo complemento (AnyEdit) con la misma configuración para el proyecto.
Para PHP también hay una opción:
Puede asignar una clave en Eclipse para eliminar manualmente los espacios en blanco finales en todo el archivo, pero solo a pedido en lugar de automáticamente al guardar. (Preferencia / Claves y luego asigne un conjunto de claves a Archivar / Eliminar espacios en blanco). Esto puede ser útil si desea sanear todos los archivos nuevos, pero mantenga el código legado intacto.
Otra estrategia es activar la visualización visual del espacio en blanco, por lo que al menos sabrá cuándo está agregando un espacio en blanco al final. Por lo que sé, no hay forma de mostrar solo espacios en blanco, pero me complacerá que se demuestre lo contrario.
Supongo que sus preguntas son con respecto al código de Java. Si ese es el caso, en realidad no necesita complementos adicionales para lograr 1). Simplemente puede ir a Preferencias -> Java -> Editor -> Guardar acciones y configurarlo para eliminar los espacios en blanco finales .
Por lo que parece, también quieres que este sea un escenario para todo el equipo, ¿verdad? Para hacer la vida más fácil y evitar tener que recordar configurarla cada vez que tenga un nuevo espacio de trabajo, puede configurar la acción de guardar como una preferencia específica del proyecto que se almacena en su SCM junto con el código.
Para hacer eso, haga clic derecho en su proyecto y vaya a Propiedades -> Editor de Java -> Guardar acciones . Desde allí puede habilitar la configuración específica del proyecto y configurarla para eliminar los espacios en blanco finales (entre otras cosas útiles).
NB : esta opción se ha eliminado en Eclipse Kepler (4.3) y en las siguientes versiones.
NB # 2: la opción parece estar de vuelta en Eclipse Luna - Luna Service Release 1a (4.4.1)
Utilicé este comando para git: git config --global core.whitespace cr-at-eol
Se eliminan los caracteres ^M
que se arrastran.
Yo diría que AnyEdit también. No proporciona estas funcionalidades específicas. Sin embargo, si usted y su equipo utilizan las funciones de AnyEdit en cada acción de guardar, al abrir un archivo, no debe haber ningún espacio en blanco al final.
Por lo tanto, si modifica este archivo y si agrega nuevos espacios finales, durante la operación de guardado, AnyEdit eliminará solo estos nuevos espacios, ya que son los únicos espacios finales en este archivo.
Si, por algún motivo, necesita mantener los espacios finales en las líneas que no modificó, entonces no tengo una respuesta para usted y no estoy seguro de que exista este tipo de característica en ningún complemento de Eclipse ...
PyDev puede hacerlo con Ctrl + Shift + F si tiene la opción de formateador de código configurada para hacerlo, o durante el guardado :
Eclipse -> Ventana -> Preferencias -> PyDev -> Editor -> Estilo de código -> Formateador de código :
Yo uso al menos estos:
- Formato automático antes de guardar
- ¿Líneas rectas correctas?
- Añadir nueva línea al final del archivo