Skip to content

mattiasnordin/StataEditor

Repository files navigation

Stata Editor for Sublime Text 3

by Mattias Nordin

  • Version 0.11.0
  • Date: December 3, 2020

Features

This package provides the ability to write and run Stata code from Sublime Text 3 (ST3). Features in this package include:

  • Clear syntax highlighting
  • Ability to run do-files from ST3 using both ctrl + D ("do") and ctrl + R ("run")
  • Run only selected code with support for multiple selections
  • Access Stata help files from ST3 by selecting the command for which you want access to the documentation and press F1 (open help file in ST3), or ctrl + F1 (open help file in Stata). For the former option, an internet connection is required.
  • Shorthand for creation of locals by pressing alt + L
  • Load a new Stata dataset by selecting a path and pressing alt + shift + U (Equivalent to the command "use 'path', clear"). Please, note that your current work will then be lost, so remember to save your dataset!
  • Some snippets and completions (edit the settings to add completions for functions, commands and files)
  • Plus all other features that come with ST3!

Requirements and Setup

This package only works on Windows machines. To use Stata with Sublime Text on OS X, try Stata Enhanced. StataEditor has been tested on Sublime Text 3 together with Stata 13-15 on Windows 7, Windows 8 and Windows 10. I have very briefly tested it with Stata 11 and Stata 12 and it seems to be working.

To install the package follow the steps outlined below. You can install StataEditor without Package Control, but in that case you probably already know what to do.

  1. Download and install ST3 if you do not already have it installed.

  2. Install Package Control. To get Package Control, click here and follow the instructions for ST3.

  3. Open ST3 and click Preferences -> Package Control. Choose "Install Package" and choose StataEditor from the list. Repeat this step and install the Pywin32 package.

  4. If the path to your Stata installation is "C:/Program Files (x86)/Stata13/StataMP-64.exe" you can skip this step. If not, select Preferences -> Package Settings -> StataEditor -> Settings - Default. Copy the content and then go to Preferences -> Package Settings -> StataEditor -> Settings - User and paste your copied text in the new file. Then change the path to where your Stata installation is located (note that you need to use forward slash, "/", instead of backward slash, "") and save the file. In addition, if you do not use Stata 13, change the Stata version number. Do not change the content of the Settings - Default file. While this will work temporarily, with the next update your changes will disappear. The content of the Settings - User file will not be overwritten when the package is updated.

  5. Finally, to use Stata interactively from ST3, you also need to register the Stata Automation type library. Instructions can be found here. Note that I have had to use the Windows Vista instructions for both Windows 7 and Windows 8 to get Stata Automation to work. Once the Stata Automation type library has been registered, you are good to go! You can also automate this step by using the program in the following link.

Encoding

Stata 14 and Stata 15 have unicode support and uses utf-8 encoding just as ST3. Earlier versions of Stata do not have unicode support. Therefore, if you write Stata code containing non-ASCII characters in ST3, you may notice that these characters have been replaced with nonsense when you open the file in Stata's native do-file editor (versions 13 and earlier). This problem is easily avoided by saving your file with a different encoding in ST3: Simply open "File -> Save with encoding", and choose Western (Windows 1252) (or another appropriate encoding). If your Stata version uses a different encoding than Windows 1252 (again, only Stata 13 and earlier), it is possible to change encoding by going to the settings file (see step 4 under "Requirements and Setup" above) and change the character_encoding option. For a list of encodings to use, see the following link

Acknowledgments

Thanks to Adrian Adermon and Daniel Forchheimer for helpful suggestions and to Sergio Correia for providing additional key bindings.