¿Cómo puedo deshabilitar globalmente 'Reemplazo de texto'?

He estado buscando una respuesta a esta pregunta por un tiempo, así que supongo que esto solo se puede resolver con un comando de consola.

Lo que quiero hacer es deshabilitar 'Reemplazo de texto' en todas partes en mi Mac. El truco es que tengo una biblioteca de reemplazos de texto que uso en mi iPhone (como ill > I'll), y aparentemente está sincronizada con mi cuenta de iCloud. Como resultado, si hago cambios en un lugar, afecta a todos mis dispositivos en todas partes, por lo que la solución fácil de "eliminar todas las sustituciones de texto de su biblioteca de sustitución" no está disponible.

El reemplazo de texto al que me refiero específicamente es la opción que puede desactivar haciendo clic con el botón derecho en cualquier área de entrada de texto y luego seleccionando 'Sustituciones < Reemplazo de texto' (ver imagen).

Deshabilitado 'Reemplazo de texto'

Sé que puede deshabilitar este campo uno a la vez haciendo clic con el botón derecho en los campos y desmarcando 'Reemplazo de texto', pero está habilitado de forma predeterminada para cada entrada individual en cada campo para cada aplicación (incluido Internet completo y la búsqueda/dirección de mi navegador barra), y periódicamente se vuelve a habilitar en algunas entradas.

Ya he desactivado "Corregir la ortografía automáticamente" de las opciones de texto de mi sistema. (ver imagen)

Deshabilitado 'Corregir ortografía automáticamente'

Y todavía tengo que deshabilitar 'Reemplazo de texto' en cada campo o intentará corregir mi escritura con entradas en ese diccionario.

Utilizo las pestañas de iCloud, la transferencia y otras funciones de "Better Together" de Apple (y no quiero perder la capacidad de rastrear mis dispositivos con 'Buscar mi [dispositivo]'), así que no quiero desasociar mi cuenta de iCloud de mi computadora o dispositivos, pero estaría muy feliz si nunca tuviera que deshabilitar 'Reemplazo de texto' en un campo de entrada nuevamente.

¡Cualquier idea o sugerencia sería muy apreciada!

EDITAR: encontré https://apple.stackexchange.com/a/217387/172938 y https://apple.stackexchange.com/a/121553/172938 , los cuales tienen algunas referencias de consola:

defaults write -g WebAutomaticTextReplacementEnabled -bool truedesde el primer enlace (para habilitar 'Reemplazo de texto' en Safari).

defaults delete -g NSUserDictionaryReplacementItemsdesde el segundo enlace (para eliminar el Diccionario de usuario como se ve en mi segunda imagen ).

Ambos pertenecen tangencialmente a mi problema, pero cada uno tiene el efecto opuesto que estoy buscando.

Si deshabilita iCloud Drive, dejarán de sincronizarse entre dispositivos. No estoy seguro de si hay una configuración más granular dentro de iCloud Drive (por ejemplo, simplemente desmarcando Preferencias del sistema) que evitará la sincronización.
Brian D - ¿alguna vez lograste resolver esto? Si es así, debe publicar la respuesta para que podamos votarla. También te dará algunos puntos de reputación :)
@ j-venator No encontré ninguna solución. Creo que actualizar a Mac OS 10.13 eliminó el problema.
El problema aún existe en macOS 10.13.6 High Sierra.
Esto es especialmente molesto para Spotlight, ya que no hay forma de desactivarlo fácilmente.
Este problema aún existe en MacOS 13.0.1 Ventura

Respuestas (4)

Muy tarde, pero

defaults write -g WebAutomaticTextReplacementEnabled -bool false

Deshabilitará el reemplazo de texto no solo en Safari sino en todas las demás aplicaciones que usan ese método de entrada (por ejemplo, Evernote).

Se requiere reiniciar (al menos a partir de macOS 10.13.6), y la IU de la marca de verificación de la barra de menú no cambiará visualmente dentro de cada aplicación. El cambio también afecta solo a las aplicaciones, y no a Spotlight.

