web-dev-qa-db-ja.com

NppExecプラグインを使用してNotepad ++内からCファイルをコンパイルおよび実行する方法

Notepad ++のNppExecプラグインを構成するにはどうすればよいですか?

NppExecでCファイルをコンパイル、実行、および出力をすべてNotepad ++で表示したいと思います。

36
Chris Smullian

Perlの手順を次に示します。Cに合わせて変更してください。役に立てば幸いです。

  • Notepad ++を開きます
  • 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 = warnings)
  • 保存をクリックします
  • スクリプトを保存する名前を入力します(つまり、Perlコンパイル)
  • [メニュープラグイン]-> [Nppexec]-> [詳細オプション]-> [メニュー項目]に移動します(注:これは[メニュー項目*]の下にあります)
  • 「関連付けられたスクリプト」というタイトルのコンボボックスで、ドロップダウンメニューで最近作成されたスクリプトを選択し、「追加/変更」を選択して「OK」->「OK」をクリックします。
  • Notepad ++を再起動します
  • [設定]-> [ショートカットマッパー]-> [プラグイン]-> [スクリプト名の検索]に移動します
  • 使用するショートカット(Ctrl + 1)を選択し、[OK]をクリックします
  • 選択したショートカットで作成されたスクリプトを実行できることを確認します。
40
David

Perlの場合、

Perlスクリプトを実行するには、次の手順を使用します

要件:クラスパス変数を設定する必要があります。

plugins->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プラグイン

Plugins-> NppExec-> Run file in Python intercativeに移動します

これを使用すると、Notepad ++内でスクリプトを実行できます。

PHPの場合、

このプラグインをダウンロードするだけで、別の構成は不要です。

PHPプラグイン 完了。

C言語の場合、

要件:クラスパス変数を設定する必要があります。
MinGWコンパイラを使用しています。

プラグイン-> NppExec->実行に移動します

これをそこに貼り付けます

   NPP_SAVE

   CD $(CURRENT_DIRECTORY)

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

   a

(上記の4行を別々の行にすることを忘れないでください。)

次に、名前を付けて、保存して[OK]をクリックします。

Nppを再起動します。

プラグイン-> NppExec->詳細オプションに移動します。

メニュー項目->項目名(Cコンパイラがあります)

関連するスクリプト->コンボボックスから、上記のスクリプト名を選択します。

[追加/変更]をクリックして[OK]をクリックします。

次に、最初の回答で指定されたショートカットキーを割り当てます。

押す F6 スクリプトを選択するか、単にショートカットを押します(私は割り当てました Ctrl+2)。

C++の場合、

gccおよび*.cppの代わりに*.cの代わりにg ++のみを変更します

それでおしまい!!

24
Mayur Patil

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

5
Pwdr

NppExecの多くの情報を含む次のページを確認できます。

私は個人的に、多くの種類のファイル(C、メイクファイル、Perlスクリプト、シェルスクリプト、バッチなど)で使用できる次のバッチスクリプトを使用しています。このファイルは、runNcompile.batという名前でNotepad ++ユーザーディレクトリ(%APPDATA%/ Notepad ++)に保存します。

次に、NppExecメニューの[Follow $(CURRENT_DIRECTORY)]オプションを確認しながら、NppExecコマンド"$(SYS.APPDATA)\Notepad++\runNcompile.bat" "$(FULL_CURRENT_PATH)"を使用します。最後に、スクリプトを起動するための特別なキー(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
3

私のソリューションをお勧めします。私の状況:win10のg ++​​(cygwin)

私の解決策:.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
dom free

Nppexecプラグインを使用しなくても、実際にCコードをコンパイルして実行できます。 MingW32 Cコンパイラを使用する場合、C++言語にはg ++を、C言語にはgccを使用します。

このコードをnotepad ++実行セクションに貼り付けます

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

Cコードをexeにコンパイルし、すぐに実行します。これは、CodeBlockのビルドおよび実行機能のようなものです。これらはすべて、いくつかのcmdの知識で行われます。

説明:

  1. cmd/kはテストに使用されます。
  2. cd $(CURRENT_DIRECTORY)
    • ファイルがある場所にディレクトリを変更します
  3. &&演算子
    • コマンドを1行にチェーンする
  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
Yuukio

次のことを行う単一の強力なスクリプトを作成しました。

-CC++JavaPythonC#などの多言語コードをコンパイルして実行します。
-コードをコンパイルする前に古い実行可能ファイルを削除します。
-コードが正常にコンパイルされた場合にのみ、コードを実行します。

また、非常に使いやすいチュートリアルを作成しました Transform Notepad ++ to 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!
1
JerryGoyal

WindowsでMinGWのポータブルバージョンを使用している場合、パス変数を設定するか、libintl-8.dllエラーが見つかりません。私のパスはC:\ Program Files(x86)\ CodeBlocks\MinGW\binです

0
Antonio Runcio

コンパイラパスがwindows PATH-varに登録されている場合、コンパイルを実行してファイルを実行し、windowsmashinesでfileinputname = fileoutputnameを実行するために、これだけを書きました。

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
Clevemayer

CMDで逆コンパイルします。

うまくいかなかった場合はこれを試してください:

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

ファイルを取得した場所を保存する必要があります(例:デスクトップからファイルを取得した場合、デスクトップ上の.exeとして保存されます)

64ビットで動作するかどうかはわかりませんが、試してみてください!

0
Fandehalodu09