Cómo evitar que TextEdit.app agregue atributos extendidos

Recientemente descubrí (sí, llegué tarde al juego) que TextEdit.app está agregando atributos extendidos a cualquier archivo que abra en él. Descubrí esto cuando al azar abrí un script de shell en él y se puso en cuarentena y no se ejecutó.

Rápidamente aprendí que puedo eliminar atributos con uno xattr -c fileo atributos individuales con xattr -d attrname file, pero hacerlo es tedioso/cansino. Resulta que me gusta TextEdit (que sé que está en desgracia entre los profesionales). Tengo otros editores para editar código, así que no busco sugerencias de editores alternativos. Lo que me gustaría saber es si hay alguna forma de que deje de agregar atributos extendidos a los archivos.

Lo intenté defaults write com.apple.LaunchServices LSQuarantine -bool false, pero todavía sucede.

¿O tal vez estoy siendo demasiado exigente? Además del atributo de cuarentena, ¿puede alguno de los otros cruft interponerse en el camino de otros usuarios en sistemas que no son macOS, por ejemplo, cuando se encuentra en un repositorio de github o se implementa de otra manera en otros sistemas?

Mis principales preocupaciones son primero: obtener un indicador de cuarentena que se abrió para una edición rápida/sencilla, y segundo: ediciones de archivos de texto (como README.txt) que están incluidos en un repositorio de codificación social (como github). Mi deseo de evitar los atributos extendidos es el mismo que el motivo por el que elimino los archivos .DS_Store antes de realizar cambios en un repositorio: son específicos del sistema y, por lo demás, son inútiles (¿o posiblemente obstáculos?) para otros. TextEdit es para editar texto. Los scripts y README son archivos de texto. También lo uso para todo tipo de archivos de texto que proceso en la línea de comandos, como los archivos fasta y fastq. TextEdit (aunque definitivamente carece de funciones que tienen otros editores) tiene funciones útiles que otros editores no tienen o no hacen bien, y yo Lo he estado usando desde el principio y lo seguiré usando a pesar de las preferencias u opiniones alternativas de los demás. Solo se convirtió en un problema el otro día, cuando por alguna razón, no pude ejecutar un script que había ejecutado y luego abierto en TextEdit para hacer un cambio muy pequeño, y luego descubrí que no podía ejecutarlo de nuevo.

Pero tal vez me equivoque acerca de mi principal preocupación? Tal vez ni siquiera fue TextEdit el que agregó el atributo de cuarentena, porque no pude reproducir ese problema. Entonces, TextEdit alguna vez agrega el atributo de cuarentena y, de ser así, ¿cuándo?

Escribí un servicio de automatización que puedo usar para eliminar atributos en archivos seleccionados, pero si hay una forma de cambiar el comportamiento de TextEdit, sería preferible. De lo contrario, probablemente también agregaré un comando xattr a mi contenedor de registro.

¿Qué meta da a escribe un mensaje de texto?
@user151019 "com.apple.TextEncoding com.apple.lastuseddate#PS com.apple.metadata:_kMDItemUserTags"
¿Cuál de ellos causa un problema?
Los atributos agregados varían dependiendo de lo que hagas con el archivo y si causan o no un problema es parte de la pregunta que hice, así que me dices. El único que he encontrado que me causó un problema es la bandera de cuarentena. Pero no quiero incluir este cruft en un PR en el repositorio de otra persona. ¿Esto se adhiere al archivo cuando git push?
He probado varios archivos ahora (sin formato, RTF, scripts ejecutables) y solo se agregaron atributos "inofensivos". ¿Puede reproducir un escenario en el que TextEdit agrega un atributo de cuarentena?
Apple me llamó hoy y reconoció que es un problema conocido en Monterey en el que están trabajando. Si tiene una versión anterior, debe intentar convencerlos de que lo arreglen también en su versión.
Parece estar arreglado en 12.3. Pero no se mencionó en las notas de la versión, AppleCare no respondió a mi caso y el informe de error aún está abierto.

Respuestas (3)

TextEdit no debería (y no lo hace) normalmente agregar atributos de cuarentena a los archivos que guarda. Es posible que MacOS esté agregando la cuarentena por alguna otra razón. (¿Dónde estás ahorrando?)

Sin embargo, hay otros atributos extendidos que TextEdit puede agregar durante el curso de la operación normal en MacOS.

Normalmente, los atributos extendidos no se copian en cosas como github, y otras plataformas simplemente no los usan, incluso si están presentes.

También estoy de acuerdo con bmike. Si una aplicación tiene un comportamiento que no le gusta, use otra aplicación.

Gracias. Eso es tranquilizador. ¿Sabes qué agrega el atributo de cuarentena? Supongo que Safari lo hace, pero recuerdo que el script se ejecutó inicialmente y luego, inexplicablemente, no se ejecutó en mi caso. Solo estaba buscando en Google el error cuando aprendí sobre el atributo de cuarentena y los atributos extendidos en general. Desearía poder recordar el orden de los eventos, pero en ese momento, no tenía motivos para estar tan consciente del proceso que estaba usando.
Si lo que dices es cierto, entonces TextEdit hace lo que quiero (o más bien, no hace lo que no quiero en la medida en que me importa). Todavía tengo curiosidad sobre qué aplica el atributo de cuarentena, cuándo y en qué circunstancias. Entonces, la pregunta es, ¿qué significa "normalmente" en su respuesta?
Normalmente, los atributos de cuarentena se agregan a los archivos entrantes: desde Safari y posiblemente a través de conexiones de archivos de red. Sin embargo, tenga en cuenta que hay muchos otros atributos extendidos que Text Edit SÍ agrega.
Consulte también apple.stackexchange.com/questions/431040/… , especialmente la respuesta aceptada.
He usado TextEdit en muchos scripts y esto nunca sucedió hasta hoy. Curiosamente, TextEdit no pudo abrir el script, pero vim aún pudo editarlo.

