Wie kompiliere und führe ich C -Dateien in Notepad ++ mithilfe des NPPEXEC -Plugins aus?

StackOverflow https://stackoverflow.com/questions/2506400

  •  22-09-2019
  •  | 
  •  

Frage

Wie kann ich das NPPEXEC -Plugin für Notepad ++ konfigurieren?

Ich möchte, dass NPPExec meine C -Dateien kompiliert, sie ausführen und ihre Ausgabe in Notepad ++ anzeigen.

War es hilfreich?

Lösung

Hier ist ein Verfahren für Perl. Passen Sie es einfach an. Hoffe, es hilft.

  • Öffnen Sie Notepad ++
  • Geben Sie F6 ein, um das Ausführungsfenster zu öffnen
  • Schreiben Sie die folgenden Befehle:
    • npp_save <- speichert das aktuelle Dokument
    • CD $(CURRENT_DIRECTORY) <- bewegt sich zum aktuellen Verzeichnis
    • perl.exe -c -w "$(FILE_NAME)" < -führt den Befehl perl.exe -c -w, Beispiel: perl.exe -c -w test.pl (-c = compile -w = Warnungen) aus.
  • Klicken Sie auf Speichern
  • Geben Sie einen Namen ein, um das Skript zu speichern (dh Perl Compile)
  • Gehen Sie zu Menü -Plugins -> nppexec -> Erweiterte Optionen -> Menüelement (Hinweis: Dies ist direkt unter 'Menüpunkten *').
  • Wählen Sie im Combobox mit dem Titel "Zugeordnetes Skript" das kürzlich in seinem Dropdown -Menü erstellte Skript aus "Hinzufügen/Ändern" und klicken Sie auf OK -> OK
  • Starten Sie Notepad ++ neu
  • Gehen Sie zu Einstellungen -> Shortcut Mapper -> Plugins -> Suchen Sie nach dem Skriptnamen
  • Wählen Sie die zu verwendende Verknüpfung aus (dh Strg + 1), klicken Sie auf OK
  • Stellen Sie sicher, dass Sie jetzt das mit der ausgewählte Verknüpfung erstellte Skript ausführen können.

Andere Tipps

Für Perl,

Um das Perl -Skript auszuführen, verwenden Sie diese Prozedur

Voraussetzung: Sie müssen die Klassenpfadvariable einrichten.

Gehe zu Plugins->Nppexec->Ausführen

Geben Sie im Befehlsabschnitt dies ein

cmd /c cd "$(CURRENT_DIRECTORY)"&&"$(FULL_CURRENT_PATH)"

Speichern Sie es und geben Sie es dem Namen an. (Ich gebe Perl).

Drücken Sie OK. Wenn der Herausgeber neu starten möchte, tun Sie es zuerst.

Jetzt drücken F6 Und Sie finden Ihre Perl -Skriptausgabe auf der unteren Seite.

HINWEIS: Nicht erforderliche separate Konfiguration für separate Dateien.

Für Java,

Voraussetzung: Sie müssen einrichten JAVA_HOME und classpath Variable.

Gehen Sie zu Plugins-> nppexec-> ausführen

Geben Sie im Befehlsabschnitt dies ein

cmd /c cd "$(CURRENT_DIRECTORY)"&&"%JAVA_HOME%\bin\javac""$(FULL_CURRENT_PATH)"

dein *.class wird vor Ort des aktuellen Ordners generieren; Trotz des Programmierfehlers.

Für Python,

Verwenden Sie dieses Plugin Python -Plugin

Gehen Sie zu Plugins-> nppexec-> Datei in Python Intercative aus.

Durch die Verwendung können Sie Skripte in Notepad ++ ausführen.

Für PHP,

Keiner Bedarf für eine andere Konfiguration laden Sie dieses Plugin einfach herunter.

PHP -Plugin und fertig.

Für c Sprache,

Voraussetzung: Sie müssen die Klassenpfadvariable einrichten.
Ich benutze Mingw Compiler.

Gehen Sie zu Plugins-> nppexec-> ausführen

