ナビゲーション

本章ではピンポイントで特定の位置に飛ぶような機能を中心に、コードを閲覧するのに有用な機能を中心に記す。

Attention

Visual Studio Code 利用ノート 冒頭の前提条件に留意すること。

Quick Open

他のエディタータブを前面に出すには、もちろん対応するタブをクリックすればよい。目当てのタブが現在のタブと同じ Editor Group に属する場合には、ショートカットキーも与えられている。手をキーボードから離したくないときにはこの方法で操作する。

キーバインド

操作

Ctrl + Tab

次のタブへ移動

Ctrl + Shift + Tab

前のタブへ移動

これらの操作中に画面上部に出てくるウィンドウを Quick Open ウィンドウと呼ぶことにする。

既定ではキーバインドが存在しない Quick Open 周りのコマンドがいくつかある。キーバインドを適当に設定するか、コマンド直接呼び出しで実行することになる:

Quick Open Previous Editor from History

Quick Open ウィンドウに最近編集したファイルを一覧表示し、項目を選択してエディターを移動する。

View: Quick Open Least Recently Used Editor, View: Quick Open Previous Recently Used Editor

Quick Open ウィンドウに現在開いているエディターを編集順に一覧表示し、項目を選択してエディターを移動する。

編集場所履歴をたどる

Web ブラウザーの「戻る」コマンドのような感覚で、直近の編集箇所へジャンプできる。 VS Code が編集場所の履歴を記録して、何箇所か戻ったり、戻した分を進め直したりするコマンドがある。編集場所はエディターをまたいで管理されている。

キーバインド

操作

Alt +

一つ前の編集箇所にキャレットを移動する

Alt +

戻したキャレットの位置をより最近の場所に復元する

パンクズ

既定ではエディターの上部にパンクズインジケーターがある。Web ページによく見られるような UI で、基本的にはそのエディターのファイルパスがまず示され、プログラミング言語モードによってはキャレット位置を含む名前空間、クラス、各種シンボルなどが連なる。

ノードをクリックすると、それを含む兄弟ノードからなるドロップダウンリストが出現する。これはアウトラインツリーと同等な UI だ。ツリー上でノードをクリックすると、その要素の記述がある位置にキャレットが移動する。

キーバインド

操作

Ctrl + Shift + .

パンクズリストにフォーカスを移す

Ctrl + Shift + :

パンクズリストの末端ノードにフォーカスを移す

Ctrl +

パンクズ上ではフォーカスをパンクズリストの左のノードに移す

Ctrl +

パンクズ上ではフォーカスをパンクズリストの右のノードに移す

パンクズツリー上ではフォーカスを親ノードに移す

パンクズツリー上ではフォーカスを先頭の子ノードに移す

Esc

パンクズからフォーカスをエディターに戻す

Go to コマンド群

以下、「(キャレットが)移動する」ことを単に「ジャンプする」と表現する。また、プログラミング言語の変数、関数、名前空間、等々を抽象化した概念を「シンボル」と呼ぶことにする。プログラミング言語仕様書の語彙では「識別子」に相当する。

次のコマンド群はエディターの言語モードによっては利用可能となる:

コマンド

既定キーバインド

操作

Go to Definition

F12

対象シンボルの定義箇所にジャンプする

Go to Type Definition

n/a

対象シンボルの型の定義箇所にジャンプする

Go to Declaration

n/a

対象シンボルの宣言箇所にジャンプする

Go to Implementation

Ctrl + F12

対象シンボルの実装箇所にジャンプする

Go to Symbol

Ctrl + Shift + O

シンボルを指定してジャンプする

Go to References

Shift + F12

対象シンボルの参照(利用)箇所にジャンプする

いずれのコマンドにおいても、ジャンプ先候補が複数ある場合には、候補一覧を表示する専用ウィンドウがいったん表示される。そこで項目を選択すると、候補が一つしかない場合に一致した挙動を呈する。

Go to Definition

