Как скомпилировать и запустить файлы C из Notepad ++ с помощью плагина NppExec? - PullRequest
36 голосов
/ 24 марта 2010

Как настроить плагин NppExec для Notepad ++?

Я бы хотел, чтобы NppExec скомпилировал мои C-файлы, запустил их и показал их вывод, все в Notepad ++.

Ответы [ 10 ]

40 голосов
/ 27 марта 2010

Вот процедура для Perl, просто адаптируйте ее для C. Надеюсь, это поможет.

  • Открыть Блокнот ++
  • Введите F6, чтобы открыть окно выполнения
  • Напишите следующие команды:
    • npp_save <- сохраняет текущий документ </li>
    • CD $(CURRENT_DIRECTORY) <- перемещение в текущий каталог </li>
    • perl.exe -c -w "$(FILE_NAME)" <- выполняет команду perl.exe -c -w, пример: perl.exe -c -w test.pl (-c = компилировать -w = предупреждения) </li>
  • Нажмите на Сохранить
  • Введите имя для сохранения скрипта (например, Perl Compile)
  • Перейдите в Плагины меню -> Nppexec -> Дополнительные параметры -> Пункт меню (Примечание: это верно НИЖЕ «Пункты меню *»)
  • В выпадающем списке «Ассоциированный скрипт» выберите недавно созданный скрипт в его выпадающем меню, выберите «Добавить / изменить» и нажмите «ОК» -> «ОК»
  • Перезапустить Блокнот ++
  • Зайдите в Настройки -> Отображение ярлыков -> Плагины -> найдите имя скрипта
  • Выберите ярлык для использования (например, Ctrl + 1), нажмите ОК
  • Убедитесь, что теперь вы можете запустить сценарий, созданный с выбранным ярлыком.
24 голосов
/ 20 сентября 2012

Для Perl,

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

Требование: вам нужно установить переменную classpath.

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

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

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

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

С его помощью вы можете запускать скрипты в Notepad ++.

Для PHP,

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

Плагин PHP и готово.

Для языка C

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

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

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

   NPP_SAVE

   CD $(CURRENT_DIRECTORY)

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

   a

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

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

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

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

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

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

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

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

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

Для C ++,

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

Вот и все !!

5 голосов
/ 04 декабря 2011

Вот код для компиляции и запуска исходного кода Java: - Откройте Notepadd ++ - Хит F6 - Вставьте этот код

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

Для этого должна быть установлена ​​переменная Java Classpath ...

Еще один полезный сайт: http://www.scribd.com/doc/52238931/Notepad-Tutorial-Compile-and-Run-Java-Program

3 голосов
/ 26 июля 2013

Вы можете проверить следующую страницу с большим количеством информации о NppExec.

Я лично использую следующий пакетный скрипт, который можно использовать со многими типами файлов (C, make-файл, сценарии Perl, сценарии оболочки,пакет, ...).Я сохраняю этот файл в пользовательском каталоге Notepad ++ (% APPDATA% / Notepad ++) под именем runNcompile.bat.

Затем я использую команду NppExec "$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)" при проверке параметра «Follow $ (CURRENT_DIRECTORY)» вМеню NppExec.И в завершение я назначаю специальный ключ (я переназначил F12) для запуска скрипта.

Надеюсь, это поможет

  @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
1 голос
/ 27 февраля 2017

Я рекомендую мое решение. Моя ситуация: g ++ (cygwin) на win10

Мое решение: Напишите пакетный файл .bat и выполните компилятор в этом пакете. compileCpp.bat

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

Консоль

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 голос
/ 10 января 2016

На самом деле вы можете компилировать и запускать код на C даже без использования плагинов nppexec. Если вы используете компилятор MingW32 C, используйте g ++ для языка C ++ и gcc для языка C.

Вставьте этот код в секцию запуска notepad ++

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

Он скомпилирует ваш код на C и запустит его немедленно. Это похоже на функцию сборки и запуска в CodeBlock. Все это сделано с некоторым знанием cmd.

Пояснение:

  1. cmd / k используется для тестирования.
  2. cd $ (CURRENT_DIRECTORY)
    • сменить каталог, где находится файл
  3. && операторы
    • чтобы объединить ваши команды в одну строку
  4. gcc $ (FILE_NAME)
    • использовать GCC для компиляции файла с расширением.
  5. -o $ (NAME_PART) .exe
    • этот флаг позволяет вам выбрать выходное имя файла. $ (NAME_PART) не включает расширение файла.
  6. $ (NAME_PART) .exe
    • одна она запускает вашу программу
  7. пауза
    • эта команда используется, чтобы держать консоль открытой после выполнения файла.

Для получения дополнительной информации о командах notepad ++, перейдите к

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

1 голос
/ 10 сентября 2015

Я сделал один мощный скрипт, который будет:

-Скомпилируйте и запустите многоязычный код, такой как C, C++, Java, Python и C#.
Удалите старый исполняемый файл перед компиляцией кода.
-Только запустить код, если он успешно скомпилирован.

Я также написал очень полезное руководство для новичков Преобразование Notepad ++ в мощную многоязыковую среду IDE , содержащее некоторые дополнительные сценарии, такие как запуск или компиляция кода, выполнение кода внутри CMD и т. Д.

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!
0 голосов
/ 25 сентября 2017

В Windows, если вы используете переносную версию MinGW, вы должны установить переменную пути, или у вас ошибка libintl-8.dll не найдена. Мой путь - C: \ Program Files (x86) \ CodeBlocks \ MinGW \ bin

0 голосов
/ 13 декабря 2013

Я написал только это для выполнения компиляции и запуска файла после, плюс fileinputname = fileoutputname на windowsmashines, если ваш путь компилятора зарегистрирован в 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)"

должно работать для любого компилятора, если вы измените C ++. EXE на то, что вы хотите

0 голосов
/ 22 августа 2013

Декомпилировать с CMD:

Если это не помогло, попробуйте это:

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

Следует сохранить, где вы получили файл (Пример: если я получил файл с рабочего стола, он будет сохранен как .exe на рабочем столе)

Я не знаю, работает ли он на 64 битах, поэтому вы можете попробовать!

...