【Visual Studio】コードエディタの初期設定を変更する

Microsoft Visual Studio Professional 2017/2019(または Microsoft Visual Studio Communication 2017/2019)を使い始めたが、コードエディタの初期設定が好みの状態ではないので、いくつか変更する。(あくまでも個人的な好みに)

行の強調表示をしない

初期状態では下図のように、キャレットが置かれている行が強調表示される。個人的には余計な線が増えて邪魔に感じるので、強調表示をやめたい。

上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[全般]>[現在の行を強調表示する]のチェックを外す。

「# 個の参照」を表示しない

クラスとかメソッド等が何箇所から参照されているかを示す表示が個人的には邪魔です。

これを消すには、上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[すべての言語]>[CodeLens]>[CodeLens を有効にする]のチェックを外します。

[CodeLens を有効にする]の下にある[参照の表示]だけをオフにしても良いのでしょうが、私の環境ではこのオプションがロックされていて、これのみをオフにすることができませんでした。

CodeLens とは?

CodeLens とは、簡単に言うと、コードの変更履歴を確認できるような機能のようです。

MS のページでは「コードの参照、コードへの変更、リンクされたバグ、作業項目、コード レビュー、単体テストを検索できます。」と紹介されています。

なお、Visual Studio の Enterprise / Professional エディションでのみ使用でき、Community エディションでは使用できないそうです。

なお、Visual Studio 2017 Community エディションでは下図のように項目が1つしかありませんでした。

下図は 2019 Community エディションの場合。

コードが広範囲で勝手に崩れるのを防ぐ(VB.NET)

コードを入力して改行したり、またはキャレットを動かしたりするだけでも、コードの一部または広範囲が崩れる(変なインデントが入る)ことがある。
たとえば下図のキャレットがある場所(True の後ろ)で改行すると、

下図のように、改行を入れた行を含めて、そこから下のコードが広範囲に渡って、一気にインデントされてしまうことがある。