Apple ha reconocido que este es un problema en el que están trabajando con Monterey. Además de usar otro editor, una solución alternativa no muy satisfactoria es un script de envoltura:

open -e -W $1
xattr -c $1

Desafortunadamente,

  • no ejecutará la línea de limpieza hasta que salga de TextEdit (cerrando todos los documentos abiertos).
  • No funcionará haciendo doble clic en un documento
  • No puede cambiar el abridor predeterminado a un script en la ventana GetInfo.

ACTUALIZACIÓN: Parece que está arreglado en 12.3. Sin embargo,

  • No se mencionó en las notas de la versión.
  • El contacto de AppleCare para mi caso no se ha molestado en hacer un seguimiento
  • el informe de error sigue abierto
¿Puede proporcionar un enlace a donde Apple ha reconocido esto?
No, fue en una llamada telefónica de AppleCare.

Sí, creo que estás siendo demasiado fastidioso. Evitaría que TextEdit altere un archivo al dejar de abrirlo en TextEdit si está seguro de que ese es el culpable. No tenemos ningún problema de este tipo en mi trabajo entre los administradores y desarrolladores de Mac, por lo que quizás un caso de prueba reproducible nos ayude a ayudarlo.

Entiendo que puede ser controvertido decir que no cambie la aplicación, cambie su proceso, pero mi respuesta a este dilema es, en primer lugar, no tener el dilema. Acepta TE por lo que es, no por lo que quieres que sea.

Me sorprendería bastante no encontrar nada más en su flujo de trabajo que sea más adecuado para solucionar cualquier dilema que le causen los atributos de su archivo (lo que no me queda del todo claro según su versión inicial de la pregunta).

Para ir más allá, uso este bit de cuarentena (y todos los demás metadatos que las aplicaciones como TE adjuntan a los archivos) como una característica y no como un error o algo que deba evitarse.

Si TextEdit le está causando problemas, recomendaría las aplicaciones gratuitas BBEdit y VSCode para que pueda probar editores que son más potentes; ambos tienen integración de línea de comandos para que pueda configurarlos como su editor o abrir archivos fácilmente y luego también puede cambiar el inicie servicios para abrir archivos en estas aplicaciones a medida que cambie su preferencia usando Text Edit solo para cuando quiera lo que hace.

Uso el atributo de cuarentena intencionalmente cuando quiero entregar algo y sé que los destinatarios de un archivo/secuencia de comandos eligieron ejecutar la secuencia de comandos/evitar la manipulación en vuelo, etc.

BBEdit también está en la tienda de aplicaciones de Mac si lo prefiere en lugar de la descarga directa, Code no lo está.

Como se señaló en los comentarios, la verdadera solución aquí es subir de nivel el manejo de metadatos y no dejar que los metadatos y los atributos del sistema de archivos arruinen su día.

Esto no responde la pregunta. Tengo otros editores. Está bien que le guste esta característica no anunciada, pero tener la opción de desactivar este comportamiento también sería una buena característica. Simplemente no me gusta BBEdit.
Además, nunca describí esto como un error.
Una parte de mí quiere más votos negativos para finalmente poder obtener una insignia por eliminar una publicación con -4 (aunque creo firmemente que esta es la respuesta correcta para la mayoría y puedo ver hasta dónde pueden llegar mis - votos) Además, mi primera publicación (y con suerte todas las ediciones) responde la pregunta. Tampoco tiene que ser tu respuesta. Los sitios SE existen para una pluralidad de respuestas y usted puede elegir su respuesta como autor de la pregunta. Todos los que tengan reputación de votar deberían hacerlo con entusiasmo. Agradezco tanto los votos como los comentarios, especialmente los críticos.
Esto no solo no responde la pregunta, sino que dije específicamente que me gusta TextEdit, es decir, quiero usarlo. Solo agregué eso porque no estaba buscando sugerencias de aplicaciones de edición de texto alternativas. De hecho, editaré la pregunta para indicar explícitamente este requisito implícito.
RE: "Evitaría que TextEdit altere un archivo al dejar de abrirlo en TextEdit": considerando las dos aplicaciones que ha mencionado, BBEdit y VSCode, también agregue atributos extendidos a los archivos que abren, supongo que ofrecería el ¿El mismo consejo entonces y decirle al OP que deje de usarlos también?
@ user3439894 no, la respuesta correcta es ser inteligente sobre el manejo de atributos en general, no culpar a los editores. ¿Por qué sugeriría algo y luego contrarrestaría lo que dije? No sigo tu lógica. Creo que sus comentarios me hacen darme cuenta de que debería decir eso en mi respuesta. Es clave para mi punto, aquí.
Estaba siendo un poco sarcástico en mi último comentario; sin embargo, la lógica debería ser obvia... es un poco ridículo que sugiera no usar TextEdit y en su lugar usar BBEdit o VSCode cuando también agregan atributos extendidos .
Estoy de acuerdo, @ usuario3439894 Cambié mi redacción sobre la recomendación unos 10 minutos antes de su comentario.