Fügen Sie dies dort ein

   NPP_SAVE

   CD $(CURRENT_DIRECTORY)

   C:\MinGW32\bin\gcc.exe -g "$(FILE_NAME)" 

   a

(Denken Sie daran, über vier Zeilen getrennte Zeilen zu geben.)

Geben Sie nun Namen, Speichern und OK.

NPP neu starten.

Gehen Sie zu Plugins-> nppexec-> Erweiterte Optionen.

Menüelement-> Artikelname (ich habe C-Compiler)

Zugeordnetes Skript-> Aus dem Kombinationsfeld Wählen Sie den obigen Namen des Skripts aus.

Klicken Sie auf Hinzufügen/Ändern und OK.

Weisen Sie nun den Tiefpunktschlüssel zu, wie in der ersten Antwort angegeben.

Drücken Sie F6 und wählen Sie Skript oder drücken Sie einfach die Verknüpfung (ich habe zugewiesen Strg+2).

Für c ++,

Ändern Sie nur G ++ anstelle von gcc und *.cpp anstatt *.c

Das ist es!!

Hier ist der Code für das Kompling und Ausführen von Java -Quellcode: - Öffnen Sie Notepadd ++ - Hit F6- Fügen Sie diesen Code ein

npp_save <-- Saves the current document
CD $(CURRENT_DIRECTORY) <-- Moves to the current directory
javac "$(FILE_NAME)" <-- compiles your file named *.java
java "$(NAME_PART)" <-- executes the program

Die Java -Klassenpfadvariable muss dafür eingestellt werden ...

Eine weitere nützliche Seite: http://www.scribd.com/doc/52238931/notepad-tutorial-compile-and-run-java-program

Sie können die folgende Seite mit vielen Informationen zu NPPExec überprüfen.

Ich persönlich verwende das folgende Stapel -Skript, das für viele Arten von Dateien verwendet werden kann (C, Makefile, Perl -Skripte, Shell -Skripte, Stapel, ...). Ich speichere diese Datei im Notepad ++ User Directory (%AppData%/Notepad ++) unter dem Namen Runncompile.bat.

Ich benutze dann den Befehl nppexec "$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)" Bei der Überprüfung der Option "$ $ (current_directory)" im NPPExec -Menü. Und um zu beenden, weise ich einen speziellen Schlüssel zu (ich habe F12 neu zugewiesen), um das Skript zu starten.

Hoffe es kann helfen

  @echo off

REM ----------------------
REM ----- ARGUMENTS ------
REM ----------------------
set FPATH=%~1
set FILE=%~n1
set DIR=%~dp1
set EXTENSION=%~x1
REM ----------------------



REM ----------------------
REM ------- CONFIG -------
REM ----------------------
REM C Compiler (gcc.exe or cl.exe) + options + object extension
set CL_compilo=gcc.exe
set CFLAGS=-c "%FPATH%"
set OBJ_Ext=o
REM GNU make
set GNU_make=make.exe
REM ----------------------




IF /I "%FILE%"==Makefile GOTO _MAKEFILE
IF /I %EXTENSION%==.bat GOTO _BAT
IF /I %EXTENSION%==.sh GOTO _SH
IF /I %EXTENSION%==.pl GOTO _PL
IF /I %EXTENSION%==.tcl GOTO _TCL
IF /I %EXTENSION%==.c GOTO _C
IF /I %EXTENSION%==.mak GOTO _MAKEFILE
IF /I %EXTENSION%==.mk GOTO _MAKEFILE
IF /I %EXTENSION%==.html GOTO _HTML
echo Format of argument (%FPATH%) not supported!
GOTO END


REM Batch shell files (bat)
:_BAT
call "%FPATH%"
goto END


REM Linux shell scripts (sh)
:_SH
call sh.exe "%FPATH%"
goto END


REM Perl Script files (pl)
:_PL
call perl.exe "%FPATH%"
goto END


REM Tcl Script files (tcl)
:_TCL
call tclsh.exe "%FPATH%"
goto END


