Esta lista, a la que se accede mediante Preferencias del sistema/Teclado/Texto, desapareció cuando actualicé a 10.9.2 (sobrevivió a la actualización inicial de Mavericks). Escribo mucho para las ciencias, y he pasado años construyendo esa lista. (MacBook Pro reciente, 10.9.2).
Algunos sitios dicen que debería obtener el archivo /Users/username/Library/Preferences/.GlobalPreferences.plist de una copia de seguridad, pero he buscado en el HD de mi otra computadora (mismas especificaciones pero con 10.9.1, Reemplazar/Con lista intacta ), y no puedo encontrar tal archivo.
Otros sitios dicen que está en la "matriz NSUserDictionaryReplacementItems" en 10.9, pero desafortunadamente no sé qué significa eso. (Soy un usuario, no un programador.)
Escuché que puede estar relacionado con la nueva capacidad de Mavericks para sincronizar esta lista con dispositivos iOS, pero eso aún no explica por qué no puedo encontrarlo en mi máquina 10.9.1, que se ha estado sincronizando con mi teléfono. (iPhone 4, iOS 5.x) durante años.
En 10.9, los reemplazos de texto también se almacenan en formato ~/Library/Dictionaries/CoreDataUbiquitySupport/$USER~*/UserDictionary/local/store/UserDictionary.db
. UserDictionary.db
se usa incluso si iCloud está deshabilitado y tiene prioridad sobre .GlobalPreferences.plist
.
Si, por ejemplo, ejecuta defaults write -g NSUserDictionaryReplacementItems '({on=1;replace=aa;with=bb;})'
, sale y vuelve a abrir TextEdit, aa
se reemplaza por bb
TextEdit, pero los cambios se revierten si abre la pestaña Texto del panel de preferencias Teclado.
Puede cambiar ambos UserDictionary.db
y .GlobalPreferences.plist
usando un script como este:
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%?})"
En 10.8 y versiones anteriores de OS X, los reemplazos de texto se almacenan en la NSUserReplacementItems
matriz (no en NSUserDictionaryReplacementItems
) en ~/Library/Preferences/.GlobalPreferences.plist
.
Encontré una manera más fácil de hacerlo.
Utilice estos pasos para exportar sus sustituciones de texto existentes:
Abra Preferencias del sistema > Teclado > Texto.
Seleccione los accesos directos que desea exportar. Si desea exportar todas sus sustituciones de texto, seleccione una de ellas y luego elija Seleccionar todo en el menú Editar.
Arrastre los accesos directos seleccionados al escritorio. Esto crea un archivo con el nombre Text Substitutions.plist que contiene las sustituciones que seleccionó.
Cierra la ventana de Preferencias del sistema.
Utilice estos pasos para importar el archivo plist que creó en otra cuenta de usuario:
Copie el archivo plist que creó anteriormente en la carpeta /Users/Shared/ o en una unidad externa.
Inicie sesión como la cuenta de usuario en la que desea utilizar estas sustituciones de texto.
Abra Preferencias del sistema > Teclado > Texto.
Arrastre el archivo Sustituciones de texto.plist al área de la ventana Preferencias del sistema donde se muestran las sustituciones de texto (bajo Reemplazar o Con).
Cierra la ventana de Preferencias del sistema.
fuente: https://support.apple.com/en-in/guide/mac-help/mchl2a7bd795/mac
Las preferencias se almacenan en NSUserDictionaryReplacementItems en ~/Library/Preferences/.GlobalPreferences.plist.
Puede leer el contenido abriendo el archivo y examinándolo, o ejecutando:
defaults read -g NSUserDictionaryReplacementItems
Para copiar sus preferencias a otra máquina, tome la salida del comando anterior y ejecute el siguiente comando para escribir su configuración:
defaults write -g NSUserDictionaryReplacementItems -array-add '{on=1;replace=foo;with=bar;}'
Reemplace el contenido de la matriz al final del comando con los reemplazos que desee.
-array-add
se agrega al final de la matriz. Úselo -array
para reemplazar toda la matriz.
defaults write com.apple.finder AppleShowAllFiles -bool true && osascript -e 'quit app "Finder"'
) o abrirlos a través de la Terminal. NSUserDictionaryReplacementItems es una matriz en el archivo junto con otros datos. Es por eso que puede que no sea deseable copiar todo el archivo, de ahí mis comandos de Terminal en la respuesta.He escrito un script para hacer una copia de seguridad y restaurar la base de datos. No es necesario extraer nada de .GlobalPreferences.plist, simplemente copie la base de datos y abra las preferencias del sistema para volver a cargar la configuración.
############
#!/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 gris
Sr. Tao
what_to_replace replace_with
separadas por espacios en blanco.Gerwitz