[VSCode]改行すると勝手にスペース、絶対殺すマン
改行すると、勝手にスペースが!
普段あまり VSCode を使わず、なんとなく使っているので、どういう理屈でこうなるのかわからない事が多い。
オススメされてた設定や、拡張機能がなんか悪さしてるんだろうなぁと思うものの、一体どれのせいかわからず途方に暮れることも多いはず。少なくとも、私はそう。
今回は、画像のように勝手にスペース入っちゃう機能が「誰のせいか」を発見するまでのプロセスを見ていきましょう。
Format on ~ が悪い
設定 > Format on で検索してくると出てくる連中が悪さしてるから、オフにしよう。
ググるとそういう情報に溢れているので、確認してみました。
Format on Type にチェック入ってたので、オフに。
結果 ➡ 改善されず。
拡張機能が悪い
拡張機能は言われるままにいろいろ突っ込んでるので、どれがなにをしているか今となってはサッパリ。
そこで、一旦本当に拡張機能のせいか、すべての拡張機能をオフにして確認します。
code --disable-extensions
実行すると、一時的に拡張機能を全てオフにした状態で VSCode が起動します。
結果 ➡ 勝手にスペース入らなくなった!!
ここからが本当の地獄だ
いつのまにか 36 個も入っていた拡張機能を1つずつオフ > VSCode 再起動 > 確認。
この作業を無心で繰り返します。
なお、(私の場合)機能をオフにするだけだとプラグインの行儀が悪いせいか、確認できませんでした。
オフにするたび、VSCode を再起動することをオススメします。
❗ 一般的に問題とされる拡張機能
- Prettier
- ESLint
- auto-formatter 系(例えば Beautify, Format Files, EditorConfig for VS Code)
- 言語特有の拡張機能(例: Python, Lua, TypeScript など)
ChatGPT 先生に聞いたところ、これらを優先してオフにしておくといいそうです。
なお、私の場合はと言うと……、
コイツのせいだ!!!
C# のコードを書いていると、VSCode がしきりにオススメしてくるから、根負けして入れたコイツ。
オススメされるから入れただけで、本来必要はないのでオーフ!
必要な場合は、Formatting and Linting の機能だけ、自分でカットするのもいいでしょう。
それ以外の問題
ChatGPT 先生に「考えられず限りの理由を教えて」といったところ、次のような理由も勝手にスペースが入る要因になるようです。
言語ごとのフォーマッタ設定
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[plaintext]": {
"editor.defaultFormatter": null
}
→ 特定の言語用にフォーマッタが指定されていれば、それが影響している可能性があります。
スニペット(snippet)による自動補完
ユーザー定義や拡張機能によるスニペットで、改行時にカンマの後にスペースを入れるようになっていることがあります。
✅ 確認方法:
Manage > Snippets から関連する言語のスニペットを開く
"insertText" や "body" に , が含まれていないか確認
入力補完(インテリセンス)
自動補完候補を選択した際に、, が自動で補完されることもあります。特にカンマ区切りの引数リストなど。
✅ 確認方法:
editor.acceptSuggestionOnEnter を "on" → "off" にしてみる
キーバインドまたはマクロ系拡張機能
- multi-command
- macros
- keyboard macro
改行キー (Enter) に複数処理が割り当てられていて、スペースが入っている可能性。
✅ 確認方法:
Ctrl+K Ctrl+S(キーバインド)で Enter キーに割り当てられたコマンドを確認
Git Hookや他の外部フォーマッタ(保存時)
保存時やコミット時に整形されている可能性もあります。
- .git/hooks/pre-commit
- .husky/pre-commit
lint-staged 経由で prettier 実行
おわりに
フォーマッターやリンターは非常に便利なので、とりあえず入れとくかーになりがちですが、予想外のフォーマッティングを行うこともよくあります。
「VSCode の事なら~君に聞けばいいよ!」みたいな VSCode 仙人を軸に、統一環境を用意するのが理想ですが、現実はなかなかそうもいきません。
(秀丸以外勝たん、とそれ以外絶対使ってくれない技術者も 2025 年現在、存在します……。いいエディタだとは思います。思います、が!)
VSCode は便利ですが、なにかあった時にちょくちょく「向き合う」ことも必要です。
面倒がらずに向き合っていくほど、解決までの時間も短くなっていくと思うので、頑張っていきましょう!
Discussion