REM Compile C Source files (C)
:_C
REM MAKEFILES...
IF EXIST "%DIR%Makefile" ( cd "%DIR%" )
IF EXIST "%DIR%../Makefile" ( cd "%DIR%/.." )
IF EXIST "%DIR%../../Makefile" ( cd "%DIR%/../.." )
IF EXIST "Makefile" ( 
    call %GNU_make% all
    goto END
)
REM COMPIL...
echo -%CL_compilo% %CFLAGS%-
call %CL_compilo% %CFLAGS%
IF %ERRORLEVEL% EQU 0 (
    echo -%CL_compilo% -o"%DIR%%FILE%.exe" "%DIR%%FILE%.%OBJ_Ext%"-
    call %CL_compilo% -o"%DIR%%FILE%.exe" "%DIR%%FILE%.%OBJ_Ext%" 
)
IF %ERRORLEVEL% EQU 0 (del "%DIR%%FILE%.%OBJ_Ext%")
goto END


REM Open HTML files in web browser (html and htm)
:_HTML
start /max /wait %FPATH%
goto END

REM ... END ...
:END
echo.
IF /I "%2" == "-pause" pause

Sie können den C -Code auch ohne die Verwendung von NPPEXEC -Plugins kompilieren und ausführen. Wenn Sie Mingw32 C -Compiler verwenden, verwenden Sie G ++ für C ++ - Sprache und GCC für C -Sprache.

Fügen Sie diesen Code in den Notepad ++ Run -Abschnitt ein

cmd /k cd $(CURRENT_DIRECTORY) && gcc $(FILE_NAME) -o $(NAME_PART).exe  && $(NAME_PART).exe && pause

Es wird Ihren C -Code in EXE zusammenstellen und ihn sofort ausführen. Es ist wie eine Build- und Run -Funktion in CodeBlock. All dies wird mit einigen CMD -Kenntnissen gemacht.

Erläuterung:

  1. CMD /K wird zum Testen verwendet.
  2. CD $ (current_directory)
    • Ändern Sie das Verzeichnis auf der Stelle, an der sich die Datei befindet
  3. && Operatoren
    • um Ihre Befehle in einer einzigen Zeile zu ketten
  4. GCC $ (Datei_Name)
    • Verwenden Sie GCC, um die Datei mit seiner Dateierweiterung zu kompilieren.
  5. -O $ (name_part) .exe
    • Mit diesem Flag können Sie Ihren Ausgabedateinamen auswählen. $ (Name_part) enthält keine Dateierweiterung.
  6. $ (Name_part) .exe
    • Dies allein führt Ihr Programm aus
  7. Pause
    • Dieser Befehl wird verwendet, um Ihre Konsole offen zu halten, nachdem die Datei ausgeführt wurde.

Weitere Informationen zu Notepad ++ Befehl finden Sie unter

http://docs.notepad-plus-plus.org/index.php/external_programs

Ich habe ein einzelnes mächtiges Skript gemacht, das wird:

-Compile und führen Sie mehr Sprachcode aus wie C, C++, Java, Python und C#.
-Delete die alte ausführbare Datei, bevor Code erfasst.
-Führen Sie den Code nur aus, wenn er erfolgreich zusammengestellt wird.

Ich habe auch ein sehr noobfreundliches Tutorial gemacht Notepad ++ in leistungsstarke Multisprachen IDE verwandeln Dies enthält einige zusätzliche Skripte, um den Code nur auszuführen oder zu kompilieren, Code in CMD usw. auszuführen.

npp_console 1               //open console
NPP_CONSOLE -               //disable output of commands
npe_console m-              //disable unnecessary output
con_colour bg= 191919 fg= F5F5F5    //set console colors
npp_save                //save the file
cd $(CURRENT_DIRECTORY)         //follow current directory
NPP_CONSOLE +               //enable output
IF $(EXT_PART)==.c GOTO C       //if .c file goto C label
IF $(EXT_PART)==.cpp GOTO CPP       //if .cpp file goto CPP label
IF $(EXT_PART)==.java GOTO JAVA     //if .java file goto JAVA label
IF $(EXT_PART)==.cs GOTO C#     //if .cs file goto C# label
IF $(EXT_PART)==.py GOTO PYTHON     //if .py file goto PYTHON label
echo FILE SAVED
GOTO EXITSCRIPT             // else treat it as a text file and goto EXITSCRIPT
//C label
:C                                                                  
cmd /C if exist "$(NAME_PART).exe" cmd /c del "$(NAME_PART).exe"//delete existing executable file if exists
gcc "$(FILE_NAME)" -o $(NAME_PART)              //compile file
IF $(EXITCODE) != 0 GOTO EXITSCRIPT             //if any compilation error then abort
echo C CODE COMPILED SUCCESSFULLY:              //print message on console
$(NAME_PART)                                            //run file in cmd, set color to green and pause cmd after output
GOTO EXITSCRIPT                         //finally exits

