17 votes

Comment puis-je désactiver globalement le "remplacement de texte" ?

Je cherche une réponse à cette question depuis un moment, donc je suppose que cela ne peut être résolu qu'avec une commande console.

Ce que je veux faire, c'est désactiver le remplacement de texte partout sur mon Mac. Le problème, c'est que j'ai une bibliothèque de remplacements de texte que j'utilise sur mon iPhone (par ex. ill > I'll ), et apparemment il est synchronisé avec mon compte iCloud. Par conséquent, si j'apporte des modifications à un endroit, cela affecte tous mes appareils, où qu'ils soient. La solution facile consistant à "supprimer toutes les substitutions de texte de votre bibliothèque de substitutions" n'est donc pas disponible.

Le remplacement de texte auquel je fais spécifiquement référence est l'option que vous pouvez désactiver en faisant un clic droit sur n'importe quelle zone de saisie de texte, puis en sélectionnant " Substitutions < Remplacement de texte " (voir image).

Disabled 'Text Replacement'

Je sais que vous pouvez désactiver cette fonction un champ à la fois en cliquant avec le bouton droit de la souris sur les champs et en décochant l'option "Remplacement de texte", mais elle est activée par défaut pour chaque entrée individuelle dans chaque champ de chaque application (y compris l'ensemble de l'Internet et la barre de recherche/d'adresse de mon navigateur), et elle est périodiquement réactivée sur certaines entrées.

J'ai déjà désactivé la fonction "Correction automatique de l'orthographe" dans les options de texte de mon système. (voir image)

Disabled 'Correct Spelling Automatically'

Et je dois toujours désactiver le remplacement du texte dans chaque champ, sinon il essaiera de corriger ma frappe avec les entrées de ce dictionnaire.

J'utilise les onglets iCloud, le transfert et un certain nombre d'autres fonctionnalités " Better Together " d'Apple (et je ne veux pas perdre la possibilité de suivre mes appareils avec " Find my [device] "), donc je ne veux pas dissocier mon compte iCloud de mon ordinateur ou de mes appareils, mais je serais vraiment heureux de ne plus jamais avoir à désactiver le " remplacement de texte " dans un champ de saisie.

Toute suggestion ou idée serait grandement appréciée !

EDIT : J'ai trouvé https://apple.stackexchange.com/a/217387/172938 et https://apple.stackexchange.com/a/121553/172938 qui ont toutes deux des références à la console :

defaults write -g WebAutomaticTextReplacementEnabled -bool true du premier lien (pour activer le "remplacement de texte" dans Safari).

defaults delete -g NSUserDictionaryReplacementItems à partir du deuxième lien (pour supprimer le dictionnaire utilisateur comme on le voit dans ma deuxième image ).

Les deux se rapportent tangentiellement à mon problème, mais chacun à l'effet opposé que je recherche.

10voto

ArthurClune Points 59

Très tard, mais

defaults write -g WebAutomaticTextReplacementEnabled -bool false

Désactive le remplacement de texte non seulement dans Safari mais aussi dans toutes les autres applications qui utilisent cette méthode de saisie (par exemple Evernote).

Un redémarrage est nécessaire (du moins à partir de MacOS 10.13.6), et l'interface de la barre de menu ne change pas visuellement dans chaque application. En outre, ce changement ne concerne que les applications, et non Spotlight.

1voto

Kevin McMahon Points 2195

Je me suis trompé dans la base de données de remplacement du clavier par du texte (glisser-déposer un imewlconverter plist converti dans l'interface graphique).

Avec 100k+ entrées toute entrée devient très lente (je peux sentir la latence), il a également été synchronisé à iOS (même ID iCloud) que je ne veux pas comme j'ai iRime .

J'ai essayé de supprimer manuellement toutes les entrées (en les sélectionnant toutes) et de cliquer sur l'icône - mais cela n'a pas fonctionné, toutes les entrées réapparaissent comme des fantômes après quelques secondes ou n'ont tout simplement pas fonctionné.

Désactiver la synchronisation iCloud Drive (System Prefs) et réessayer, n'a pas fonctionné non plus. Cela n'a PAS d'importance (activer ou désactiver la synchronisation des System Prefs).

Ça s'est avéré être : J'ai ouvert Keyboards - Text Replacement sur iOS qui disposait encore de l'énorme liste d'entrées à l'époque, l'action a déclenché une synchronisation instantanée de iOS à MacOS (vraiment !).

defaults delete -g NSUserDictionaryReplacementItems n'a pas fonctionné pour moi sur MacOS 10.14.

Plus tard, j'ai compris (grâce à find et fd ), il est possible de supprimer tous les TextReplacements.db* dossiers sous ~/Library/KeyboardServices Ouvrez Keyboard - Text à nouveau pour régénérer les fichiers DB de remplacement du texte, le problème est résolu.

Les fichiers doivent être supprimés et générés

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

Fonctionne à la fois sur MacOS 10.14 et 10.15.

NOTE : Enfin, faites une Reset Keyboard Dictionary sur les appareils iOS avec l'énorme liste d'entrées pour éviter la synchronisation avec MacOS.

IMPORTANT Attention à la synchronisation iCloud sur plusieurs appareils iOS / MacOS, la synchronisation peut être instantanée et les éléments de remplacement du texte peuvent revenir mystérieusement. Vérifiez chaque appareil et assurez-vous qu'ils ne poussent pas (synchronisent) vers d'autres appareils.

Mission accomplie.

0voto

Big Cloits Points 1

À ma connaissance, il n'y a toujours pas de bonne solution à ce problème (à la fin 2018 et à la 10.14.1). C'est l'une des premières choses que j'ai vérifiées lorsque j'ai installé Mojave, et j'ai été déçu une fois de plus.

Je pense que le problème est que le paramètre de remplacement du texte est très granulaire, par fenêtre/onglet. Il n'existe pas d'option globale ou par application qui soit respectée. (La commande defaults write décrite ci-dessus peut aider dans certaines applications/contextes, mais certainement pas la plupart). Le remplacement du texte est toujours activé par défaut dans toute nouvelle fenêtre/onglet, à quelques exceptions près. Dans les applications où toute l'action se passe dans une seule fenêtre (par exemple Messages), vous pouvez la désactiver et l'oublier, mais dans les applications où vous générez constamment de nouvelles fenêtres/onglets, le remplacement de texte est effectivement impossible à tuer - si vous en avez, vous les déclencherez.

0voto

user236501 Points 1741

J'ai trouvé cette solution sur le web, je la cite : https://attonblog.blogspot.com/2019/11/disable-text-replacement-on-safari-in-mojave.html

En conclusion :

Vous pouvez supprimer tous les paramètres de remplacement du texte sur votre Mac en exécutant la commande suivante :

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

$ defaults delete -g NSUserDictionaryReplacementItems

Le remplacement du texte ne se fera plus sur MacOS.

Il s'agit simplement d'une suppression, donc si vous ajoutez un paramètre du côté iOS, vous devrez à nouveau supprimer le paramètre synchronisé.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X