VSCodeのSettings Syncを使ってWinとMacで一部異なる設定同期

VSCodeのVim拡張で、ノーマルモードに戻った時にIMEをオフにする設定をしているのだが、WinとMacではやり方が違うのでそこだけ設定内容を変えたいというニーズがありまして。

そんな場合にはsettingsSync.ignoredSettingsで設定項目を同期の対象から外すことができるとのこと。

実例としてはMacでsettings.jsonに以下のように書くと。

"settingsSync.ignoredSettings": [
  "vim.autoSwitchInputMethod.enable",
  "vim.autoSwitchInputMethod.defaultIM",
  "vim.autoSwitchInputMethod.obtainIMCmd",
  "vim.autoSwitchInputMethod.switchIMCmd"
],
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}"

Winには以下のように同期される。

"settingsSync.ignoredSettings": [
  "vim.autoSwitchInputMethod.enable",
  "vim.autoSwitchInputMethod.defaultIM",
  "vim.autoSwitchInputMethod.obtainIMCmd",
  "vim.autoSwitchInputMethod.switchIMCmd"
],

実際のところはWinとMacというよりは個別のマシンごとに一部異なる設定を行うことができるというヤツ。

なので仮にもう1台Macのマシンを追加してSettings Syncした場合はそのマシンのsettigs.jsonの内容はWinのものと同じになる。ので、上記のMac用の設定を反映するには手で編集する必要がある。