:CPP
cmd /C if exist "$(NAME_PART).exe" cmd /c del "$(NAME_PART).exe"
g++ "$(FILE_NAME)" -o $(NAME_PART)
IF $(EXITCODE) != 0 GOTO EXITSCRIPT
echo C++ CODE COMPILED SUCCESSFULLY:
$(NAME_PART)
GOTO EXITSCRIPT

:JAVA
cmd /C if exist "$(NAME_PART).class" cmd /c del "$(NAME_PART).class"
javac $(FILE_NAME) -Xlint
IF $(EXITCODE) != 0 GOTO EXITSCRIPT
echo JAVA CODE COMPILED SUCCESSFULLY:
java $(NAME_PART)
GOTO EXITSCRIPT

:C#
cmd /C if exist "$(NAME_PART).exe" cmd /c del "$(NAME_PART).exe"
csc $(FILE_NAME)
IF $(EXITCODE) != 0 GOTO EXITSCRIPT
echo C# CODE COMPILED SUCCESSFULLY:
$(NAME_PART)
GOTO EXITSCRIPT

:PYTHON
echo RUNNING PYTHON SCRIPT IN CMD:              //python is a script so no need to compile
python $(NAME_PART).py
GOTO EXITSCRIPT

:EXITSCRIPT
// that's all, folks!

Ich empfehle meine Lösung. Meine Situation: G ++ (Cygwin) auf Win10

Meine Lösung: Schreiben Sie eine .bat -Batch -Datei und führen Sie den Compiler in diese Stapel aus. compilecpp.bat

@echo off  
set PATH=%PATH%;C:\cygwin64\bin\
rm %~n1.exe
c++.exe -g %~dpnx1 -o %~dpn1.exe
%~n1.exe  

Konsole:

NPP_EXEC: "runCpp"
NPP_SAVE: E:\hw.cpp
CD: E:\
Current directory: E:\
cmd /c C:\cygwin64\bin\compileCpp.bat "hw.cpp"
Process started >>>
Hello World<<< Process finished. (Exit code 0)
================ READY ================

Dekompilieren mit CMD:

Wenn diese nicht funktionierten, versuchen Sie dies:

cmd /K g++ "$(FULL_CURRENT_PATH)" -o "$(FULL_CURRENT_PATH).exe

Es sollte speichern, wo Sie die Datei erhalten haben (Beispiel: Wenn ich Datei vom Desktop erhalten habe, wird sie als .exe auf dem Desktop gespeichert) gespeichert).

Ich weiß nicht, ob es auf 64 Bit funktioniert, damit Sie es versuchen können!

Ich habe genau das geschrieben, um das Kompilieren auszuführen und die Datei nachzuführen, plus FileInputName = FileOutputName auf WindowsMashines, wenn Ihr CompilerPath im Windows-Pfad-Var aufgenommen wird:

NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
set LEN~ strrfind $(FILE_NAME) .
set EXENAME ~ substr 0 $(LEN) $(FILE_NAME)
set $(EXENAME) = $(EXENAME).exe
c++.exe "$(FILE_NAME)" -o "$(EXENAME)"
"$(EXENAME)"

Sollte für einen Compiler funktionieren, wenn Sie C ++. exe zu dem ändern, was Sie wollen

Wenn Sie in Windows eine tragbare Version von Mingw verwenden, müssen Sie die Pfadvariable festlegen oder Fehler libintl-8.dll nicht gefunden. Mein Pfad ist C: Programmdateien (x86) CodeBlocks mingw bin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top