Notepad++

以前ご紹介しましたが、プラグインの入手先とか書いてませんでした。
また、ちょっとしたコードを書いて文法チェックorコンパイルラクにする何かは、
Javaでの使い勝手が悪い場面があったので、少し改善しました。
Notepad++ EUC-JP対応版 - 日々量産


プラグイン

プラグインは以下で一覧が公開されてます。
http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Plugin_Central
個人的にお勧めなのは、
HEX Editor: バイナリエディター表示に切り替えができる(しかし検索に難アリ)
RegEx Helper: 指定範囲内が正規表現にマッチするかをチェックできる
他にも便利そうなプラグインが山盛りです。
正規表現マッチング&置き換えとかするプラグインがあればいいんですけどね!
"RegRexPlace"がそれっぽいのだけど、使い方がわかんなかった。

ちょっとしたコードを書いてうんたん

やり方は以前と同じですが、Notepad++のNppExecで使うコマンドとバッチファイルの中身がちょっと違います。


今まではコンパイルするファイルにフルパスを指定してやってましたが、
Javaでは実行時にちょっと問題があるようで(カレントディレクトリがNotepad++がある場所になっているせいかも)
それの影響を受けないように、コンパイル&実行時はカレントディレクトリをファイルがある場所まで移動するようにします。
また、NppExecの変数もお勉強して、コンパイル直前にファイルをセーブするようにしたり、ポータブルしても大丈夫なようにします。
バッチファイルのErrorLevelの処理も動いてなかったので、修正しました。

build.bat(Notepad++.exeと同じ階層に置くとよい)

@echo off

set fname=%~n1%~x1
set option=
set exec=
set CC=

:optloop
if "%2"=="" goto optend
set option=%option% %2
shift /2
goto optloop
:optend

if "%~x1"==".cpp" goto cpp_lang
if "%~x1"==".c" goto c_lang
if "%~x1"==".pl" goto perl_lang
if "%~x1"==".java" goto java_lang

goto not_suport_lang

:not_suport_lang
echo not support file
exit 0

:cpp_lang
echo compile cpp file.
set CC=g++
set exec=%fname:.cpp=.exe%
set option=%option% -o %exec%
goto build

:c_lang
echo compile c file.
set CC=gcc
set exec=%fname:.c=.exe%
set option=%option% -o %exec%
goto build

:perl_lang
set CC=perl
set option=%option% -c
goto build

:java_lang
echo compile java file.
set CC=javac
set exec=java %~n1
set option=%option%
goto build


:build

echo %CC% %option% %fname%
%CC% %option% %fname%

if "%ERRORLEVEL%"=="0" if not "%exec%"=="" (
	echo ---EXEC---------------------------
	%exec%
)

NppExecで指定するコマンド

NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
"$(NPP_DIRECTORY)\build.bat" "$(FILE_NAME)"


こんな感じにやってみました。
"NppExecで指定するコマンド"で使った変数に関しては概ね変数名通りの意味を持ちます。
NppExecのHelpを見ると変数の一覧が乗っています。
結構いろんなものが定義されているので、色々な使い方ができそうです。