VS Code で編集中のファイルがあるディレクトリを起点にターミナルを開く

VS Codeを使っていると、今編集中のファイルがあるディレクトリで、そのままターミナルを開きたいことがあります。

毎回エクスプローラで場所を確認したり、cdで移動したりするのは少し面倒です。

VS Codeでは、キーバインドを1つ追加しておくと、アクティブなファイルのあるディレクトリを作業ディレクトリにした新しいターミナルをすぐに開けます。


やりたいこと

今回やりたいのは次のような動作です。

  • エクスプローラを辿らない
  • cdを入力しない
  • 今編集中のファイルがあるフォルダでターミナルを開く

これをショートカットキー1つでできるようにします。


キーバインドを追加する

キーボードショートカットのJSONを開く

まず、コマンドパレットを開きます。

Ctrl + Shift + P

そこから、

Preferences: Open Keyboard Shortcuts (JSON)

を選びます。

キーバインドを追加する

今回は例として`Ctrl + Alt + “に割り当てます。

[
  {
    "key": "ctrl+alt+`",
    "command": "workbench.action.terminal.newWithCwd",
    "args": {
      "cwd": "${fileDirname}"
    }
  }
]

すでに別のキーバインドが設定されている場合は、配列の中にこの設定を追加します。


使い方

エディタでファイルを開いた状態で、

Ctrl + Alt + `

を押します。

すると、そのファイルが保存されているディレクトリを起点に新しいターミナルが開きます。

例えば、

C:\work\project\src\main.f90

を開いている場合は、

C:\work\project\src

を作業ディレクトリにしたターミナルが起動します。

複数のディレクトリを行き来しながら作業するときでも、毎回cdする必要がありません。


設定の意味

今回使っているコマンドは、

workbench.action.terminal.newWithCwd

です。

名前のとおり、作業ディレクトリを指定して新しいターミナルを開くためのコマンドです。

作業ディレクトリには、

${fileDirname}

を指定しています。

これは、現在アクティブになっているファイルが保存されているディレクトリを表します。


注意点

いくつか注意点があります。

  • 未保存のファイルでは使えません
  • ワークスペースのルートではなく、実際のファイルの保存場所が基準になります
  • 既存のターミナルへ移動するのではなく、新しいターミナルが開きます

特に未保存のUntitledファイルでは、基準になるディレクトリがないため動作しません。


まとめ

設定する内容はかなり簡単です。

  • workbench.action.terminal.newWithCwdを使う
  • cwd${fileDirname}を指定する
  • 好きなショートカットキーを割り当てる

小さな設定ですが、ファイルのある場所まで毎回cdする必要がなくなるので便利です。

コメント

タイトルとURLをコピーしました