勝手に挿入されたインデントをせっせと元に戻しても、キャレットを動かした途端にまたまた勝手なインデントが入ってしまい「ウキーッ!(# ゚Д゚)」と叫びたくなる。
これは[コードの再フォーマット]オプションがオンになっているときに起きる。

このオプションを無効にするには、上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[Basic]>[詳細]>[コードの再フォーマット]のチェックを外す。(ちなみに C# にはこのオプションが無いようだった)

Visual Studio 2013 との挙動の違い

[コードの再フォーマット]をオフにすると、コードが大幅に崩れるのを防ぐことができるが、欠点もある。
たとえば、

  • VB.NET の予約語を小文字で書き始めて改行したとき、予約語の先頭文字を自動的に大文字に直してくれなくなる。
    これは予約語のタイプミス等を自動的にチェックできていた利点を失うことになる(予約語とそれ以外の語が区別しやすかったという便利さも無くなる)。
  • また、たとえば If a=1 Then のように書いても、= の両側に自動的にスペースを入れてくれなくなる。

ここで解説しているのは Visual Studio 2017 の話だが「以前はこんなんじゃなかったはず・・・」と思っていたところ、ちょうど Visual Studio 2013 に触れる機会があったので調べてみた。

 

記憶は間違っていなかった。2017 と 2013 では[コードの再フォーマット]の挙動が異なる

 

そもそも、2013 では[コードの再フォーマット]がオンになっていても、ここで書いたようにコードが大きく崩れるということは無かった。
だから、 2013 では自分は[コードの再フォーマット]をオンにしていて、予約語の先頭文字の自動変換やスペースの自動挿入の便利な機能も利用できていた。

ところが、2017 以降 では[コードの再フォーマット]がオンだとコードが大きく崩れるようになったので、このオプションをオフにせざるを得なくなり、同時に便利だった機能も使えなくなってしまったということだ。困ったもんだ・・・。

 

[コードの再フォーマット]という名称から予測すると、ひょっとして、2017 の挙動のほうが MS の意図していた動作で、2013 ではバグっていたということなのだろうか?
そのへんは分からないけれど、2013 のほうが良かったなぁ・・・。

 

ちなみにこのとき 2017 の細かいバージョン(正式なバージョン?)は 15.6.27428.2027 でした。

勝手におかしなインデントが入らないようにする

[コードの再フォーマット]オプションがオンになっているときは改行した行を含めてコードが広範囲で崩れたりするが、それとは少し違って、比較的狭い範囲(改行した次の行以降など)で勝手に変なインデントが入ることがある。
たとえば下図のキャレットがある場所(True の後ろ)で改行すると、

下図のように、改行を入れた次の行になぜかインデントが入ったりする。

この現象は自動インデントが[スマート]モードになっているときに起きる。
[スマート]という名称が付いているが、インデントが入って欲しくないところに入りまくりんぐするので、私は[スマート]と思ったことは一度もない(あくまでも個人の感想です)。

このオプションを無効にするには、上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[*言語名*]>[タブ]>[インデント]で[スマート]以外のオプションを選択する。([*言語名*]とは「Basic」とか「C#」等のこと)

私はいつも[ブロック]を選択する。自動インデントが[ブロック]モードの場合、たとえば行頭にインデントがある If …. Then の後で改行すると、それと同じインデントで End If が自動入力されるなど、単純で分かりやすい形でインデントが自動挿入される。たとえば下図のように、インデントが 1 つ入っている If a=2 Then の行で改行すると、

下図のように、次の行とその次の行(自動挿入される End If の行)にも、同様にインデントを 1 つ補ってくれる。

上記コードはインデントの入り方を説明したいだけの例なので、それ以外のおかしな点についてはご容赦いただきたい。

MEMO

このオプションについても Visual Studio 2017 以降、挙動が変わった気がする。意図通りにならない場合はインデント「なし」にしたほうが良いかもしれない。

Shift + Tab を押してもインデントが減らない行がある

Visual Studio の設定の話ではないが、関連する話題なので書いておく。

コードの複数行を選択してから Shift + Tab を押してインデントを減らそうとしても、まったくインデントが減らなかったり、一部の行のインデントしか減らない(そしてコードが崩れる)ことがあった。

この場合、(コードが崩れたらいったんアンドゥして崩れを戻して)Tab を押して選択範囲全体にインデントを入れたあと、再び Shift + Tab を押してインデントを減らすとうまくいった。ご参考まで。

Visual Studio のインデント機能には苦労させられるなぁ(VB.NET だけ?)。Office のアプリにも言えるけど、「おせっかい」「ありがた迷惑」な機能が多いんだよなぁ(個人の感想です)。

ナビゲーションバーはどこだ?

いままで Microsoft Visual Studio Professional 2013 を使っていたんだが、2017 をダウンロードして開いてみたら、慣れ親しんでいたナビゲーションバーが無い。
ナビゲーションバーとは、下図の赤枠のドロップダウンボックスのところ。ここでクラスやメソッドを選択すると、その場所にジャンプできる。

ナビゲーションバーを表示するには、上部メニューの[ツール]>[オプション]で[オプション]ダイアログが出たら、[テキストエディター]>[*言語名*]を選択し、[ナビゲーション バー]のチェックをオンにする。(「*言語名*」とは、「C#」とか「Basic」等のこと)

この名称が「ナビゲーションバー」だと知ったのはつい先ほどのこと。さっきまで「アレが無い。アレはどこだ!」と心の中で叫んでいた。
上部メニューの[表示]>[ツールバー]とか、[表示]>[その他のウィンドウ]とか、それらしきところを色々と探してみるが見つからず。
仕方なくネット検索を試みるが、名称が分からないと検索も難しいですね。

ナビゲーションバーはとても便利でよく使うんだが、デフォルトがオフになってるってことは、あまり評判良くないの?

MEMO

その後、また Visual Studio Community 2017 を別の PC にインストールする機会があったが、そのときはデフォルトでナビゲーションバーが表示されていた。バージョンは 15.9.6 だった。

垂直スクロールバーの横に表示されるコードの縮小表示を消す

Visual Studio Community 2017 をインストールしてプロジェクトを開いたら、垂直スクロールバーの横に、小さい文字がゴチャゴチャと書いてある長方形が現れた。
これは垂直スクロールバーの「マップ(モード)」と言うらしい。そこに表示されている小さい文字は、コードの縮小表示。その上でマウスカーソルを動かすと、左側に元の大きさのコードが四角で囲まれて表示される。これも邪魔なので非表示にすることにした。

MEMO

ちなみに、バージョン 15.9.6 ではデフォルトで「マップ(モード)」がオフになっていた。

プログラムコードエディタの「マップモード」をオフにする

上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[*言語名*]>[スクロール バー]を選択し、[垂直スクロール バーでのマップ モードの使用]をやめて別のオプション(1つしかないけど)に変更する。([*言語名*]とは「Basic」とか「C#」等のこと)

XAML コードエディタの「マップモード」をオフにする

プログラムコードエディタの「マップモード」を消して安心してたら、いつのまにか「マップモード」が復活していた。「変だな」と思って調べたら、各種のコードごとにこの「マップモード」の設定があると分かった。今回自分が見ていたのは XAML のコードエディタだった。

これを消すには、上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[XAML]>[スクロール バー]を選択し、[垂直スクロール バーでのマップ モードの使用]をやめて別のオプション(1つしかないけど)に変更する。

他の種類のコードエディタで「マップモード」がオンになっていたら、同様のやり方でオフにできる。

すべてのコードエディタの「マップモード」をオフにする

すべてのコードエディタの「マップモード」をオフにするやり方が分かったので追記。

上部メニューの[ツール]>[オプション]で[オプション]ダイアログを表示したら、[テキスト エディター]>[すべての言語]>[スクロール バー]を選択し、[垂直スクロール バーでのマップ モードの使用]をやめて別のオプション(1つしかないけど)に変更する。

ブックマークのボタンを表示する

Microsoft Visual Studio Communication 2017 をインストールしてコードを編集していたら、よく使っていたブックマークのボタン(下図)が表示されていないことに気付いた。

Visual Studio には多くのツールバーがあるので、その中から目的のボタンを探すのに苦労することがある。

ブックマークのボタンは、「テキスト エディター」という名前のツールバーに含まれている。

ツールバーの表示方法はいくつかあるが、上部メニューから選択する場合は、[表示]>[ツール バー]>「テキスト エディター」で表示できる。

 

 

参考記事:【Visual Studio】デバッグの初期設定を変更する

参考記事:【Visual Studio】出力ウィンドウ(ビルド状況)が表示されない、表示されてもすぐ消える

参考記事:【Visual Studio】Console.WriteLine が表示されない

購読する
通知を受け取る対象
guest
5 Comments
Newest
Oldest
Inline Feedbacks
View all comments
ger
ger
2021年11月27日 18:13

たすかりました

ぷち
ぷち
2020年9月04日 16:11

ありがとうございました。とてもとても助かりました。

OMAER
OMAER
2018年7月24日 19:07

探しているものの集大成が乗ってて非常に良い記事だと思いました。私も最近プログラミング学習しているので、これからも見に来るかもしれません。