代码分享 | Stata All in One

2026年1月27日·
王梓豪
王梓豪
· 7 分钟阅读时长
logo
目录

Stata All in One Icon

Stata All in One

一个为 Stata 用户量身打造的 VS Code 扩展

| 版本: 0.2.13 | 作者: 王梓豪 | Translate: English Version |


一站式 Stata 体验:
语法高亮 + 代码提示 + 智能大纲 + 运行代码 + 快捷编辑,All in One!

被安装次数 修订次数 小红书点赞收藏 ~500 打赏支持

Stata All in One 源自 Stata Outline,进行了功能扩展和改进。


致谢

感谢小红书用户 Rich**d、微信用户 早起**阳光 对本项目的打赏赞助。

功能概览

An example of Stata All in One Icon

1. 增强语法高亮与代码提示

  • 完整语法高亮和代码提示支持:集成 Stata Enhanced 语法引擎1,为 .do 文件提供精确的语法高亮和代码提示(遵循 MIT 许可)。
  • 自定义命令高亮:支持为用户常用的第三方命令(如 reghdfeivreghdfegtools 等)添加关键字高亮,可在设置中自由配置。

2. 智能大纲与结构导航

  • 多级大纲识别:自动识别 **#**###### 格式的注释行,最高支持 6 级层级标题
    • 快捷键Ctrl/Cmd + 1-6 快速转换对应等级标题,Ctrl/Cmd + 0 恢复为普通代码行。
  • 光标自动跟随:编辑器光标移动时,大纲视图将自动高亮并跳转至对应章节。
    • 设置方法:点击大纲右上角 ··· 按钮,勾选「跟随光标」。2
  • 多级逻辑序号:支持在大纲中显示 1.11.2.1 等格式的序号(需在设置中开启)。
  • 自动同步序号:插件会根据大纲结构自动在 .do 文件中插入或删除序号(需在设置中开启)。
  • 支持program define:在大纲视图中显示 program 名称,方便导航和管理自定义程序。

3. 代码运行 (Stata 交互)

  • 平台支持:无需额外扩展即可与 macOSWindows 上的 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)。

