it-swarm.it

Come compilare ed eseguire file C da Notepad ++ usando il plugin NppExec?

Come posso configurare il plugin NppExec per Notepad ++?

Desidero che NppExec compili i miei file C, li esegua e mostri il loro output, il tutto all'interno di Notepad ++.

34
Chris Smullian

Ecco una procedura per Perl, basta adattarlo per C. Spero che aiuti.

  • Apri Notepad ++
  • Digitare F6 per aprire la finestra di esecuzione
  • Scrivi i seguenti comandi:
    • npp_save <- Salva il documento corrente
    • CD $(CURRENT_DIRECTORY) <- Passa alla directory corrente
    • Perl.exe -c -w "$(FILE_NAME)" <- esegue il comando Perl.exe -c -w, esempio: Perl.exe -c -w test.pl (-c = compile -w = warnings) 
  • Clicca su Salva
  • Digita un nome per salvare lo script (es. Perl Compile)
  • Vai a Menu Plugin -> Nppexec -> opzioni avanzate -> Menu Item (Nota: questo è SOTTO 'Menu Items *')
  • Nella casella combinata "Script associato" seleziona lo script recentemente creato nel suo menu a discesa, seleziona "Aggiungi/Modifica" e fai clic su ok -> ok
  • Riavvia Notepad ++
  • Vai a Impostazioni -> Mapper collegamento -> Plugin -> cerca il nome dello script
  • Seleziona la scorciatoia da usare (es. Ctrl + 1), clicca ok
  • Verifica di poter eseguire lo script creato con il collegamento selezionato. 
38
David

Для Perl,

Для запуска сценария Perl используйте эту процедуру

Testo: Вам необходимо установить переменную classpath.

Перейти к плагинам -> NppExec -> Eseguire

В разделе команд введите этот

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

Сохраните его и дайте ему имя (я даю Perl).

НажмитеOK, Если редактор хочет перезапустить, сделайте это сначала.

Теперь нажмитеF6и вы найдете вывод Perl-скрипта на нижней стороне.

Примечание. Не требуется отдельная конфигурация для отдельных файлов.

для Java ,

Требование: Вам необходимо установить переменную Java_HOME и classpath.

Перейти к плагинам-> NppExec-> Выполнить

В разделе команд введите этот

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

*.class будет сгенерирован на месте текущей папки; несмотря на ошибку программирования.

Для Python,

Используйте этот плагин Python Plugin

Перейдите в плагины-> NppExec-> Запустить файл in Python, интерактив

Используя это, вы можете запускать скрипты в Notepad ++.

Для PHP,

Нет необходимости в другой конфигурации, просто скачайте этот плагин.

PHP Plugin и готово.

Для языка C,

Testo: Вам необходимо установить переменную classpath.
Я использую компилятор MinGW.

Перейти к плагинам-> NppExec-> Выполнить

вставить это туда

   NPP_SAVE

   CD $(CURRENT_DIRECTORY)

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

   a

(Не забудьте указать над четырьмя строками отдельные строки.)

Теперь дайте имя, сохраните и ок.

Перезагрузите Npp.

Зайдите в плагины-> NppExec-> Расширенные настройки.

Пункт меню-> Название элемента (у меня есть компилятор C)

Script associato-> в поле со списком выберите вышеуказанное имя скрипта.

Нажмите на Добавить/изменить и ОК.

Теперь назначьте сочетание клавиш, как указано в первом ответе.

НажмитеF6и выберите сценарий или просто нажмите ярлык (я назначилCtrl+2).

Для C++,

Менять только g ++ вместо gcc и *.cpp вместо *.c

Это оно !!

24
Mayur Patil

Ecco il codice per il completamento e l'esecuzione del codice sorgente Java: - Apri Notepadd ++ - Hit F6 - Copia questo codice

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 variabile Java Classpath deve essere impostata per questo ...

Un altro sito utile: http://www.scribd.com/doc/52238931/Notepad-Tutorial-Compile-and-Run-Java-Program

4
Pwdr

Puoi controllare la pagina seguente con molte informazioni su NppExec.

Personalmente utilizzo il seguente script batch che può essere utilizzato su molti tipi di file (C, makefile, script Perl, script di shell, batch, ...). Conservo questo file nella directory dell'utente Notepad ++ (% APPDATA%/Notepad ++) con il nome runNcompile.bat.

Quindi utilizzo il comando NppExec "$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)" mentre si controlla l'opzione "Segui $ (CURRENT_DIRECTORY)" nel menu NppExec. E per finire, assegno una chiave speciale (ho riassegnato F12) per avviare lo script.

Spero che possa aiutare

  @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
3
Jean-Francois T.

Raccomando la mia soluzione . La mia situazione: g ++ (cygwin) su win10

La mia soluzione: Scrivi un file batch .bat ed esegui il compilatore in quel batch . CompileCpp.bat

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

Console:

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 ================
1
dom free

Puoi effettivamente compilare ed eseguire il codice C anche senza l'uso di plugin nppexec. Se usi il compilatore C MingW32, usa g ++ per il linguaggio C++ e gcc per il linguaggio C.

Incolla questo codice nella sezione di esecuzione del blocco note ++

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

Compilerà il tuo codice C in exe ed eseguirlo immediatamente. È come una funzionalità di build ed esecuzione in CodeBlock. Tutti questi sono fatti con una certa conoscenza di cmd.

Spiegazione:

  1. cmd/k è usato per i test.
  2. cd $ (CURRENT_DIRECTORY)
    • cambia la directory in cui si trova il file
  3. && operatori
    • per concatenare i comandi in una singola riga
  4. gcc $ (FILE_NAME)
    • usa GCC per compilare File con la sua estensione di file.
  5. -o $ (NAME_PART) .exe
    • questo flag ti permette di scegliere il tuo nome file di output. $ (NAME_PART) non include l'estensione del file.
  6. $ (NAME_PART) .exe
    • questo da solo gestisce il tuo programma
  7. pausa
    • questo comando viene utilizzato per mantenere la console aperta dopo che il file è stato eseguito. 

Per maggiori informazioni sui comandi notepad ++, vai a 

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

1
Yuukio

Ho creato un singolo script potente che: 

-Compila ed esegui codice multi lingua come C, C++, Java, Python e C#.
- Elimina il vecchio eseguibile prima di compilare il codice.
- Esegui il codice solo se è stato compilato correttamente. 

Ho anche realizzato un tutorial molto noob friendly Trasforma Notepad ++ in Potente Multilingue IDE che contiene alcuni script aggiuntivi come solo eseguire o Compilare il codice, eseguire codice all'interno di CMD ecc.

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!
1
JerryGoyal

In Windows se si utilizza una versione portatile di MinGW è necessario impostare la variabile del percorso o si è verificato un errore libintl-8.dll non trovato . Il mio percorso è C:\Programmi (x86)\CodeBlocks\MinGW\bin

0
Antonio Runcio

Ho scritto proprio questo per eseguire la compilazione ed eseguire il file dopo, oltre a fileinputname = fileoutputname su windowsmashines, se il tuo compilatore è registrato in 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)"

dovrebbe funzionare per qualsiasi compilatore se si cambia c ++ exe in quello che si desidera

0
Clevemayer

Decompilare con CMD:

Se quelli non hanno funzionato, prova questo: 

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

Dovrebbe salvare dove hai ottenuto il file (Esempio: se ho file dal desktop, sarà salvato come .exe sul desktop)

Non so se funziona su 64 bit, quindi puoi provarlo!

0
Fandehalodu09