シンボルにキャレットがある状態で F12 キーを押すと、そのシンボルの定義にキャレットが移動する。あるいは、マウスカーソルをシンボル上に持っていくと下線が現れる。このとき Ctrl を押しながらクリックするのも同様の移動を引き起こす。

プレビュー機能というのもあるので、それで事足りる場合はそちらを使う。

  • Ctrl を押しながらマウスカーソルを対象シンボル上で静止させる。

  • Ctrl + Alt を押しながらクリックすると、その場にポップアップウィンドウで定義のプレビューを表示させる。

Go to Implementation

プログラミング言語によるが、エディター上の関数名などの上で Ctrl + F12 を押すことで、シンボルの実装にキャレットが移動する。

C++ などのように、仮想関数の宣言でこのコマンドを実行すると、関数の実装がサブクラスも含めて表示されるようだ。

Go to Symbol

エディターで Ctrl + Shift + O を押すと、上部にシンボル一覧を示すウィンドウが現れる。この一覧から または を押してシンボルを選択すると、エディター上の対応位置にキャレットが移動する。

なお、記号 @ の次に : を入力すると、一覧表示がカテゴリーごとにグループ化される。

この入力欄ではあいまい検索が効くので、settings.json のようにシンボルを著しく含むファイルを開いたエディターに対しても使えることに注意。

Go to References

これはシンボル版 grep のようなコマンドだ。対象シンボルが出現するすべての箇所を一覧し、そこからジャンプ先を選択するのが通常の利用シナリオだ。

被参照数があまりにも多い場合、Shift + Alt + F12 を押して参照一覧を REFERENCES ビューとして Side Bar に表示することを検討する。

Peek コマンド群

興味のあるシンボルはあるものの、詳細箇所にジャンプする必要がなさそうな場合にはチラ見コマンドが有用だ:

コマンド

既定キーバインド

操作

Peek Definition

Alt + F12

対象の定義を Peek ウィンドウに表示する

Peek Type Definition

n/a

対象の型に対する定義を Peek ウィンドウに表示する

Peek Declaration

n/a

対象の宣言を Peek ウィンドウに表示する

Peek Implementations

Ctrl + Shift + F12

対象の実装を Peek ウィンドウに表示する

Peek References

Shift + F12

対象の参照箇所を Peek ウィンドウに表示する

これらのコマンドが表示するウィンドウは、マウスホバーで表示される 10 行程度のコードを含むポップアップとは別物だ。

表示してみたら当該箇所にジャンプしたくなる場合もある。そのときは Peek ウィンドウ側でダブルクリックするなどすれば、このウィンドウが閉じて目的箇所のためのエディターが開く。

括弧に対するナビゲーション

キャレットを括弧に移動させると、その片割れとなる括弧が控えめにハイライトされる。

ユーザー設定次第で、釣りあう括弧同士を色分けしてエディター上で描画させることも可能だ。

エラーと警告

エディターの言語拡張機能によっては、編集時に動的にコードを解析してエラーおよび警告を生成するものがある。これらの項目はウィンドウ内の何箇所かに出現する:

  • Status Bar の左下の方にエラー数と警告数がアイコン付きで示される。

  • Ctrl + Shift + M を押すたびに、画面下部の PROBLEM パネルの表示を切り替える。

  • エディター内の問題箇所となる文字列と縦スクロールバー付近に波線とマーカーがそれぞれ現れる。

問題のある箇所にジャンプするには、ショートカットキーを使うと早い:

コマンド

既定キーバインド

ジャンプ先

Go to Next Problem

F8

現在のエディター内の次の問題箇所

Go to Previous Problem

Shift + F8

現在のエディター内の前の問題箇所

Go to Next Problem In Files

Alt + F8

全てのエディター内の次の問題箇所

Go to Previous Problem In Files

Alt + Shift + F8

全てのエディター内の前の問題箇所

Todo

問題を発見したときのエディター内容更新を伴う操作について別の章で述べる。