代码分享 | Stata All in One
logo
目录
Stata All in One
一个为 Stata 用户量身打造的 VS Code 扩展
| 版本: 0.2.13 | 作者: 王梓豪 | Translate: English Version |
一站式 Stata 体验:语法高亮 + 代码提示 + 智能大纲 + 运行代码 + 快捷编辑,All in One!
Stata All in One 源自 Stata Outline,进行了功能扩展和改进。
致谢
感谢小红书用户 Rich**d、微信用户 早起**阳光 对本项目的打赏赞助。
功能概览
1. 增强语法高亮与代码提示
- 完整语法高亮和代码提示支持:集成 Stata Enhanced 语法引擎1,为
.do文件提供精确的语法高亮和代码提示(遵循 MIT 许可)。 - 自定义命令高亮:支持为用户常用的第三方命令(如
reghdfe、ivreghdfe、gtools等)添加关键字高亮,可在设置中自由配置。
2. 智能大纲与结构导航
- 多级大纲识别:自动识别
**#至**######格式的注释行,最高支持 6 级层级标题。- 快捷键:
Ctrl/Cmd + 1-6快速转换对应等级标题,Ctrl/Cmd + 0恢复为普通代码行。
- 快捷键:
- 光标自动跟随:编辑器光标移动时,大纲视图将自动高亮并跳转至对应章节。
- 设置方法:点击大纲右上角
···按钮,勾选「跟随光标」。2
- 设置方法:点击大纲右上角
- 多级逻辑序号:支持在大纲中显示
1.1、1.2.1等格式的序号(需在设置中开启)。 - 自动同步序号:插件会根据大纲结构自动在
.do文件中插入或删除序号(需在设置中开启)。 - 支持
program define块:在大纲视图中显示 program 名称,方便导航和管理自定义程序。
3. 代码运行 (Stata 交互)
- 平台支持:无需额外扩展即可与 macOS 和 Windows 上的 Stata 无缝集成。
- 多场景执行策略:
- 章节运行:当光标在标题行(如
** # 标题)时,点击 ▶️ 按钮 或按Ctrl/Cmd + D,将执行从该标题起始至下一个同级或高级别标题前的所有代码(即整个章节)。 - 单行运行:当光标在普通代码行(无选中)时,点击 ▶️ 按钮 或按
Ctrl/Cmd + D,只执行当前行代码。 - 选中运行:当选中多行代码时,点击 ▶️ 按钮 或按
Ctrl/Cmd + D,执行选中行的代码。支持模糊选中——无需精确选中代码段的首行或尾行,系统会自动捕捉并运行选中内容涉及的全部行。
- 章节运行:当光标在标题行(如
- ⚠️ 注意
- Windows 系统下运行代码依赖 PowerShell 脚本自动化,如果电脑较慢或偶发漏键时可适当调大步骤延迟(设置项
stata-all-in-one.stataStepDelayOnWindows)。 - Windows 系统下运行代码时,如果没有唤起Stata并运行代码,请尝试打开
发送代码前关闭 Stata 其他窗口选项(设置项stata-all-in-one.closeStataOtherWindowsBeforeSendingCode)。
- Windows 系统下运行代码依赖 PowerShell 脚本自动化,如果电脑较慢或偶发漏键时可适当调大步骤延迟(设置项
4. 高效分隔线与样式
- 快速插入:支持多种符号,显著提升代码的可读性。
- 标准分隔符:通过
Ctrl/Cmd + [符号]快速插入分隔线:Ctrl/Cmd + -(短横线) |Ctrl/Cmd + =(等号) |Ctrl/Cmd + Shift + 8(星号)
- 自定义分隔符:
Ctrl + Alt + S(Windows) |Ctrl + Cmd + S(macOS),此处 S 代表 “Separator”(分隔符)。- 按下快捷键后,输入你想要的字符即可生成对应的分隔线。
- 标准分隔符:通过
- 智能包裹模式:
- 空行插入:生成完整宽度的分隔线(长度可在设置中调整)。
- 非空行插入:初次按快捷键在行上方插入,再次按键则在下方插入,实现“包裹”效果。
- 标题修饰:选中标题的若干字符按快捷键,将生成带有平衡装饰符的标题(例如:
**# === 标题内容 ===),且不影响大纲识别。- 标题居中:如果使用 标题修饰 + 自定义空格分隔符,则标题内容将自动居中显示。
5. 更多精彩
-
注释增强(Enhanced Comments)
- 一键切换:使用
Ctrl/Cmd + /快速切换行注释状态。 - 可选样式:默认使用
//,支持在设置中更改为其他合法注释符。
- 一键切换:使用
-
内置帮助(Built-in Help)
- 快捷帮助:例如:选中
regress,按下快捷键Ctrl/Cmd + Shift + H,即可打开 Stata 的regress帮助页面。
- 快捷帮助:例如:选中
-
智能换行(Smart Line Break)
- 一键换行:使用
Shift+Enter在光标位置插入 Stata 换行符///。 - 智能缩进:自动缩进 4 个空格
- 一键换行:使用
-
安全重命名模式(Safe Rename Mode)
- 重命名:选中变量,按
F2键可重命名当前文档中的所有该变量。 - 智能验证:自动验证新名称是否符合 Stata 命名规则,并检查是否与内置命令或关键字冲突。
- 命令保护:智能识别并阻止重命名 Stata 命令(如
reghdfe、outreg2)及其选项(如absorb、ctitle)。
- 重命名:选中变量,按
- 自动
cd到 do 文件目录- 自动设置工作目录:开启后,Stata 首次启动时会自动将工作目录切换到当前 do 文件所在位置。
快捷键
点击这里查看完整快捷键列表。
安装
从扩展市场安装
- VS Code: 在扩展中搜索 “Stata All in One” 并安装。
下载安装(适用于 Cursor、Trae 等基于 VSCode 的 IDE)
- 从以下任一来源下载
stata-all-in-one-x.x.x.vsix: - 在编辑器中打开扩展面板 →
...→从 VSIX 安装...。 - 选择下载的
.vsix文件完成安装。
配置
在 VS Code 设置中搜索 “Stata All in One”,配置以下选项:
语法高亮和代码提示
- 自定义命令高亮 (
stata-all-in-one.customCommands)- 自定义需要高亮的 Stata 命令(字符串数组),默认包含
reghdfe。 - 示例:
["reghdfe", "ivreghdfe", "gtools", "winsor2", "outreg2"] - 配置后需要重载窗口生效。
- 自定义需要高亮的 Stata 命令(字符串数组),默认包含
大纲与导航
-
显示多级序号 (
stata-all-in-one.numberingShow)true:大纲显示1.1、1.2.1等序号。false(默认):显示原始标题。
-
自动添加标题序号 (
stata-all-in-one.numberingAdd)true:当启用序号时,自动更新.do文件中的section标题以包含序号。false(默认):仅大纲显示序号,不修改文件。
代码运行
-
显示运行按钮 (
stata-all-in-one.showRunButton)true(默认):是否在编辑器标题栏显示运行按钮。false:隐藏按钮。
-
显示操作按钮 (
stata-all-in-one.showActionButtons)true(默认):在编辑器标题栏显示"Bug 反馈"和"打赏支持"按钮。false:隐藏这两个按钮。
-
Stata 版本(macOS) (
stata-all-in-one.stataVersionOnMacOS)- [macOS] Stata 运行版本。可选择
StataMP、StataIC、StataSE版本。
- [macOS] Stata 运行版本。可选择
-
Stata 路径(Windows) (
stata-all-in-one.stataPathOnWindows)- [Windows] Stata 执行文件路径(例如
C:\Program Files\Stata17\StataMP-64.exe)。
- [Windows] Stata 执行文件路径(例如
-
步骤延迟(Windows) (
stata-all-in-one.stataStepDelayOnWindows)- [Windows] PowerShell 自动化每一步之间的延迟(毫秒)。默认:
100(最小:50)。电脑较慢或偶发漏键时可适当调大。
- [Windows] PowerShell 自动化每一步之间的延迟(毫秒)。默认:
-
发送代码前关闭 Stata 其他窗口(Windows) (
stata-all-in-one.closeStataOtherWindowsBeforeSendingCode)- [Windows]
true:发送运行命令前先关闭 Stata 辅助窗口(如 Viewer、Data Editor)。 false(默认):保留这些窗口,直接发送代码。
- [Windows]
-
启用 Ctrl+Shift+D 作为运行快捷键 (
stata-all-in-one.enableCtrlShiftD)
true:使用Ctrl/Cmd+Shift+D作为运行代码的快捷键。false(默认):使用默认的Ctrl/Cmd+D快捷键。
- 自动 cd 到 do 文件目录 (
stata-all-in-one.cdToDoFileDir)- `true`(默认):Stata 首次启动时自动将工作目录切换到当前 do 文件所在位置。false:Stata 启动后不更改工作目录。
代码风格
-
注释样式 (
stata-all-in-one.commentStyle)//(默认):用于切换注释的样式。选项包括//、*或/* ... */
-
分隔线长度 (
stata-all-in-one.separatorLength)- 分割线所在行的字符总长度(包括前缀 '** #' 和分隔符)。默认值:
60
- 分割线所在行的字符总长度(包括前缀 '** #' 和分隔符)。默认值:
- 分隔线对称性 (
stata-all-in-one.separatorSymmetric)
true:在分割线末尾添加**以保证视觉对称(例如** === 标题 === **)。false(默认):分割线不添加末尾后缀。
注意:修改设置后需重新打开
.do文件生效。禁用numberingAdd时,文件中现有序号将被自动移除。
打赏支持
如果这个扩展对你有帮助,欢迎扫描下方的 支付宝(左)、微信(中)或 Buy me a Coffee(右)二维码,支持一下 ☕
版本记录
| 版本 | 更新内容 | 发布日期 |
|---|---|---|
| 0.2.13 | Windows 下运行代码时,不再把已贴靠或最大化 的 Stata 窗口还原成更小的普通窗口,现会保持 Stata 当前窗口大小不变 | 2026-03-12 |
| 0.2.12 | 重构Windows端的代码执行逻辑;Windows端可配置发送代码前是否关闽 Viewer、数据编辑器等辅助窗口;新增配置是否氺示“Bug 反馈”和“打赏支持”按鑀 | 2026-03-05 |
| 0.2.11 | 新增可选配置:Stata 首次启动时自动 cd 到 do 文件所在目录(默认关闭) |
2026-03-02 |
| 0.2.10 | 优化代码运行逻辑(章节/单行/选中运行);新增运行快捷键可选;新增 F2 变量重命名功能 | 2026-02-27 |
详见 CHANGELOG.md 完整版本记录。
-
Stata Enhanced 语法引擎由 Kyle Barron 开发,提供了对 Stata 语言的全面支持。本拓展遵循 MIT 许可协议,感谢 Kyle Barron 的贡献! ↩︎
-
抱歉~此为VS Code的GUI设置,我无法通过插件控制它。 ↩︎