4. 高效分隔线与样式

  • 快速插入:支持多种符号,显著提升代码的可读性。
    • 标准分隔符:通过 Ctrl/Cmd + [符号] 快速插入分隔线:
      • Ctrl/Cmd + - (短横线) | Ctrl/Cmd + = (等号) | Ctrl/Cmd + Shift + 8 (星号)
    • 自定义分隔符
      • Ctrl + Alt + S (Windows) | Ctrl + Cmd + S (macOS),此处 S 代表 “Separator”(分隔符)。
      • 按下快捷键后,输入你想要的字符即可生成对应的分隔线。
  • 智能包裹模式
    • 空行插入:生成完整宽度的分隔线(长度可在设置中调整)。
    • 非空行插入:初次按快捷键在行上方插入,再次按键则在下方插入,实现“包裹”效果。
    • 标题修饰:选中标题的若干字符按快捷键,将生成带有平衡装饰符的标题(例如:**# === 标题内容 ===),且不影响大纲识别。
      • 标题居中:如果使用 标题修饰 + 自定义空格分隔符,则标题内容将自动居中显示。

5. 更多精彩

  1. 注释增强(Enhanced Comments)

    • 一键切换:使用 Ctrl/Cmd + / 快速切换行注释状态。
    • 可选样式:默认使用 //,支持在设置中更改为其他合法注释符。
  2. 内置帮助(Built-in Help)

    • 快捷帮助:例如:选中 regress,按下快捷键Ctrl/Cmd + Shift + H,即可打开 Stata 的 regress 帮助页面。

  1. 智能换行(Smart Line Break)

    • 一键换行:使用 Shift+Enter 在光标位置插入 Stata 换行符 ///
    • 智能缩进:自动缩进 4 个空格
  2. 安全重命名模式(Safe Rename Mode)

    • 重命名:选中变量,按 F2 键可重命名当前文档中的所有该变量。
    • 智能验证:自动验证新名称是否符合 Stata 命名规则,并检查是否与内置命令或关键字冲突。
    • 命令保护:智能识别并阻止重命名 Stata 命令(如 reghdfeoutreg2)及其选项(如 absorbctitle)。

  1. 自动 cd 到 do 文件目录
    • 自动设置工作目录:开启后,Stata 首次启动时会自动将工作目录切换到当前 do 文件所在位置。

快捷键

点击这里查看完整快捷键列表。


安装

从扩展市场安装

  • VS Code: 在扩展中搜索 “Stata All in One” 并安装。

下载安装(适用于 Cursor、Trae 等基于 VSCode 的 IDE)

  1. 从以下任一来源下载 stata-all-in-one-x.x.x.vsix
  2. 在编辑器中打开扩展面板 → ...从 VSIX 安装...
  3. 选择下载的 .vsix 文件完成安装。

配置

在 VS Code 设置中搜索 “Stata All in One”,配置以下选项:

语法高亮和代码提示

  1. 自定义命令高亮 (stata-all-in-one.customCommands)
    • 自定义需要高亮的 Stata 命令(字符串数组),默认包含 reghdfe
    • 示例:["reghdfe", "ivreghdfe", "gtools", "winsor2", "outreg2"]
    • 配置后需要重载窗口生效

大纲与导航

  1. 显示多级序号 (stata-all-in-one.numberingShow)

    • true:大纲显示 1.11.2.1 等序号。
    • false(默认):显示原始标题。
  2. 自动添加标题序号 (stata-all-in-one.numberingAdd)

    • true当启用序号时,自动更新.do文件中的section标题以包含序号。
    • false(默认):仅大纲显示序号,不修改文件。

代码运行

  1. 显示运行按钮 (stata-all-in-one.showRunButton)

    • true(默认):是否在编辑器标题栏显示运行按钮。
    • false:隐藏按钮。
  2. 显示操作按钮 (stata-all-in-one.showActionButtons)

    • true(默认):在编辑器标题栏显示"Bug 反馈"和"打赏支持"按钮。
    • false:隐藏这两个按钮。
  3. Stata 版本(macOS) (stata-all-in-one.stataVersionOnMacOS)

    • [macOS] Stata 运行版本。可选择 StataMPStataICStataSE 版本。
  4. Stata 路径(Windows) (stata-all-in-one.stataPathOnWindows)

    • [Windows] Stata 执行文件路径(例如 C:\Program Files\Stata17\StataMP-64.exe)。
  5. 步骤延迟(Windows) (stata-all-in-one.stataStepDelayOnWindows)

    • [Windows] PowerShell 自动化每一步之间的延迟(毫秒)。默认:100(最小:50)。电脑较慢或偶发漏键时可适当调大。
  6. 发送代码前关闭 Stata 其他窗口(Windows) (stata-all-in-one.closeStataOtherWindowsBeforeSendingCode)

    • [Windows] true:发送运行命令前先关闭 Stata 辅助窗口(如 Viewer、Data Editor)。
    • false(默认):保留这些窗口,直接发送代码。
  7. 启用 Ctrl+Shift+D 作为运行快捷键 (stata-all-in-one.enableCtrlShiftD)

  • true:使用 Ctrl/Cmd+Shift+D 作为运行代码的快捷键。
  • false(默认):使用默认的 Ctrl/Cmd+D 快捷键。
  1. 自动 cd 到 do 文件目录 (stata-all-in-one.cdToDoFileDir)
    - `true`(默认):Stata 首次启动时自动将工作目录切换到当前 do 文件所在位置。
    
    • false:Stata 启动后不更改工作目录。

代码风格

  1. 注释样式 (stata-all-in-one.commentStyle)

    • // (默认):用于切换注释的样式。选项包括 //*/* ... */
  2. 分隔线长度 (stata-all-in-one.separatorLength)

    • 分割线所在行的字符总长度(包括前缀 '** #' 和分隔符)。默认值:60

  1. 分隔线对称性 (stata-all-in-one.separatorSymmetric)
  • true:在分割线末尾添加 ** 以保证视觉对称(例如 ** === 标题 === **)。
  • false(默认):分割线不添加末尾后缀。

注意:修改设置后需重新打开 .do 文件生效。禁用 numberingAdd 时,文件中现有序号将被自动移除。


打赏支持

如果这个扩展对你有帮助,欢迎扫描下方的 支付宝(左)、微信(中)或 Buy me a Coffee(右)二维码,支持一下 ☕

Support QR Code


版本记录

版本 更新内容 发布日期
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 完整版本记录。


  1. Stata Enhanced 语法引擎由 Kyle Barron 开发,提供了对 Stata 语言的全面支持。本拓展遵循 MIT 许可协议,感谢 Kyle Barron 的贡献! ↩︎

  2. 抱歉~此为VS Code的GUI设置,我无法通过插件控制它。 ↩︎