Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
105
Help us understand the problem. What is going on with this article?
@ShortArrow

VS Codeの設定をキレイに変数置換【VS Code使い方①】

変数置換構文

launch.json や tasks.json では ${variableName} という構文で変数置換を行うことができます。どの言語でコーディングするときでも使えるので一読しておくと後で役に立ちそう。

役に立ちそうな状況や対象

  • OSが混在するチーム開発
  • 不特定多数が利用するプロジェクトテンプレート
  • ReactNativeやUnityなどのクロスプラットフォーム開発

定義済み変数置換

変数 中身
${workspaceFolder} VS Codeで開かれたフォルダのパス
${workspaceFolderBasename} VS Codeで開いたフォルダの名前、スラッシュ(/)なし
${file} 現在開かれているファイル
${relativeFile} workspaceFolderを基準にした現在開いているファイル
${relativeFileDirname} workspaceFolderを基準にした現在開いているファイル
${fileBasename} 現在開かれているファイルのベース名
${fileBasenameNoExtension} ファイルを拡張子なしで現在開かれているファイルのベース名
${fileDirname} 現在開かれているファイルのディレクトリ名
${fileExtname} 現在開いているファイルの拡張子
${cwd} タスクランナー起動時のカレント作業ディレクトリ
${lineNumber} VSCodeの編集画面で現在選択されている行番号
${selectedText} VSCodeの編集画面で現在選択されているテキスト
${execPath} 実行中のVS Code実行可能ファイル「code.exe」のアドレス
${defaultBuildTask} デフォルトのビルドタスクの名前

定義済み変数置換の実例

ルートワークスペースとして、「/home/your-username/your-project」を開き、「/home/your-username/your-project/folder/file.ext」を編集していると仮定します。
すると変数は以下のようになるでしょう。

変数 中身
${workspaceFolder} /home/your-username/your-project
${workspaceFolderBasename} your-project
${file} /home/your-username/your-project/folder/file.ext
${relativeFile} folder/file.ext
${relativeFileDirname} folder
${fileBasename} file.ext
${fileBasenameNoExtension} file
${fileDirname} /home/your-username/your-project/folder
${fileExtname} .ext
${lineNumber} VSCodeの編集画面で現在選択されている行番号
${selectedText} VSCodeの編集画面で現在選択されているテキスト
${execPath} 実行中のVS Code実行可能ファイル「code.exe」のアドレス

変数の中身の確認方法

例えば${fileDirname}の中身を見たい場合、
${workspaceFolder}/.vscode/task.jsonの中身を下記の状態にして、
タスク「check variable」の実行を行ってください。
ショートカットキーは、

  • Winの場合
    • Ctrl+Shift+PTasks: Run Task
  • Macの場合
    • Command+Shift+PTasks: Run Task
./.vscode/task.json
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "check variable",
      "type": "shell",
      "command": "echo",
      "args" : ["${fileDirname}"]
    }
  ]
}

引用元

関連

Excelsior!

105
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
105
Help us understand the problem. What is going on with this article?