Techtouch Developers Blog

テックタッチ株式会社の開発チームによるテックブログです

社内でよく使う VSCode の機能紹介

テックタッチのバックエンドエンジニアの taisa です。

社内勉強会で、Visual Studio Code(以降 VSCode と記載)ナレッジ共有会を実施したのでその内容を紹介します。

今回の趣旨は「VSCode で各自がよく使う機能やショートカット、ちょっとしたノウハウを共有することで開発効率を向上させたい」というものです。自分自身 VSCode を使いこなせておらず、他のメンバーの使い方に興味がありました。共有会では、みんなで順番に画面共有しながら進めていきました。

コマンドパレット編

まずはコマンドパレットです。コマンドパレットを使えば、ショートカットコマンドを割り当てたり、覚えてなくても様々な機能が実行できるので大変便利な機能です。以下のショートカットからウィンドウを開き実行したいコマンドを実行します。

Mac Windows
cmd + shift + P ctrl + shift + P

例えば「>View: Split Editor Right」を実行するとエディタ表示の分割ができます。これはタブ上で右クリック > Split Right を選択したのと同じ動作です。

また、バックエンド開発は Golang で行っているので、Go を例にすると、プラグイン をインストールすれば、>Go:と入力して必要なコマンドを選択するだけで、開発する上での便利なコマンドが実行可能になります。

例えば、struct 定義内で下記コマンドを実行すると struct にタグが自動生成できます。

>Go: Add Tags To Struct Fields

type User struct { // このカッコ内でコマンドを実行する
    ID        int
    Email     string
    FirstName string
    LastName  string
}

デフォルトではjson: "snake_case, omitempty"が自動生成されます。

type User struct {
    ID        int   `json:"id,omitempty"`
    Email     string `json:"email,omitempty"`
    FirstName string `json:"first_name,omitempty"`
    LastName  string `json:"last_name,omitempty"`
}

.vscode/settings.jsonに下記を追加すると、camelcaseにしてomitemptyを無くすことが可能です。

{
    "go.addTags": {
        "tags": "json",
        "options": "json=",
        "promptForTags": false,
        "transform": "camelcase"
    }
}
type User struct {
    ID        int   `json:"id"` // このカッコ内でコマンドを実行する
    Email     string `json:"email"`
    FirstName string `json:"firstName"` // `json: "camelCase"`になる
    LastName  string `json:"lastName"`
}

シンボル検索編

次はシンボル検索です。シンボル検索は、開いているファイルの function や struct(Golang であれば)を検索する機能です。下記のショートカットからウィンドウを開き検索したいシンボルを入力します。

Mac Windows
cmd + shift + O ctrl + shift + O

「@」に加えてコロン「@:」を入力するとシンボルがグルーピングできます。

また、下記ショートカットを実行するとプロジェクト内すべてのシンボルが検索できます。

Mac Windows
cmd + T ctrl + T

ショートカット編

次はショートカットです。コードの編集機能は vim プラグインを使っていたり人それぞれなので、VSCode 共通でよく使う機能だけピックアップしました。

最近開いたプロジェクトを開く

下記のショートカットで、プロジェクト選択後「enter」を実行すると、現在開いているプロジェクトが切り替わりますが「ctrl + enter」を実行すると新しいウィンドウでプロジェクトが開けます。

Mac Windows
ctrl + R ctrl + R

最近開いたファイルを開く / ファイルを検索する

最近開いたファイル一覧を表示しつつ、入力するとプロジェクト内のファイルが検索できます。これは誰もが使っているであろうショートカットですね。

Mac Windows
cmd + P ctrl + P

サイドバーを開く/ 閉じる、パネルを開く/ 閉じる、エクスプローラを開く

開発時にエディタを広く使いたい、ターミナルに移動したい、エクスプローラに移動したいときに良く使うショートカットです。

アクション Mac Windows
サイドバーを開く/ 閉じる cmd + B ctrl + B
パネルを開く/ 閉じる cmd + J ctrl + J
エクスプローラを開く cmd + shift + E ctrl + shift + E

指定のエディタに移動する

エディタを複数に分割しながら開発している時にエディタ間を移動するショートカットです。

Mac Windows
cmd + 1 / cmd + 2・・ ctrl + 1 / ctrl + 2・・

Grep する

下記のショートカットを実行して Grep したい文字を入力後、F4 で「次へ」「次へ」「次へ」、Shift と併せると「前へ」「前へ」「前へ」と Grep 結果を見ていけます。

Mac Windows
cmd + shift + F ctrl + shift + F

特定の文字列を選択して置換する

選択したコードを順番に複数選択するショートカットです。置換したいコードを一つずつ確認しながら選択していくときによく使います。

Mac Windows
cmd + D ctrl + D

定義へ移動、直前の場所に戻る、直前の場所に進む

こちらもよく使うショートカットですが、特に Mac ユーザーの場合「直前の場所に進む」のは以外と使ってないのではということでピックアップしました。

アクション Mac Windows
定義へ移動 F12 F12
直前の場所に戻る ctrl + - alt + ←
直前の場所に進む ctrl + shift + - alt + →

シンボル名を変更する

F2 でシンボル名を変更すると参照されているシンボル名も書き換えられます。

Mac Windows
F2 F2

Git 編

GitLens を入れておけば「SOURCE CONTROL」でやりたいことは大体可能になります。

コマンドパレットの GitLens コマンドでも実行可能です。

特定の行をハイライトした状態のURLを取得する

Git のちょっと便利だなと思った機能として「特定の行をハイライトした状態のURLを取得する機能」がありました。

コード上で「右クリック > Copy As > Remote File url」とすると、GitHub などのリモートファイルの特定の行をハイライトした状態のURLが取得できるので、ここってピンポイントで伝えたいときに便利です。

Extension 編

次は Extension です。話題に出た Extension をざっと紹介します。

Jest Runner

特定のテストに対してクリックでテスト実行ができます。フロント開発のテストでは Jest を利用しているので入れています。

Breakpoint をおいて「Debug」実行するとステップ実行も可能です。

Turbo Console Log

console.logが簡単に埋め込めます。

Mac Windows
ctrl + option + L ctrl + alt + L

対象の変数を選択して上記ショートカットを実行すると下記のようなconsole.logが自動生成されます。

Code Spell Checker

スペルミス箇所にはゲジゲジがついてスペルミスをお知らせしてくれます。

indent-rainbow

インデントが見やすくなります。

わかりにくいですが、タブ毎に色が変わってます。

Bracket Pair Colorizer 2

indent-rainbow と組み合わせると結構カラフルになりますが、カッコの対応が分かりやすくなります。

自分が今いるカッコに線がついて対象のカッコが分かりやすくなります。

Todo Tree

TODO や FIXME が一覧で確認できるツリーアイコンがアクティビティバーに追加されます。

設定編

最後に簡単に設定についてです。設定については主に下記が話題にあがりました。

  • .editorconfig
    • プロジェクトのエディタの設定を統一するのに便利
  • Settings Sync
    • 複数環境で VSCode を使って開発するときに便利
  • extensions.json
    • 最低限この拡張だけは入れといてくれってするのに便利

まとめ

テックタッチ社内で行った VSCode ナレッジ共有会で出た内容をピックアップして紹介しました。ランチタイムの1時間だけですが、普段使っているツールでも話しながら共有してみると新しい発見があるのでためになりました。

テックタッチでは定期的に Spark Lunch という名の社内勉強会を行っています。Spark Lunch については、以下の記事で紹介しているのでぜひ読んでみてください。

www.wantedly.com