ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

StataLinux

acarril ST3 Linux

为 Linux 添加对 Stata(所有版本)支持的 Sublime Text 3 插件。

标签 stata

详细信息

安装次数

  • 总数 334
  • Win 0
  • Mac 0
  • Linux 334
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0

说明文件

源代码
raw.​githubusercontent.​com

StataLinux

Sublime Text 3 插件,添加基本 Stata(所有版本)在 Linux 中的支持。

  • doado 文件的代码语言定义
  • 将所选行或整个文件发送到 Stata 的命令。有关更多详细信息,请参阅 使用方法

screencast_functions.gif

背景

我需要一个最小但健壮的插件,将代码从 Sublime Text 发送到 Stata。由于 Package Control 中的插件没有专为 Linux 定制,且似乎没有一个维护者想要添加对其的支持,所以我编写了自己的插件。该插件最初基于 StataEnhanced 以及 这些笔记

此插件以稳健性而非花哨的功能为目标,几乎所有决策都是基于这一理念。它基本上创建一个临时文件,该文件包含当前所选的行或要执行的整个 do 文件。在后台,xdotool 用于从 Stata 的命令面板调用临时文件。

依赖

  • xdotool

此软件包可能已经在您的系统中。您可以通过在每个名称后键入 --version 选项来检查它们的存在。例如,

xdotool --version

如果输出类似于 xdotool 版本 3.20160805.1,则表示已安装。如果您收到错误,则表示此软件包未安装。使用您的系统软件包管理器安装它们。例如,

Arch(-based)

sudo pacman -S xdotool

Ubuntu(-based)

sudo apt install xdotool

etc.

安装

有两种方法可以安装此插件

  1. 在 Package Control 中搜索“StataLinux”,或
  2. 将整个插件文件夹(此存储库)复制/克隆到 ~/.config/sublime-text-3/Packages/

在使用它之前,请确保您已安装上述依赖项

用法

请确保已经打开了一个Stata实例。在ST3中打开.do(或.ado)文件。您有两个执行代码的关键绑定:

  1. ctrl+alt+d执行当前行,或者在选定了行的itty情况下执行选定的行,
  2. crtl+alt+shift+d执行整个文件。

您还可以使用命令面板调用这些操作:使用ctrl+shit+p启动它,键入“StataLinux”并选择一个操作。此外,您可以在Tools > Packages > StataLinux下的主菜单中访问这些操作。

可以通过在您的sublime-keymap文件中包含以下内容来更改默认键绑定。此文件可以在Preferences > Package Settings > Stata Linux下的Key Bindings中查看和编辑。以下是一个使用ctrl+enter运行选定行的示例。

// StataLinux
    { "keys": ["ctrl+enter"], "command": "stata_linux", "context":
        [{ "key": "selector", "operator": "equal", "operand": "source.stata", "match_all": true }]

执行整个文件的可执行stata_linux_all命令也可以相应调整。

其他功能

注释

使用ST3的默认键绑定ctrl+\切换整个行的注释。可以使用ctrl+shift+\注释任意块。

comments_basic.gif

本地变量

在代码的任何位置键入反引号`,光标将立即在其后放置一个闭合引号。如果选中一个word,则键入反引号将产生`word'

locals.gif

选项

以下选项可以在主菜单Preferences > Package Settings > StataLinux > Settings下找到。

  • save_before_run_all(默认 = true):在“发送所有”命令之前自动保存当前文件。

  • always_extract_full_line(默认 = true):始终提取整个行(true)或仅提取精确选择(false)。如果没有选择任何内容,则提取光标下的整个行。默认行为模仿Stata,以便用户熟悉,但在某些情况下,运行部分行可以节省时间。因此,将此设置为false允许您快速运行带有或不带有if条件或by语句的命令。如果当前选择为空,此插件将运行整个行,而不是整个do文件。虽然这与Stata的默认行为不同,但我们认为这不是一个好的设计选择,可以在那种情况下始终显式使用Run all功能。

  • remove_temp_file(默认: false):运行后删除临时文件。

Stata版本、风味和实例

请确保您已打开了一个带GUI的 Stata实例(xstata及其各种风味);此插件不适用于Stata的CLI。无需添加任何额外的配置来指示版本或风味,因为程序将自动检测任何运行的实例。如果您打开了多个Stata实例,插件将默认选择最新打开的一个(内部,它寻找xdotool search --name --limit 1 "Stata/(IC|SE|MP)? 1[0-9]\.[0-9]"的结果)。

已知问题

  1. 目前存在一个与xdotoolclearmodifiers选项问题。这会导致,如果任何键盘修饰符(例如,大写锁定)未被手动关闭,插件将无法正确操作。现在不再是问题,因为我正在使用与xdotool--window,这似乎比聚焦和重新聚焦窗口更干净,而且还有一个好处,即忽略任何活动修饰符。

  2. 目前没有切换到Stata窗口焦点选项。这是因为存在使用xdotool--window选项(见问题#1)的合理理由,因此我计划实现这个选项。窗口焦点是窗口管理器的任务。