Jak programowo dodać skróty autokorekty?

4

W Preferencje systemowe & gt; Klawiatura & gt; Tekst , Mogę dodać skróty, które będą dostępne dla mnie globalnie za pomocą autokorekty.

Keyboard section in System Preferences

Powiedzmy, że miałem 100 takich skrótów i byli na dwóch komputerach Mac, zamiast dodawać / usuwać poszczególne elementy ręcznie, czy istnieje sposób na utrzymanie jednego .plist plik, który mógłby zarządzać tymi skrótami?

Jake Bellacera
źródło
w Lion i Mountain Lion to ukryty plik .GlobalPreferences.plist w lokalnym folderze Preferencje. Czy to nie istnieje w Mavericks? Aby uzyskać więcej informacji, skopiuj plik pod Lion see apple.stackexchange.com/questions/57960/…
Sidasa

Odpowiedzi:

6

Możesz skopiować ustawienia na inny Mac, kopiując ~/Library/Preferences/.GlobalPreferences.plist.

Pamiętaj, że preferencje są buforowane w 10.9, więc jeśli zastąpisz plist lub edytujesz go bezpośrednio, zamknięcie i ponowne otwarcie aplikacji nie zastosuje zmian. Możesz zastosować zmiany, uruchamiając defaults read -g, biegiem killall cfprefsdlub po wylogowaniu i ponownym wprowadzeniu zmian. Zmiany wprowadzone przy użyciu ustawień domyślnych są nadal stosowane, jeśli po prostu zamkniesz i ponownie otworzysz aplikację.

Wydrukuj bieżące ustawienia:

defaults read -g NSUserDictionaryReplacementItems

Dodaj jedno ustawienie:

defaults write -g NSUserDictionaryReplacementItems -array-add '{on=1;replace=cmd;with="⌘";}'

Zastąp wszystkie ustawienia:

defaults write -g NSUserDictionaryReplacementItems '(
{on=1;replace=cmd;with="⌘";},
{on=1;replace=opt;with="⌥";}
)'

Wydrukuj bieżące ustawienia jako XML:

defaults read -g NSUserDictionaryReplacementItems | plutil -convert xml1 - -o -

Zastąp wszystkie ustawienia:

amp() { local x=${1//&/&amp; }; x=${x//</&lt; }; printf %s "${x//>/&gt; }"; }
out='<array>'
while IFS= read -r l; do
  out+="<dict><key>on</key><integer>1</integer><key>replace</key><string>$(amp "${l%% *}")</string><key>with</key><string>$(amp "${l#* }")</string></dict>"
done <<< 'cmd ⌘
opt ⌥'
defaults write -g NSUserDictionaryReplacementItems "$out</array>"

Zastąpić NSUserDictionaryReplacementItems z NSUserReplacementItems w 10.8 i wcześniejszych.

Lri
źródło