Diese Liste, auf die über Systemeinstellungen/Tastatur/Text zugegriffen wurde, verschwand, als ich auf 10.9.2 aktualisierte (sie überlebte das erste Update auf Mavericks). Ich schreibe viel für die Wissenschaften und habe Jahre damit verbracht, diese Liste aufzubauen. (aktuelles MacBook Pro, 10.9.2).
Einige Seiten sagen, ich solle die Datei /Users/username/Library/Preferences/.GlobalPreferences.plist aus einer Sicherung abrufen, aber ich habe die HD meines anderen Computers durchsucht (gleiche Spezifikationen, aber mit 10.9.1, Liste Replace/With intakt ), und ich kann keine solche Datei finden.
Andere Websites sagen, dass es sich in 10.9 im "NSUserDictionaryReplacementItems-Array" befindet, aber leider weiß ich nicht, was das bedeutet. (Ich bin ein Benutzer, kein Programmierer.)
Ich habe gehört, dass es möglicherweise mit der neuen Fähigkeit von Mavericks verknüpft ist, diese Liste mit iOS-Geräten zu synchronisieren, aber das erklärt immer noch nicht, warum ich sie auf meinem 10.9.1-Computer nicht finden kann, der mit meinem Telefon synchronisiert wurde (iPhone 4, iOS 5.x) seit Jahren.
In 10.9 werden die Textersetzungen auch in gespeichert ~/Library/Dictionaries/CoreDataUbiquitySupport/$USER~*/UserDictionary/local/store/UserDictionary.db
. UserDictionary.db
wird auch dann verwendet, wenn iCloud deaktiviert ist und Vorrang vor hat .GlobalPreferences.plist
.
Wenn Sie beispielsweise defaults write -g NSUserDictionaryReplacementItems '({on=1;replace=aa;with=bb;})'
TextEdit ausführen und beenden und erneut öffnen, wird in TextEdit aa
durch ersetzt , aber die Änderungen werden rückgängig gemacht, wenn Sie die Registerkarte „Text“ im Einstellungsbereich „Tastatur“ öffnen.bb
Sie können beides ändern UserDictionary.db
, .GlobalPreferences.plist
indem Sie ein Skript wie dieses verwenden:
date=$(date +%s)
while read -r replace with; do
plist+="{on=1;replace=\"$replace\";with=\"$with\";},"
sql+="INSERT INTO 'ZUSERDICTIONARYENTRY' VALUES($((++i)),1,1,0,0,0,0,$date,NULL,NULL,NULL,NULL,NULL,\"$with\",\"$replace\",NULL);"
done < <(sed 's/\\/\\\\/g;s/"/\\"/g' ~/replacements.txt)
sqlite3 ~/Library/Dictionaries/CoreDataUbiquitySupport/$USER~*/UserDictionary/local/store/UserDictionary.db "delete from ZUSERDICTIONARYENTRY;$sql"
defaults write -g NSUserDictionaryReplacementItems "(${plist%?})"
In 10.8 und früheren Versionen von OS X werden die Textersetzungen im NSUserReplacementItems
Array (nicht NSUserDictionaryReplacementItems
) in gespeichert ~/Library/Preferences/.GlobalPreferences.plist
.
Ich habe einen einfacheren Weg gefunden, es zu tun.
Verwenden Sie diese Schritte, um Ihre vorhandenen Textersetzungen zu exportieren:
Öffnen Sie Systemeinstellungen > Tastatur > Text.
Wählen Sie die Verknüpfungen aus, die Sie exportieren möchten. Wenn Sie alle Ihre Textersetzungen exportieren möchten, wählen Sie eine davon aus und wählen Sie dann „Alle auswählen“ aus dem Menü „Bearbeiten“.
Ziehen Sie die ausgewählten Verknüpfungen auf den Desktop. Dadurch wird eine Datei mit dem Namen Text Substitutions.plist erstellt, die die von Ihnen ausgewählten Ersetzungen enthält.
Schließen Sie das Fenster Systemeinstellungen.
Verwenden Sie diese Schritte, um die Plist-Datei zu importieren, die Sie in einem anderen Benutzerkonto erstellt haben:
Kopieren Sie die zuvor erstellte plist-Datei in den Ordner /Users/Shared/ oder auf ein externes Laufwerk.
Melden Sie sich mit dem Benutzerkonto an, in dem Sie diese Textersetzungen verwenden möchten.
Öffnen Sie Systemeinstellungen > Tastatur > Text.
Ziehen Sie die Datei „Text Substitutions.plist“ in den Bereich des Fensters „Systemeinstellungen“, in dem die Textersetzungen angezeigt werden (unter „Ersetzen“ oder „Durch“).
Schließen Sie das Fenster Systemeinstellungen.
Quelle: https://support.apple.com/en-in/guide/mac-help/mchl2a7bd795/mac
Die Einstellungen werden in NSUserDictionaryReplacementItems in ~/Library/Preferences/.GlobalPreferences.plist gespeichert.
Sie können den Inhalt lesen, indem Sie die Datei öffnen und durchsehen oder indem Sie Folgendes ausführen:
defaults read -g NSUserDictionaryReplacementItems
Um Ihre Einstellungen auf einen anderen Computer zu kopieren, nehmen Sie die Ausgabe des vorherigen Befehls und führen Sie den folgenden Befehl aus, um Ihre Einstellungen zu schreiben:
defaults write -g NSUserDictionaryReplacementItems -array-add '{on=1;replace=foo;with=bar;}'
Ersetzen Sie den Inhalt des Arrays am Ende des Befehls durch die gewünschten Ersetzungen.
-array-add
wird an das Ende des Arrays angehängt. Verwenden Sie diese Option -array
, um das gesamte Array zu ersetzen.
defaults write com.apple.finder AppleShowAllFiles -bool true && osascript -e 'quit app "Finder"'
) anzeigen oder über das Terminal öffnen. NSUserDictionaryReplacementItems ist ein Array in der Datei zusammen mit anderen Daten. Aus diesem Grund ist es möglicherweise nicht wünschenswert, die gesamte Datei zu kopieren, daher meine Terminalbefehle in der Antwort.Ich habe ein Skript zum Sichern und Wiederherstellen der Datenbank geschrieben. Es ist nicht erforderlich, etwas aus .GlobalPreferences.plist zu extrahieren, kopieren Sie einfach die Datenbank und öffnen Sie die Systemeinstellungen, um die Einstellungen neu zu laden.
############
#!/bin/bash
ME=$USER
DB_BACKUP_DIR=$HOME/Desktop
DB_BACKUP_FILE=$DB_BACKUP_DIR/UserDictionary.db
# Find the path where the replacement DB is:
PLIST=$HOME/Library/Preferences/com.apple.configurationprofiles.user.plist
UUID=$(defaults read "$PLIST" APNSTokens_Production|grep -E '^\s*"[0-9A-F-]*"'|cut -d\" -f2)
DB_RESTORE_DIR=$HOME/Library/Dictionaries/CoreDataUbiquitySupport/$ME~$UUID/UserDictionary/local/store
DB_RESTORE_FILE=$DB_RESTORE_DIR/UserDictionary.db
function Backup(){
echo "Backup"
[ \! -d "$DB_BACKUP_DIR" ] && echo "Backup directory does not exist" && echo "$DB_BACKUP_DIR" && exit 1
echo "Copying database file"
cp -fv "$DB_RESTORE_FILE" "$DB_BACKUP_FILE"
}
function Restore(){
echo "Restore"
[ \! -r "$DB_BACKUP_FILE" ] && echo "Cannot read the backup file" && echo "$DB_BACKUP_FILE" && exit 1
[ \! -d "$DB_RESTORE_DIR" ] && echo "Creating Restore Directory" && echo "$DB_RESTORE_DIR"
echo "Copying database file"
cp -fv "$DB_BACKUP_FILE" "$DB_RESTORE_FILE"
# The database has been copied, but OS X ignores it
# until the tab System Preferences \ Keyboard \ Text is opened at least once
# Use osascript to open and close System Preferences \ Keyboard \ Text
osascript - <<EOC
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.keyboard"
reveal anchor "Text" of pane id "com.apple.preference.keyboard"
quit
end tell
EOC
}
# Main
case "$1" in
-b) Backup
;;
-r) Restore
;;
*) echo "Usage: $0 -b|-r"
echo "\t\t-b: backup"
echo "\t\t-r: restore"
exit 0
;;
esac
Cody Grey
Herr Tao
what_to_replace replace_with
durch Leerzeichen getrennt.Gerwitz