Hatena::ブログ(Diary)

日々量産 このページをアンテナに追加 RSSフィード

2010-09-16

[]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を見ると変数の一覧が乗っています。

結構いろんなものが定義されているので、色々な使い方ができそうです。

BsBs 2011/06/06 20:53 NppExecで困ってる者です、私はCやJavaしか経験がないので上記のファイルの意味はよくわからないのですが コマンド inputbox("message") で入力された値を build.bat で取得する事は可能なのでしょうか?
よろしければ教えてください!

ryousanngataryousanngata 2011/06/12 11:34 上記のファイルの意味は、ただ拡張子から使用するコンパイラを選んでコンパイルし実行を行うだけです。

inputboxを呼び出すと変数INPUTに代入されますよね。
NppExecのコマンドでバッチファイルを呼び出す際に、引数として渡せば良いかと思います。

// save current file
NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
INPUTBOX "input me!!"
"$(NPP_DIRECTORY)\build.bat" "$(INPUT)" "$(FILE_NAME)"

バッチ側で%1とでもすれば得られると思います。

BsBs 2011/06/15 19:21 なるほどです、バッチファイルっていうんですね
%1等の謎が解けました
参考にして少し変更を加えたところ無事思っていた動作をするようになりました、ありがとうございました!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ryousanngata/20100916/1284636924
リンク元
Connection: close