Visual Studio Code(以降VsCode)の機能拡張などの設定ウインドウでチェックを入れたり、外したりした際、
「ユーザ設定に書き込めません。ユーザ設定を開いて、ファイル内のエラー/警告を修正してからもう一度お試しください。」
というエラーメッセージが表示される場合があります。
考えられる原因や対処法を解説します。
考えられる原因
ユーザ設定ファイルの【書き方】が間違っていることが原因です。
【書き方】と言いきってしまいましたが、ユーザが記述ミスをしていないのにこのエラーが出る場合もあるようです。VsCode側でユーザ設定ファイルを更新した際などにファイルが壊れてしまう場合です。いずれにしても後述する対処法を試してみてください。
そもそもVsCodeのユーザ設定ファイルは本来 settings.json という名前のテキストファイルです。
このファイルはJSON形式で記述するファイルです。
大抵は「,」(半角カンマ)が無かったり、「”」(ダブルクォーテーション)で文字列をくくっていないかったりなどが原因でエラーが出ることが多いです。
JSONでは例えば以下のようにデータを記述します。
{"name": "ネコ"}
意味合いとしては、
{ 要素名: 要素データ }
といった感じです。要素名は ” か ‘ を用いてくくりますが、要素データが数値の場合そのまま記述することができます。
また要素名とデータを複数記述するときは , (半角カンマ)で区切ります。
{"name": "ネコ", "type": "animal", "hp": 100, "mp": 5,}
VsCodeのユーザ設定ファイル(settings.json)では、 見やすいように区切り文字 , の部分で改行して記述されています。
{ "name": "ネコ", "type": "animal", "hp": 100, "mp": 5, }
JSONの書き方は以下のサイトの「JSONの書き方」の項目が詳しいです。
JSONの書き方 – JSONとは?データフォーマット(データ形式)について学ぼう!
「ユーザー設定に書き込めません…」の対処法
「ユーザー設定に書き込めません…」のエラーが出たときの対処例を示します。
以下のようなメッセージがウインドウ右下に表示されるかと思います。
設定を開くボタンをクリックします。

setting.jsonというファイルが表示されます。VsCodeの設定ウインドウとこのsetting.jsonファイルは一対です。基本的には片方を修正するともう一方も自動的に修正されますが、あくまで大元はsetting.jsonの方であると認識してください。
「ユーザー設定に書き込めません…」のメッセージが表示される原因はこのファイルの記述が間違っているわけです。
setting.jsonの表示例

開いたsetting.jsonの中身をよく見ると赤い下線が表示された箇所があります。

この赤い下線付近の記述があやしいということです。
具体的には赤い下線の行かそれより上の行に記述ミスがある場合がほとんどです。(わたしの経験上、多くの記述ミスは、すぐ上の行です)
今回は , (半角カンマ)のつけ忘れでした。
先ほど説明したJSON形式ファイルを思い出してください。
こんな感じです。
{ "name": "ネコ", "type": "animal", "hp": 100, "mp": 5, }
この中の,が抜けているとエラーとなる場合があるわけです。
今回の例では“(ダブルクォーテーション)でくくられた要素データが長いので分かりにくいかもしれませんが、以下の部分に , (半角カンマ)がありませんでした。(ちょうど赤い下線の上の行ですね)

修正して赤い下線が消えたらたぶん大丈夫です。
この状態でsetting.jsonを上書き保存します。(Ctrl + S あるいは、ファイル > 保存 を選びます)

setting.jsonを閉じて設定ウインドウを表示してみてください。
チェックを入れるか外すかした際に表示されていたエラーメッセージが表示されなくなりました。

今回の例は、,(半角カンマ)が足りない場合でしたが、場合によって“(ダブルクォーテーション)で文字列がくくられていなかったり{ }(中括弧)などが一対になっていなかったりと様々です。JSON形式ファイルという事をもう一度思い出して確認してみてください。
対処例を【動画】で見る
「ユーザー設定に書き込めません…」のエラーが表示されてから修正するまでを動画にしてあります。
setting.jsonファイルで,を付け忘れた例の動画です
以上、Visual Studio Codeで「ユーザ設定に書き込めません…」と表示されたときの対処法でした。
コメント