¿Cómo compilar y ejecutar archivos C desde Notepad ++ usando el complemento NPPEXEC?

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

  •  22-09-2019
  •  | 
  •  

Pregunta

¿Cómo puedo configurar el complemento NPPEXEC para Notepad ++?

Me gustaría que NPPEXEC compilara mis archivos C, los ejecute y muestre su salida, todo dentro de Notepad ++.

¿Fue útil?

Solución

Aquí hay un procedimiento para Perl, solo adapte a C. Espero que ayude.

  • Abra Notepad ++
  • Escriba F6 para abrir la ventana Ejecutar
  • Escribe los siguientes comandos:
    • npp_save <- Guarda el documento actual
    • CD $(CURRENT_DIRECTORY) <- se mueve al directorio actual
    • perl.exe -c -w "$(FILE_NAME)" < -Ejecuta el comando perl.exe -c -w, ejemplo: perl.exe -c -w test.pl (-c = compile -w = advertencias)
  • Haga clic en Guardar
  • Escriba un nombre para guardar el script (es decir, la compilación de perl)
  • Vaya a los complementos del menú -> NPPEXEC -> Opciones avanzadas -> Elemento del menú (Nota: Esto está justo debajo 'Elementos del menú *')
  • En el comboBox titulado 'Script asociado', seleccione el script recientemente creado en su menú desplegable, seleccione 'Agregar/modificar' y haga clic en Aceptar -> Aceptar
  • Reiniciar el bloc de notas ++
  • Vaya a Configuración -> Mapeador de acceso directo -> Plugins -> Buscar el nombre de script
  • Seleccione el acceso directo para usar (es decir, CTRL + 1), haga clic en Aceptar
  • Verifique que ahora pueda ejecutar el script creado con el atajo seleccionado.

Otros consejos

Para Perl,

Para ejecutar el script Perl, use este procedimiento

Requisito: debe configurar la variable classpath.

Ir complementos->NPPEXEC->Ejecutar

En la sección de comando, escriba esto

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

Guardo y dale nombre. (Doy Perl).

Prensa OK. Si el editor quiere reiniciar, hágalo primero.

Ahora presiona F6 Y encontrará la salida de su script Perl en el lado debajo.

NOTA: No se requiere configuración separada para archivos separados.

Para Java,

Requisito: necesita configurar JAVA_HOME y classpath variable.

Ir a complementos-> nppexec-> ejecutar

En la sección de comando, escriba esto

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

su *.class generará en la ubicación de la carpeta actual; a pesar del error de programación.

Para Python,

Use este complemento Complemento de python

Vaya a Plugins-> NPPEXEC-> Ejecutar archivo en Python Intercative

Al usar esto, puede ejecutar scripts dentro de Notepad ++.

Para PHP,

No hay necesidad de configuración diferente, simplemente descargue este complemento.

Complemento PHP y hecho.

Para el lenguaje C,

Requisito: debe configurar la variable classpath.
Estoy usando el compilador Mingw.

Ir a complementos-> nppexec-> ejecutar

Pega esto allí

   NPP_SAVE

   CD $(CURRENT_DIRECTORY)

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

   a

(Recuerde dar por encima de cuatro líneas de líneas separadas).

Ahora, da nombre, guarda y está bien.

Reiniciar NPP.

Vaya a complementos-> NPPEXEC-> Opciones avanzadas.

Menú Elemento-> Nombre del elemento (tengo un compilador C)

Script Association-> Desde el cuadro Combo Seleccione el nombre anterior del script.

Haga clic en Agregar/modificar y Aceptar.

Ahora asigne la clave de acceso directo como se da en la primera respuesta.

Prensa F6 y seleccione script o simplemente presione atajo (asigné Control+2).

Para c ++,

Solo cambia G ++ en lugar de gcc y *.cpp En vez de *.c

¡¡Eso es todo!!

Aquí está el código para comparar y ejecutar el código fuente de Java: - Abrir NotepAdd ++ - HIT F6- Pega este código

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

La variable Java Classpath debe configurarse para esto ...

Otro sitio útil: http://www.scribd.com/doc/52238931/notepad-tutorial-compile-and-run-java-program

Puede consultar la siguiente página con mucha información en NPPEXEC.

Yo personalmente uso el siguiente script por lotes que se puede usar en muchos tipos de archivos (C, Makefile, Scripts Perl, scripts de shell, lotes, ...). Almacené este archivo en el directorio de usuario de BlocePad ++ (%AppData%/Notepad ++) bajo el nombre runncompile.bat.

Luego uso el comando NPPEXEC "$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)" mientras verifica la opción "Sigue $ (current_directory)" en el menú NPPEXEC. Y para terminar, asigno una clave especial (reasigné F12) para iniciar el script.

Espero que pueda ayudar

  @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

En realidad, puede compilar y ejecutar el código C incluso sin el uso de complementos NPPEXEC. Si usa el compilador Mingw32 C, use G ++ para el lenguaje C ++ y GCC para el lenguaje C.

Pegue este código en la sección de ejecución de bloc de notas ++

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

Compilará su código C en EXE y lo ejecutará de inmediato. Es como una función de compilación y ejecución en Codeblock. Todos estos se hacen con algún conocimiento de CMD.

Explicación:

  1. CMD /K se usa para las pruebas.
  2. CD $ (Current_Directory)
    • Cambiar el directorio a donde se encuentra el archivo
  3. && operadores
    • Para encadenar sus comandos en una sola línea
  4. GCC $ (file_name)
    • Use GCC para compilar el archivo con su extensión de archivo.
  5. -o $ (name_part) .exe
    • Este indicador le permite elegir su nombre de archivo de salida. $ (Name_part) no incluye la extensión del archivo.
  6. $ (Name_part) .exe
    • Esto solo ejecuta tu programa
  7. pausa
    • Este comando se utiliza para mantener su consola abierta después de que se haya ejecutado el archivo.

Para obtener más información sobre los comandos de BlocePad ++, vaya a

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

He hecho un solo poderoso script que lo hará:

-Compile y ejecuta un código de idioma múltiple como C, C++, Java, Python y C#.
-Dele el antiguo ejecutable antes de compilar el código.
-Se solo ejecute el código si se compila correctamente.

También he hecho un tutorial muy amigable con el novato Transformar el notepad ++ a potentes idiomas múltiples ide que contiene algunos scripts adicionales como solo ejecutar o compilar el código, ejecutar código dentro de CMD, etc.

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!

Recomiendo mi solución. Mi situación: G ++ (Cygwin) en Win10

Mi solución: escriba un archivo por lotes .bat y ejecute compilador en ese lote. compilecpp.bat

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

Consola:

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 ================

Descompilar con CMD:

Si esos no funcionan, intente esto:

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

Debería guardar donde obtuvo el archivo (ejemplo: si obtengo un archivo desde el escritorio, se guardará como .exe en el escritorio)

Sin embargo, no sé si funciona en 64 bits, ¡así que puedes probarlo!

I've written just this to execute compiling and run the file after, plus fileinputname = fileoutputname on windowsmashines, if your compilerpath is registred in the windows PATH-var:

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)"

should work for any compiler if you change c++.exe to what you want

In windows if you are using a portable version of MinGW you must set path variable or you have error libintl-8.dll not found. My path is C:\Program Files (x86)\CodeBlocks\MinGW\bin

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top