146
Help us understand the problem. What are the problem?

posted at

updated at

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

変数置換構文

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

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

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

定義済み変数置換

変数 中身
${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/tasks.jsonの中身を下記の状態にして、
タスク「check variable」の実行を行ってください。
ショートカットキーは、

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

引用元

https://code.visualstudio.com/docs/editor/variables-reference

関連

https://qiita.com/ShortArrow/items/0bacd3a4bcbcbac50e60

Excelsior!

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
146
Help us understand the problem. What are the problem?