Как скомпилировать и запустить файлы C из Notepad++ с помощью плагина NppExec?
Как я могу настроить плагин NppExec для Notepad++?
Я хотел бы, чтобы NppExec скомпилировал мои C-файлы, запустил их и показал их вывод, все в Notepad++.
11 ответов
Вот процедура для Perl, просто адаптируйте ее для C. Надеюсь, это поможет.
- Открыть Блокнот ++
- Введите F6, чтобы открыть окно выполнения
- Напишите следующие команды:
npp_save
<- сохраняет текущий документCD $(CURRENT_DIRECTORY)
<- перемещается в текущий каталогperl.exe -c -w "$(FILE_NAME)"
<- выполняет команду perl.exe -c -w, пример: perl.exe -c -w test.pl (-c = compile -w = предупреждения)
- Нажмите на Сохранить
- Введите имя для сохранения скрипта (например, Perl Compile)
- Зайдите в Плагины меню -> Nppexec -> Расширенные настройки -> Пункт меню (Примечание: это верно НИЖЕ "Пункты меню *")
- В выпадающем списке "Связанный скрипт" выберите недавно созданный скрипт в его выпадающем меню, выберите "Добавить / изменить" и нажмите "ОК" -> "ОК".
- Перезапустите Блокнот ++
- Зайдите в Настройки -> Ярлык ярлыков -> Плагины -> найдите имя скрипта
- Выберите ярлык для использования (т.е. Ctrl + 1), нажмите ОК
- Убедитесь, что теперь вы можете запустить сценарий, созданный с выбранным ярлыком.
Для Perl,
Для запуска сценария Perl используйте эту процедуру
Требование: Вам необходимо установить переменную classpath.
Перейти к плагинам->NppExec->Выполнить
В разделе команд введите этот
cmd /c cd "$(CURRENT_DIRECTORY)"&&"$(FULL_CURRENT_PATH)"
Сохраните его и дайте ему имя (я даю Perl).
Нажмите ОК Если редактор хочет перезапустить, сделайте это первым.
Теперь нажмите F6, и вы найдете вывод Perl-скрипта внизу.
Примечание. Не требуется отдельная конфигурация для отдельных файлов.
Для Java,
Требование: необходимо настроить JAVA_HOME
а также classpath
переменная.
Перейти к плагинам->NppExec-> Выполнить
В разделе команд введите этот
cmd /c cd "$(CURRENT_DIRECTORY)"&&"%JAVA_HOME%\bin\javac""$(FULL_CURRENT_PATH)"
ваш *.class
сгенерирует на месте текущей папки; несмотря на ошибку программирования.
Для Python
Используйте этот плагин Python Plugin
Перейдите в плагины->NppExec-> Запустить файл в Python, интерактив
Используя это, вы можете запускать скрипты в Notepad++.
Для PHP,
Нет необходимости в другой конфигурации, просто скачайте этот плагин.
Плагин PHP и готово.
Для языка Си,
Требование: Вам необходимо установить переменную 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
Это оно!!
Вот код для компиляции и запуска исходного кода 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
Вы можете проверить следующую страницу с большим количеством информации о NppExec.
Лично я использую следующий пакетный скрипт, который можно использовать на многих типах файлов (C, makefile, Perl-скрипты, shell-скрипты, batch, ...). Я храню этот файл в пользовательском каталоге 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
Я сделал один мощный скрипт, который будет:
-Компилировать и запустить многоязычный код, например C
, C++
, Java
, Python
а также C#
,
-Удалите старый исполняемый файл перед компиляцией кода.
-Только запустить код, если он успешно скомпилирован.
Я также сделал очень удобный для новичков учебник Transform Notepad++ для Powerful Multi Languages 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!
Я рекомендую мое решение. Моя ситуация: 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 ================
На самом деле вы можете скомпилировать и запустить код 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.
Объяснение:
- cmd / k используется для тестирования.
- Полное объяснение @ http://ss64.com/nt/cmd.html
- CD $(CURRENT_DIRECTORY)
- Перейдите в каталог, где находится файл
- && операторы
- объединить ваши команды в одну строку
- gcc $(FILE_NAME)
- используйте GCC для компиляции файла с расширением.
- -o $ (NAME_PART).exe
- Этот флаг позволяет вам выбрать выходное имя файла. $(NAME_PART) не включает расширение файла.
- $ (NAME_PART).exe
- только это запускает вашу программу
- Пауза
- эта команда используется, чтобы держать консоль открытой после того, как файл был выполнен.
Для получения дополнительной информации о командах notepad++, перейдите к
http://docs.notepad-plus-plus.org/index.php/External_Programs
Я знаю, что это старый вопрос, но я все еще добавляю его в качестве ответа (надеюсь, он добавляет к общему ответу). Я недавно прошел через эти шаги и придумал этот.
Я создал пошаговый видеоурок для того же самого. (Как говорится, видео стоит десяти тысяч слов!)
Как скомпилировать и запустить код C в Notepad++
- 00:58 Установите MinGW (минималистский GNU для Windows)
- 01:42 Установите компиляторы GCC, GCC++ в MinGW
- 03:00 Установите переменную окружения в PATH для gcc.exe от MinGW.
- 05:20 Установите плагин NPPExec notepad++ для выполнения программы C.
- 05:50 Создание скрипта компилятора C для плагина Notepad++ NPPExec
- 06:48 Создание пункта меню в NPPExec для компилятора C
- 08:00 Тестовый запуск C-кода из Notepad++
- 09:55 Создайте сочетание клавиш для компиляции и запуска программы C из Notepad++ (необязательно)
Надеюсь, это будет полезно для тех, кто ищет пошаговое руководство.
Как всегда, оговорка, что я владею этим каналом YouTube. И это может звучать как самореклама, но я надеюсь, что в этом ответе я дал достаточно информации для тех, кто начинает заниматься этим вопросом. Спасибо.
Декомпилировать с CMD:
Если они не работают, попробуйте это:
cmd /K g++ "$(FULL_CURRENT_PATH)" -o "$(FULL_CURRENT_PATH).exe
Это должно сохранить, где вы получили файл (пример: если я получил файл с рабочего стола, он будет сохранен как.exe на рабочем столе)
Я не знаю, работает ли он на 64 битах, так что вы можете попробовать это!
В Windows, если вы используете переносную версию MinGW, вы должны установить переменную пути, или у вас ошибка libintl-8.dll не найдена. Мой путь - C:\Program Files (x86)\CodeBlocks\MinGW\bin
Я написал только это, чтобы выполнить компиляцию и запустить файл после, плюс 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 на то, что вы хотите