Para aquellos que no lo saben, abra la aplicación Terminal, pegue esa línea y presione Entrar.
Esto no parece tener ningún efecto para mí en Mac OS 10.13.6. Ni siquiera con sudo.
¿Podría ampliar lo que significa "todas las demás aplicaciones que usan ese método de entrada"?

De alguna manera arruiné la base de datos de reemplazo de texto del teclado (arrastre y suelte una imewlconverterplist convertida en la GUI).

Con más de 100k entradas, cualquier entrada se vuelve muy lenta (puedo sentir la latencia), también se ha sincronizado con iOS (la misma ID de iCloud) que no quiero como tengo iRime.

Intenté eliminar manualmente todas las entradas (seleccionando todas) y hacer clic en -pero no funcionó, todas las entradas reaparecen como fantasmas después de unos segundos o simplemente no funcionaron.

Deshabilitar la sincronización de iCloud Drive (Preferencias del sistema) y volver a intentarlo tampoco funcionó. NO importa (activar o desactivar las preferencias del sistema de sincronización).

Resultó ser: abrí Keyboards - Text Replacementen iOS que todavía tenía la enorme lista de entradas en ese momento, la acción desencadenó una sincronización instantánea de iOS a macOS (¡de verdad!).

defaults delete -g NSUserDictionaryReplacementItemsno funcionó para mí en macOS 10.14.

Más tarde me di cuenta (gracias a findy fd), es posible eliminar todos los TextReplacements.db*archivos en ~/Library/KeyboardServices, abrir Keyboard - Text nuevamente para regenerar los archivos DB de reemplazo de texto, problema resuelto.

Los archivos deben ser eliminados y generados.

TextReplacements.db
TextReplacements.db-wal
TextReplacements.db-shm

Trabajó en macOS 10.14 y 10.15.

NOTA: Por último, pero no menos importante, haga una Reset Keyboard Dictionaryen los dispositivos iOS con la enorme lista de entradas para evitar la sincronización con macOS.

IMPORTANTE : tenga en cuenta la sincronización de iCloud en varios dispositivos iOS / macOS, la sincronización puede ser instantánea, por lo que los elementos de reemplazo de texto pueden volver misteriosamente, verifique cada dispositivo y asegúrese de que no se envíen (sincronicen) a otros dispositivos.

Misión cumplida.

Hasta donde yo sé, todavía no hay una buena solución para este problema (a finales de 2018 y 10.14.1). Fue una de las primeras cosas que verifiqué cuando instalé Mojave y me decepcioné una vez más.

Creo que el problema es que la configuración de reemplazo de texto es muy granular, por ventana/pestaña. No se respetará ningún cambio global o por aplicación. (El comando de escritura predeterminado descrito anteriormente puede ayudar en algunas aplicaciones/contextos, pero definitivamente no en la mayoría). El reemplazo de texto está activado de forma predeterminada en cualquier ventana/pestaña nueva, con algunas excepciones extrañas. En las aplicaciones donde toda la acción ocurre en una ventana (por ejemplo, Mensajes), puede apagarlo y olvidarlo en gran medida, pero en las aplicaciones donde constantemente genera nuevas ventanas/pestañas, el reemplazo de texto es imposible de eliminar, si los tiene, los desencadenarás.

Encontré esta solución en la web, cito: https://attonblog.blogspot.com/2019/11/disable-text-replacement-on-safari-in-mojave.html

En conclusión:

Puede eliminar todas las configuraciones de reemplazo de texto en su Mac ejecutando el siguiente comando:

$ echo 'delete from ZTEXTREPLACEMENTENTRY;' | sqlite3 ~/Library/KeyboardServices/TextReplacements.db

$ defaults delete -g NSUserDictionaryReplacementItems

El reemplazo de texto ya no ocurrirá en macOS.

Es solo una eliminación, por lo que si agrega una configuración en el lado de iOS, deberá eliminar la configuración sincronizada nuevamente.

¿Necesitaste un reinicio? Esto no detuvo inmediatamente el reemplazo para mí.