はじめに
とても個人的でマイナーで、忘れてググっても情報が出てこないようなVisual Studio Codeの設定をここにメモします。
debug.console.collapseIdenticalLines
デバッグコンソールにて内容が同じ出力が連続したとき、2回目以降を省略しバッジで回数を示す機能の有効化/無効化です。デフォルトではtrueで有効となっていますが、個人的にはfalseのほうがわかりやすいのでそちらに設定しています。同じ内容だからといって同じ意味ではないのです。
キーボードショートカットなどから選択範囲をコメント化するとき、選択範囲中に存在する空行を無視するかどうかの設定です。デフォルトではtrueで無視するようになっていますが、falseにします。好みの問題です。
editor.copyWithSyntaxHighlighting
Visual Studio Codeでテキストを選択してコピーしたときに、テキストと一緒にシンタックスハイライトの色もクリップボードへ入るかどうかを決めます。無効化しておきます。この挙動を意識するタイミングはあまりありませんが、たまに(contenteditable属性をつかったWebページの編集可能領域へコピペするときなど)に面倒なのです。
下のURIをWebブラウザに打ち込んで表示されるページで、実際の挙動を試すことができます。
data:text/html,<html contenteditable>
editor.cursorBlinking
カーソルの点滅に関する設定です。いろいろな種類がありますが、私は"solid"(点滅しない)に設定しています。なんとなくですが、点滅されると焦ってしまうので。
editor.cursorSurroundingLines
説明が難しいです。VimやNeovimでいうscrolloffのことです。
指定した行数分、カーソル前後にマージンを取り、その領域は絶対に表示されるようにします。デフォルトの0だと、カーソルを動かしてスクロールするとき、そのカーソルは表示領域の端にくっつくことになります。しかしこれを1に設定すると、カーソル前後の1行が常に表示されるようになります。
editor.find.autoFindInSelection
この値を"always"にしていると、検索開始時に範囲選択をしていたとき、その範囲のみを対象とした検索となります。"multiline"にしていると、選択範囲が複数行だった場合のみ範囲検索となります。デフォルトは"never"で無効化されています。普通に便利なので"multiline"です。
editor.find.loop
検索をループするかどうかの設定です。wrapscanのことです。最初の一致項目や最後の一致項目を知りたいときループされると不便なので無効化します。
editor.find.seedSearchStringFromSelection
検索開始時、カーソルのある位置の文字列を検索語句として入力するかどうかの設定です。デフォルトでは"always"となっていますが不便すぎるので"never"にします。
editor.wordSeparators
Alt+矢印キーでのカーソル移動時などに使われるセパレータを設定します。日本語の句読点や括弧を設定しておきたいところです。
files.autoGuessEncoding
文字コードの推定機能です。デフォルトではfalseで無効となっています。有効でもいい気がするのですがなぜでしょう?
terminal.integrated.sendKeybindingsToShell
trueに設定することで、Visual Studio Codeに統合されたターミナルで行ったキーボードショートカットの大部分をターミナルへと送るようにします。デフォルトのfalseではVisual Studio Code側のキーボードショートカットが実行されていまいます。
terminal.integrated.showExitAlert
ターミナルが終了したとき、その終了コードによってはエラーメッセージが表示されます。私はシェルを終了するとき、手癖でctrl+c→ctrl+dと間髪入れずに入力してしまうのですが、この2つの間が十分に空いていないと、終了コードが130になるようで。エラーメッセージが表示されてしまうのです。なのでこの設定項目をfalseにし、黙らせます。
デフォルトの"content"では、保存されていないエディターの1行目を編集するとその内容がタイトルとなってしまいます。これがなんだか邪魔だったので"name"で無効化です。
workbench.settings.editor
キーボードショートカットから設定を開いたときに、設定GUIが開かれるかJSONの設定ファイルが開かれるかを選択できます。"json"にしておいたほうが普段は楽です。
zenMode.hideLineNumbers
Zenモードでも行番号を表示するよう、falseへ変更します。
行番号以外にも設定できる項目がたくさんあります。
おわりに
これ以外にもいろいろと設定していますが、それらは有名なので割愛します。