News flash: My favorite SAS code editor is SAS Enterprise Guide. However, my favorite general purpose text editor is Notepad++, and I often find myself using that tool for viewing SAS log files and for making small modifications to SAS programs. Judging from the popularity of this SAS Support Communities discussion, I'm not alone. In this post, I'll share the steps for turning Notepad++ into a more useful home for SAS programs.
You can download Notepad++ for Windows from here -- you can use it for free, no cost. That's one reason that it's one of the first tools that I install on any new PC I get my hands on!
1. Associate SAS files with Notepad++
You accomplish this in the usual way with Windows. In Windows Explorer, right-click (or SHIFT+right-click depending on your setup) on a .SAS file (SAS program), and select Open with...
► You might see Notepad++ in the menu, but don't select it, Instead, select Choose another app.
► In this menu, select Notepad++ and check the "Always use this app" checkbox.
Repeat this step for SAS program logs (.LOG files) and listing output (.LST files) if you want.
2. Run a SAS program from Notepad++
You can add new program actions to the Run menu in Notepad++. Here's how to add a command to run a SAS program, if you have SAS for Windows installed. Note: These steps assume that the SAS program is open in Notepad++ and is saved in a file.
► Select Run... from the Run menu. In the program to run field, enter this command:
-sysin "$(FULL_CURRENT_PATH)" -log "$(CURRENT_DIRECTORY)\$(NAME_PART).log"
all on one line. You might need to adjust the SAS.EXE path for your install. The command options use some Notepad++ environment variables to direct the SAS log and listing output to the same path as the SAS program file.
Click Save (not Run).
Optionally, assign a shortcut key to the action, and name it "Run program file in SAS" (or whatever you want). This adds the command to your Run menu.
When you select it, Notepad++ will launch SAS, run your program in batch, and direct the output to the same folder where the program is stored.
3. Adding SAS syntax color coding to Notepad++
It's simple to "teach" Notepad++ to recognize the keywords from SAS and other languages. You can download new language definitions files from here -- follow the instructions on the page to have your Notepad++ recognize them. I've created an expanded definition file that includes more SAS keywords (many, many more!) -- you can grab that from my GitHub repo here (be sure to copy/save the "raw" view of the file as XML, then import that into Notepad++).
Note: some people have reporting problems trying to import the file I shared. Here's one comment with a workaround: "The SAS XML langage script for NPP (implicitly : NPP running on Windows) you generously provide must be transcoded into ANSI before import, downloading the GitHub file with a browser, even the raw version, gives you the XML file encoded with UTF-8, which fails to import, at least for me. For this transcoding, I only had to open the file, with NPP itself then select Encoding / Convert to ANSI, then Ctrl+S."
Here's what SAS code looks like in my Notepad++:
I'm sure that some of you have spent more time than I have in creating a souped-up Notepad++ environment, or perhaps you've taken it to another level with other popular editors like Sublime or Vim or UltraEdit. If you have other tips to share, I'd love to hear from you in the comments.