developer-tools 4 min read

Transform Notepad++ to A Powerful Multi Language IDE

Discover how you can use your favourite editor, Notepad++, as a powerful IDE to compile C, C++, Java, C# and Python code. A must know-how for Developers!

Notepad++ is a free and powerful text editor which is making the work for developers and programmers so easy to edit code in multiple programming languages without shifting to another specific language text editor to edit or write the code.
It has the great support of numerous plugins to make you even more productive.

First thing first:

At the end of the Post you will be able to:

  • Compile and run any language code with just using a common shortcut for all languages (I personally like ALT+Z because keys are closer …lazy coders :P )
  • If you only want to compile the code with a shortcut that’s cool too ( like ALT+C ..see ..again laziness)
  • If you choose to only run the program with shortcut that’s fine (like ALT+X or anything less lazy 😁 )

The shortcuts you will set will work for all languages. The Script which I’ll provide automatically detects the compiler for the corresponding language and run the program.

There are 2 ways by which you can see the output of a program:

1. Inside the Console window of Notepad++:

Console in Notepad++ to A Powerful Multi Language IDE
Ain’t that cool?

2. Or in Command prompt of Windows:

CMD Notepad++ to A Powerful Multi Language IDE
Patterns! Nostalgic much?

I personally like to see the compilation errors (if any) in Notepad++ console but run the program in cmd ( yup! we can configure this too :D )

So, let’s build the stuff:

1. Install Notepad++ from here and install it.

Bonus step:

  • Apply some dark theme in Notepad++ (to feel more geekish :D )
  • Go to Notepad++ -> Settings -> Style Configurator then follow below image to set theme:

Dark themes in Notepad++ to A Powerful Multi Language IDE
Dark themes = Coder’s love!

2. Install a plugin called ‘NppExec’:

This plugin lets you create command macro within a built-in console of Notepad++ and prints the results in that console

  • Go to Notepad++ -> Plugins -> Plugin Manager -> Show Plugin Manager
  • Find Npp_Exec, install it and restart Notepad++

Adding NppExec script - Notepad++ to A Powerful Multi Language IDE
As simple as 1, 2 & 3.

3. Install necessary Compilers and set PATH of Compilers in ‘System Variables’.

3.1 Download compilers for languages you want to run:

The script will still work properly if you skip some compilers.
( I’m looking at you C/C++ Coders 😈 )

For Java:
  • Download latest “JDK” from here (install JDK not JRE) (~200MB)
For C/C++:
  • Download and install “Orwell Dev-C++ IDE” from here (~50MB)

This C++ IDE includes a stable compiler for C/C++ which we’ll use from NotePad++ to compile and run C/C++ code (you can also find and install some other variant of C++ compiler)

For C#:
  • No need to install Visual Studio, Windows comes with built-in .NET compiler 😎
For Python:
  • Install python from here (~25MB)

3.2 Setting PATH of Compiler in ‘System Variables’:

  • Right click on Computer -> Properties -> Advance System setting -> Environmental Variables under ‘System Variables’ find ‘Path’ and Click ‘Edit’:

Setting system path for Notepad++ to A Powerful Multi Language IDE
Setting system path is important.

  • Now, append the Path of Compilers in ‘variable value’ field. Add paths at the end of the line (do not delete the existing text!)
  • Before adding the paths please check the correct Path It may be different for your PC!
  • Semi colon (;) symbol is important after the each path as It marks the end of the previous path so you can add a new one.
For C/C++:
  • C:\Program Files (x86)\Dev-Cpp\MinGW64\bin;
For Java:
  • C:\Program Files\Java\jdk1.8.0_51\bin;
For C#:
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319;
For Python:
  • C:\Python34;

Update: There is a direct way to add new paths in the latest update of Windows 10. Click on the ‘New’ button to add paths:

Adding Environment variable in Windows 10 - Notepad++ to A Powerful Multi Language IDE
Adding Environment Variables in Windows 10


You can check these paths by opening CMD and typing gcc for C/C++, Java for java, csc for C#, python for Python (one at a time):

Verifying paths in command prompt - Notepad++ to A Powerful Multi Language IDE
Looks like we are ready?!

