Como compilar e executar arquivos C no Notepad ++ usando o plug -in NPPEXEC?
Pergunta
Como posso configurar o plug -in NPPEXEC para bloco de notas ++?
Eu gostaria que o NPPEXEC compile meus arquivos C, executasse -os e mostre sua saída, tudo dentro do bloco de notas ++.
Solução
Aqui está um procedimento para o Perl, basta adaptá -lo para C. Espero que ajude.
- Abra o bloco de notas ++
- Digite F6 para abrir a janela Execute
- Escreva os seguintes comandos:
npp_save
<- salva o documento atualCD $(CURRENT_DIRECTORY)
<- se move para o diretório atualperl.exe -c -w "$(FILE_NAME)"
< -Executa o comando perl.exe -c -w, exemplo: perl.exe -c -w test.pl (-c = compile -w = avisos)
- Clique em Salvar
- Digite um nome para salvar o script (ou seja, compilar)
- Vá para os plugins de menu -> NPPEXEC -> Opções avançadas -> Item do menu (Nota: Isso está logo abaixo de 'itens do menu *')
- No ComboBox intitulado 'Script associado' Selecione o script criado recentemente em seu menu suspenso, selecione 'Adicionar/modificar' e clique em OK -> OK
- Reinicie o bloco de notas ++
- Vá para Configurações -> Mapper de atalho -> Plugins -> Pesquise o nome do script
- Selecione o atalho para usar (por exemplo, Ctrl + 1), clique em OK
- Verifique se agora você pode executar o script criado com o atalho selecionado.
Outras dicas
Para Perl,
Para executar o script Perl, use este procedimento
Requisito: você precisa configurar a variável ClassPath.
Vamos para plugins->NPPEXEC->Executar
Na seção de comando, digite isso
cmd /c cd "$(CURRENT_DIRECTORY)"&&"$(FULL_CURRENT_PATH)"
Salve e dê o nome. (Eu dou Perl).
Imprensa OK. Se o editor quiser reiniciar, faça -o primeiro.
Agora pressione F6 E você encontrará sua saída de script Perl no lado abaixo.
NOTA: Não é necessário Config separado para arquivos separados.
Para java,
Requisito: você precisa configurar JAVA_HOME
e classpath
variável.
Vá para plugins-> nppexec-> execute
Na seção de comando, digite isso
cmd /c cd "$(CURRENT_DIRECTORY)"&&"%JAVA_HOME%\bin\javac""$(FULL_CURRENT_PATH)"
sua *.class
gerará na localização da pasta atual; Apesar do erro de programação.
Para Python,
Use este plug -in Plugin python
Vá para plugins-> nppexec-> Executar arquivo no python intercativo
Ao usar isso, você pode executar scripts no bloco de notas ++.
Para PHP,
Não há necessidade de configuração diferente, basta baixar este plug -in.
Plugin php E feito.
Para C Language,
Requisito: você precisa configurar a variável ClassPath.
Estou usando o Mingw Compiler.
Vá para plugins-> nppexec-> execute
Cole isso lá
NPP_SAVE
CD $(CURRENT_DIRECTORY)
C:\MinGW32\bin\gcc.exe -g "$(FILE_NAME)"
a
(Lembre -se de fornecer acima de quatro linhas separadas.)
Agora, dê o nome, salve e ok.
Reinicie a NPP.
Vá para Plugins-> NPPEXEC-> Opções avançadas.
Menu Item-> Nome do item (eu tenho C Compilador)
Script associado-> Na caixa Combo Selecione o nome acima do script.
Clique em Adicionar/Modificar e OK.
Agora atribua a chave de atalho conforme fornecido na primeira resposta.
Imprensa F6 e selecione script ou apenas pressione atalho (eu atribuí Ctrl+2).
Para C ++,
Apenas altere G ++ em vez de gcc
e *.cpp
em vez de *.c
É isso!!
Aqui está o código para complicar e executar o código fonte Java: - Open Notepadd ++ - Hit F6- Cole 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
A variável Java ClassPath deve ser definida para isso ...
Outro site útil: http://www.scribd.com/doc/52238931/notepad-tutorial-compile-and-run-java-program
Você pode verificar a página a seguir com muitas informações no NPPEXEC.
Pessoalmente, uso o seguinte script em lote que pode ser usado em muitos tipos de arquivos (C, makefile, scripts Perl, scripts de shell, lote, ...). Armazeto esse arquivo no diretório do usuário do bloco de notas ++ (%appData%/notepad ++) no nome runncompile.bat.
Eu então uso o comando NPPEXEC "$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)"
Ao verificar a opção "Siga $ (current_directory)" no menu NPPEXEC. E para terminar, atribuo uma chave especial (reatceitei F12) para iniciar o script.
Espero que possa ajudar
@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
Você pode realmente compilar e executar o código C mesmo sem o uso de plugins NPPEXEC. Se você usar o compilador Mingw32 C, use G ++ para idioma C ++ e GCC para o idioma C.
Cole este código na seção Notepad ++ Run
cmd /k cd $(CURRENT_DIRECTORY) && gcc $(FILE_NAME) -o $(NAME_PART).exe && $(NAME_PART).exe && pause
Ele compilará seu código C no EXE e o executará imediatamente. É como um recurso de compilação e corrida no CodeBlock. Tudo isso é feito com algum conhecimento de CMD.
Explicação:
- CMD /K é usado para teste.
- Explicação completa @ http://ss64.com/nt/cmd.html
- CD $ (current_directory)
- Alterar diretório para onde o arquivo está localizado
- && operadores
- Para encadear seus comandos em uma única linha
- gcc $ (file_name)
- Use o GCC para compilar o arquivo com sua extensão de arquivo.
- -o $ (name_part) .exe
- Este sinalizador permite que você escolha seu nome de arquivo de saída. $ (Name_part) não inclui extensão de arquivo.
- $ (Name_part) .exe
- Isso por si só executa seu programa
- pausa
- Este comando é usado para manter seu console aberto após a execução do arquivo.
Para mais informações sobre comandos no bloco de notas ++, vá para
http://docs.notepad-plus-plus.org/index.php/external_programs
Eu fiz um único script poderoso que vai:
-Compile e execute o código multi idioma como C
, C++
, Java
, Python
e C#
.
-Elete o antigo executável antes de compilar o código.
-No execute o código se for compilado com sucesso.
Eu também fiz um tutorial amigável muito noob Transforme o bloco de notas ++ em poderosos idiomas IDE que contém alguns scripts adicionais gostam apenas de executar ou compilar o código, executar o código dentro do 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!
Eu recomendo minha solução. Minha situação: G ++ (Cygwin) no Win10
Minha solução: escreva um arquivo .bat lote e execute o compilador nesse lote. 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 ================
Decompilar com CMD:
Se eles não funcionaram, tente isto:
cmd /K g++ "$(FULL_CURRENT_PATH)" -o "$(FULL_CURRENT_PATH).exe
Ele deve salvar onde você obteve o arquivo (exemplo: se eu obtiver o arquivo do desktop, ele será salvo como .exe na área de trabalho)
Eu não sei se funciona em 64 bits para que você possa tentar!
Eu escrevi exatamente isso para executar a compilação e executar o arquivo depois, mais fileInputName = FileOutputName no WindowsMashines, se o seu compilerPath for registrado no 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)"
deve funcionar para qualquer compilador se você mudar C ++. Exe para o que você deseja
No Windows, se você estiver usando uma versão portátil do mingw, você deve definir a variável do caminho ou ter erro libntl-8.dll não encontrado. Meu caminho é C: Arquivos de Programas (x86) CodeBlocks Mingw Bin