必须手动安装 free pascal 编译器并确保 fpc 命令可在 vscode 终端中执行;安装 pascal 扩展仅提供语法支持,编译需配置 tasks.json 或使用 code runner 快速运行。

能直接编译运行,但必须手动装好 Free Pascal 编译器,VSCode 本身不带编译能力,只负责调用它。
确认 Free Pascal 已正确安装并可被终端识别
这是整个流程的前提,所有后续配置都依赖 fpc 命令能在 VSCode 内置终端中执行成功。
- 在终端里运行
fpc -i,应输出版本信息(如FPC 3.2.2)和目标平台;若报command not found,说明 FPC 没进系统 PATH - macOS 用户:安装 pkg 后通常自动写入
/usr/local/bin/fpc,检查该路径是否存在;若用 Homebrew 安装过,确认是否执行了brew link fpc - Windows 用户:安装时勾选“Add to PATH”选项,或手动把类似
C:FPC.2.2ini386-win32的路径加进系统环境变量 - Ubuntu/Debian 用户:用
sudo apt install fp-compiler安装后,fpc命令默认可用,无需额外配置
安装 Pascal 扩展并验证基础语法支持
扩展只提供语法高亮、括号匹配、注释格式化等编辑辅助,不参与编译——别指望它“自带编译器”。
- 在 VSCode 扩展市场搜
Pascal,认准作者alefragnani的那个(ID 是alefragnani.pascal),安装后重启 VSCode - 新建文件,保存为
hello.pas,输入begin writeln('ok'); end.,观察begin、writeln是否有颜色,括号是否能跳转匹配 - 如果关键字无着色,检查文件右下角语言模式是否为
Pascal;不是的话点它 → 选择Configure File Association for '.pas'→ 设为Pascal
配置 tasks.json 实现一键编译
VSCode 的任务系统是调用 fpc 的桥梁,tasks.json 写错一个参数,就只能看到“终端已终止”或空输出。
- 按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux),输入Tasks: Configure Task→Create tasks.json file from template→Others - 替换生成的内容为以下最小可用配置(注意
type用shell,不是process;args必须包含"${file}"):
{
"version": "2.0.0",
"tasks": [
{
"label": "compile",
"type": "shell",
"command": "fpc",
"args": ["${file}", "-g", "-O-"],
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": true
},
"problemMatcher": {
"owner": "external",
"pattern": {
"regexp": "^([\w]+\.(p|pp|pas))\((\d+)\,(\d+)\)\s(Fatal|Error|Warning|Note):(.*)",
"file": 1,
"line": 3,
"column": 4,
"message": 6
}
}
}
]
}
-
-g是调试必需的,即使暂时不调试也建议加上;-O-关闭优化,避免调试时变量值被优化掉或断点错位 - 保存后,打开
.pas文件,按Cmd+Shift+B(macOS)或Ctrl+Shift+B(Windows/Linux),看终端是否输出Compilation succeeded
用 CodeRunner 快速运行(非调试场景首选)
如果你只是想写完按个快捷键就看到输出,不用断点、不关心调试符号,code-runner 比 tasks + launch 配置轻量得多。
- 安装扩展
Code Runner(作者:Jun Han) - 打开 VSCode 设置(
Cmd+,),搜索code-runner.executorMap,点击“在 settings.json 中编辑”,添加:
"code-runner.executorMap": {
"pascal": "fpc $fullFileName && ./$fileNameWithoutExt"
}
- 注意:Linux/macOS 下命令末尾是
./$fileNameWithoutExt,Windows 下要改成$fileNameWithoutExt.exe - 保存后,任意
.pas文件里右键 →Run Code,或按Cmd+Alt+N,即可编译并立即运行,输出直接显示在 OUTPUT 面板 - 这个方式绕过了 tasks.json 和 launch.json,适合教学、刷题、快速验证逻辑,但无法设断点或查看变量内存值
最常被忽略的是:FPC 编译出的可执行文件名默认和源文件同名(不含扩展),但 Windows 下会自动加 .exe 后缀,而 macOS/Linux 不加。调试时如果 launch.json 里写错路径(比如 macOS 写成 ./hello.exe),就会提示“找不到文件”——这种细节不实操一次根本记不住。