4. Copy Pasting script in Notepad++ folder:

  • Open Run using WIN+R write %appdata% and hit enter.
  • Now navigate to Notepad++ -> plugins -> config folder in PC.
  • Download NppExec script and extract files in config folder (replace NppExec.ini).

Extracting the NppExec script - Notepad++ to A Powerful Multi Language IDE
Extracting the NppExec script

5. Set shortcut:

This is the final step ( I promise :P ) to set the desired shortcuts in Notepad++.

  • Go to Settings-> Shortcut mapper.
  • Select Plugin commands and scroll to the bottom of the list.
  • There you can set the desired shortcuts for scripts.

That’s all folks!


Now you can create a new file in Notepad++ CTRL+N for writing code of C/C++/Java/C#/Python or open an existing code file and compile/run with your shortcuts. Make sure to save the file with proper extension like .c / .cpp / .cs / .java /.py instead of .txt

(For geeks)
Complete repository of NppExec scripts can be found here:
https://github.com/JerryGoyal/Notepad-plus-plus-NppExec-plugin-Multiple-Languages-Compile-and-Run-Scripts/


Currently, this script support C, C++, Java, C# and Python Language. Comment below and let us know if you want support for any additional language :)

Happy Coding!

44 commentsfrom BitSnapper

Carried over from the original post and read-only. Add a new comment below.

  1. Evan Robert

    Hi gourav. Real interesting post here. I never knew we can use Notepad++ as IDE. I always used to use NPP to copy paste the code to IDE.

    Good post. keep writing more stuff like this.

    1. Gourav Goyal

      thanks Evan. keep visiting the site for more surprises :)

  2. Jonathon

    Notepad++ is love. :D

  3. Ganesh

    Hi Gaurav,
    I followed all the steps.
    I am writing a C code, when I execute from console, it expects all scanf values and then only it shows print statements.

    For example:
    #include
    void main() {
    int a;
    printf("Enter a");
    scanf("%d", %a);
    printf("Value of a = %d", a);
    }

    => Ouput in console:
    C CODE COMPILED SUCCESSFULLY:
    333
    Enter a:
    Value of a = 333

    So, printf does not get executed unless we enter scanf value.
    Kindly help.
    Thanks.

    1. Gourav Goyal

      Hi Ganesh,
      Actually console of notepad++ is buffering the output data (printf) till all the input commands are executed. It's kind of limitation of notepad++ console when running C files.
      But, we can disable the buffering of data from notepad++ console by explicitly writing setvbuf(stdout, NULL, IONBF, 0); in c code.
      for example:
      #include
      void main() {
      setvbuf(stdout, NULL, IONBF, 0); // Add this line
      int a;
      printf(“Enter a”);
      scanf(“%d”, %a);
      printf(“Value of a = %d”, a);
      }

      Now your program will work as it should.

      ps: I even discussed about this problem on NppExec author's page but no solution found except from adding setvbuf(stdout, NULL, IONBF, 0); in C code.
      https://sourceforge.net/p/npp-plugins/discussion/672146/thread/6b6e09cf/

      1. Ganesh

        Hi Gourav,

        Thanks a lot.
        Adding setvbuf(stdout, NULL, _IONBF, 0);
        solved the problem :)
        I always used Linux for programming earlier so wanted similar kind of thing on Windows.
        I was frustrated by using other Editors like VC++, etc where we waste time in creating a new project and 10 different things to get output :D
        So, I really wanted this kind of editor for Windows. Thanks again!

        One more small issue,
        I have set the notepad to auto complete opening symbols like (, {, [, <, ".
        But by mistake if we close it ourselves, then it should consider it as a closing symbol and overwrite it.
        (For example, try the same on koding.com. If you close the symbol, it immediately overwrites its own closing symbol. Is there any setting in Notepad++ for the same?

        Thanks.

        1. Gourav Goyal

          Hi,
          Yes, notepad++ is a handy tool to quickly create and run codes. Before that, I used to run C/C++ files in Dev-C++ which is also good to directly run C/C++ files w/o creating the project. The limitation was that it could only run C/C++ files so, created a script in Notepad++ to run different codes. Pretty lazy uh :)

          Regarding that automatically deletion of brackets, I don't think notepad++ supports it (as of now)

  4. Siddhant

    I get a "gcc: error: 1:No such file or directory"
    I've tried running it npp as administrator, didn't work.

    1. Siddhant

      Never mind, I solved it. Apparently gcc can not handle spaces in file name.

      1. barbatus

        thx alot

  5. somu

    Hey Gourav
    All set with compiling, but when it comes to the part of output i am not getting it. when i compile and run with console, it says compilation successful but no output is seen in the console window.
    my environment variables are
    C:\Users\somu\gcc\bin;C:\Users\somu\gcc\libexec\gcc\i686-pc-mingw32\5.2.0;C:\ProgramData\Oracle\Java\javapath;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;c:\Software\octave3.6.4\bin;C:\Program Files\Qucs\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\MATLAB\R2012a\runtime\win32;C:\Program Files\MATLAB\R2012a\bin;C:\Program Files\HI-TECH Software\PICC-Lite\9.50\bin;C:\Program Files\HI-TECH Software\PICC\9.83\bin;C:\MinGW\bin;C:\MinGW\msys\1.0\bin;

    1. Gourav Goyal

      Hi Somu,
      I don't think it depends on env. variables because if gcc can compile the program then it can run also.

      1. Try running a different program because there could be a runtime exception in your program for which you don't see any output.
      2. Try running your program in CMD instead of notepad++ console.
      3. Make sure you're hitting the correct shortcut to run the program not just to compile.
      If still problem persists then let me know :)

  6. Chris

    Node.js would be awesome ^_^

  7. Madge

    This is great! I am so excited to use notepad++ to compile and run C++ programs. I am having a problem that I hope you can help me with. This sequence does not work for me:
    CompileAndRunUsingConsole
    RunOnlyUsingConsole (fails here with beep and no change to console output)

    Nor does this sequence:
    CompileOnly
    RunOnlyUsingConsole
    RunOnlyUsingConsole (fails here with beep and no change to console output)

    However, this does work:
    CompileAndRunUsingConsole
    CompileAndRunUsingConsole

    Is there a way for me to run my C++ program multiple times without having to compile again?
    Thanks for your script and help!

    1. Gourav Goyal

      Hi Madge,
      apologies for the late reply.
      The sequence is working absolutely fine for me. Try running a different program or wait for the 1st command to complete successfully then hit the 2nd command.

  8. Nahid

    Hello,

    When i try to run my program it says File Saved and Ready. But it doesn't run, the console nor the CMD opens up. Why?

    1. gourav

      make sure you are saving the file with proper extension i.e. *.cpp or *.c or *.java etc

  9. Ganesh

    Hi Gourav, Ganesh here again!

    On my laptop, this works perfectly.
    Now, I tried the same on another laptop having same OS, I am getting following error on the Console:

    CreateProcess() failed with error code 2:
    The system cannot find the file specified.

    ================ READY ================

    What could have gone wrong.
    I have installed c++ compiler properly, set the environment path as shown by you.

    Kindly let me know any hack/solution over this.

    Thanks.

    1. gourav

      Hi Ganesh,
      I believe the error is because of incorrect /missing path of environment variables.
      Could you please verify the path of C++ by typing 'gcc' in console.

      1. Ganesh

        Hi Gourav,

        I got the issue!

        Problem was even after installing Dev C++, updating environment variable; I was not able to execute the program.

        Issue was: I had given space in environment variable. So, in PATH environment variable, the path should be separated only with semi-colon; not SPACE;

        Thanks.

      2. a

        hii...the plugin was not present n plugin manager to install...so i installed it from net...i even extracted the script of the plugin...but in the end it is not showing compile and run in console in plugin commands...what should i do...???

  10. Biresh

    Hi, can u tell how to use notepad++ to run vhdl codes ?

    1. Gourav Goyal

      Right now notepad++ doesn't run vhdl code. If a find a way to run vhdl then I'll surely update the post :)

Leave a comment

Keep reading

apple 4 min

iOS 101: Day 0 | Setting up the garage

Welcome to your first tutorial for iOS 101! Learn how to setup development environment on your Mac before you start shipping out kickass iOS apps. Dive in!