6933


osx の im，`JapaneseIM` の設定を `PlistBuddy` コマンドを使って行おうと考えているのですが，  
`Unrecognized Type` と謳われて，どうもうまく行きません．

実際に走らせている処理は以下です．

[code]

    % pb=/usr/libexec/PlistBuddy  
    % plistis=/System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources/KeySetting_Default.plist  
    % sudo "${pb}" -c "Add :keys:before_typing:\''/\'':character '/'" "${plistis}"  
    Password:  
    Unrecognized Type: /
    
[/code]

やり方を思いつく限り試してみたのですが，どうしても上手くいきません．

そして，それがどうしてかよく分からないのですが，`Add` ではなく，`Set` を使うと問題なく処理を行ってくれるのです．

ちなみに `Set` のケースは，  
一度，直接 plist を編集したうえで試してます．

試した環境です．

[code]

    % sw_vers  
    ProductName:    Mac OS X  
    ProductVersion: 10.10.2  
    BuildVersion:   14C109
    
[/code]


CC BY-SA 3.0
2015-02-22T14:25:48.887
6930
2015-02-22T21:41:51.777
2015-02-22T21:41:51.777
5519
8382
question
macos
`PlistBuddy` で `Add` すると，`Unrecognized Type: /` が返ってきてしまう


`Add`する場合はその値の型を指定する必要があります。（スラッシュ`'/'`を入れようとしてるのだから文字列に決まってるのですが、コマンドはそれを理解してくれません）

なので上記のコマンドに型の指定`string`を加えると下記のようになります。

[code]

    % sudo "${pb}" -c "Add :keys:before_typing:\''/\'':character string '/'" "${plistis}"
    
[/code]

`Set`の場合に同じ問題が起こらないのは、`Set`の場合は既存の値の入れ替えになるので、そこに入る値の型はあらかじめ決まっているからです。


CC BY-SA 3.0
2015-02-22T18:15:30.937
6933
2015-02-22T18:15:30.937
5519
6930
answer