39

When I'm using textmate, I simply hit "apple+r" and the program gets interpreted. How can I run a program from within notepad++? I see that F5 is for "Run", but pointing that to Python.exe simply opens up a terminal with python running. It does not run my script.

1
  • Hi Chad, is the top answer acceptable to you? If so, please mark it as such or provide further specs. Commented Apr 29, 2015 at 8:14

6 Answers 6

51

Plugins NppExec Execute (F6) is much more powerful than plain Run (F5). Install NppExec via Plugins, Plugin Manager. Then in F6 add/save the following:

NPP_SAVE
cd "$(FULL_CURRENT_PATH)"
C:\Python34\python.exe -u "$(FULL_CURRENT_PATH)"

In Plugins NppExec Console output filters (Shift+F6) add the following HighLight mask:

*File "%FILE%", line %LINE%

Make sure it's checked, and make it e.g. red and underlined.

Upon "F6/execute" errors will be highlighted and clickable !

This works in NPP568, possibly older.

7
  • 1
    ABSFILE didn't work for me, I had to use this: ****File "%FILE%", line %LINE%, in**** Commented Apr 15, 2011 at 8:25
  • Works for me (php in my case), and is (double-)clickable, BUT double-clicking only navigates the specified line number in the active file, it doesn't open the file indicated by %ABSFILE%. This makes clickability almost useless when working on library scripts.
    – yoyo
    Commented Mar 16, 2012 at 0:04
  • 2
    To make this work for syntax errors (as well as runtime errors) use *File "%ABSFILE%", line %LINE%. The , in* part won't match on syntax errors as they don't mention the module where the error occurs.
    – Eric
    Commented Jun 18, 2012 at 19:50
  • 1
    If you want to make this super convenient, you can also set up a console shortcut like so: npe_cmdalias p = python "$(FULL_CURRENT_PATH)". This means you can simply popup the console view, type p and your script will run. Commented Aug 20, 2012 at 3:29
  • 1
    @PatronBernard, you can just CTRL+F6. Commented Jun 2, 2016 at 12:11
13

You need to pass through the FULL_CURRENT_PATH environment variable to the program, as described in the notepad++ wiki:

python "$(FULL_CURRENT_PATH)"
2
  • FYI link is dead
    – Excellll
    Commented Mar 28, 2017 at 18:28
  • New link: notepad++ wiki
    – ands
    Commented Jul 29, 2018 at 19:37
8

You can use PyNPP Plugin (https://github.com/mpcabd/PyNPP) to achieve this.

I know this is old but the answer is for people coming from search.

7

possible to use pdb too

The answers above were very useful to get it working. However, once i could run the python programs, I also needed to interact with them. Two things I found out.

  1. Use "python -u -i $(FULL_CURRENT_PATH)" if you wish to interact with your program (like giving command line inputs).
  2. to use the awsome PDB, use "python -u -m pdb $(FULL_CURRENT_PATH)" and then you can easily debug your programs as well. :-) loving it!!
2

if u have the NppExec plugin (is by default) hit F6 and add the command that exec your script

python /path/to/script.py
0

Unless I'm missing something, the other answers discussing NppExec do not provide a way to run the script with a single keystroke or (the execute dialogue box always pops up when F6 is pressed which must be accepted before the script is run).

After completing the steps in bjornhb's answer the following will allow you to run scripts with just one keystroke:

  1. Under Plugins->NppExec->Advanced Options create a new Menu Item. I simply named mine Python. Select the script which was saved earlier in the Associated script dropdown box and click Add/Modify. Click OK.
  2. Restart Notepad++
  3. Under Settings->Shortcut Mapper click the Plugin commands tab at the top. Scroll down and find your command name on the left hand side. Double click inside the white box in the Shortcut column next to your command name. Select an appropriate key (or combination) and accept. Pressing the shortcut key(s) will run the script without further input.
1

Not the answer you're looking for? Browse other questions tagged or ask your own question.