今回はおそらくVSCodeユーザーが必ず一度はぶつかるであろう問題「読み取り専用のエディターでは編集できません」というエラーについてを解決していこうと思います。
今回のこのエラーが出てきたということは皆さんVSCodeの拡張機能である、Code Runnerを導入していることだと思います。ですので、今回はCode Runnerを導入している前提で解決方法を提案していきたいと思います。
Code Runnerとは
もしかしたら、Code Runnerを導入していることすら忘れている方もいるかもしれませんので、どういった拡張機能だったかを思い出しましょう。
Code Runnerとは、VSCode上で使える拡張機能のことです。コードの実行をVSCode上で簡易的に行ってくれる超便利な拡張機能です。
ご覧の通り、C++やJava、PythonやRubyなどと言った主要言語からそこまで重要でもない言語まで幅広くカバーされている素晴らしいプラグインです。
どれだけ簡単に実行できるかと言うと
①コードを書く
②「Command+S」または「Ctrlキー+S」でコードを保存する。
③実行ボタンを押す
④出力される
というように実行ボタンを押せば即実行されるので手間がかかりません。
この問題がなぜ起こるのか
便利すぎて万能か?と思いがちなCode Runnerですが、欠点があり「読み取り専用」であるため、inputなどの関数をCode Runnerの出力上で入力することができません。
解決法
ではどうすれば解決するか、ですが、Code Runnerだと標準入力ができない!という上記の問題ですが、設定を変更してCode Runnerの結果を「出力欄」ではなくVSCodeのターミナルに出力するように設定すれば解決できます。
それでは設定方法を解説していきます。
まずは左上から「Code」を選択します→ 一覧から「基本設定」を選択します → さらに出てきた一覧から「設定」を選択します。
そうすると設定画面が出てきますので、 設定の検索 で「runInTerminal」と入力します。そうすると以下のような画面が出てくると思いますので、「Whether to run code in Integrated Terminal」にチェックを入れます。
設定自体はこれで完了ですが、実際にinputの入力は出来るようになっているのでしょうか。
コードを実行してみると「出力」ではなく、「ターミナル」に移動したことがわかります。入力もできましたね。
これでCode Runnerが input にも対応するようになりました。
おまけ:ターミナルの背景・文字色を変更する
おまけです、ターミナル欄の背景色と文字色を変えることで好きなデザインに変えることが可能です。
再度、左上の「Code」を選択→ 一覧から「基本設定」を選択 → さらに出てきた一覧から「設定」を選択という順で設定を開きましょう。
そこで「workbench.colorCustomizations」と入力します。すると、次のように表示されるので「settings.json で編集」を選択しましょう。
settings.json で編集を選択すると次のようなコードが出てくるのですが、以下の画像ではちょうど15行目のところに設定を打ち込んでいきます。
色設定に関しては以下のサイトを使うと設定が楽です。
左の 3024 Apathy Ashes というリストが配色のリストになります。
私は Harmonic Dark を選択しました。
リストのうちどれかを選択したら「Copy to clipboard」を押しましょう。
Copy to clipboardを押したらコピーされているので、先程の15行目の部分にペーストして保存しましょう。
保存したらすぐに色が変わっているはずです。変わっていれば完了です。