≡ WZ ≡
WZも…

 段々VZエディタが自在に使えるOSとマシンの環境が少なくなってきて、私も2002年にWZエディタのユーザー(Ver.4)になりました。2003年秋にバージョンアップがあって現在はVer.5ですが、体験版を試用した印象だけで言うと、基本的な部分は変わっていないので、あえて新バージョンにする必要を感じません。とはいえ、ある日思い立って買うかもしれませんが…。
 WZエディタは、 ビレッジセンター から販売されているエディタです。

03/12/31(19:54):フリーフォーム
03/12/31(19:33):スタックプリント
03/12/31(18:03):マクロ環境の設定
03/12/31(10:27):WZで STK 作成
03/12/31(09:08):STK の利用とアウトライン
03/12/30(21:13):ファイラーの呼び出し
03/12/30(21:02):まずは色の設定でVZの雰囲気を

@
03/12/31(19:54):フリーフォーム
------------------------------------------------------------------------------
 VZではお馴染みの Emmett さんオリジナル整形マクロです。初期のVZ用マクロ
を自分用にカスタマイズしていて、これをWZ用に移植しました。
 整形時に半角文字の前後に半角スペースを入れます。更に起動するときのカーソル
の位置で行頭を揃えるので、意外と便利。愛用しています。
 以下はサンプルです。■が起動カーソル位置
----------------------------------------------------------------------------
■2004年はどういう年になるでしょうか。阪神タイガースは2年連続優勝できる
か?佐藤琢磨はF1で表彰台に上がれるか?そして、肝心の景気は良くなるのか?

     ■2004年はどういう年になるでしょうか。阪神タイガースは2年連続
          優勝できるか?佐藤琢磨はF1で表彰台に上がれるか?そして、肝心の景
          気は良くなるのか?

          ■2004年はどういう年になるでしょうか。阪神タイガース
                    は2年連続優勝できるか?佐藤琢磨はF1で表彰台に上がれる
                    か?そして、肝心の景気は良くなるのか?
----------------------------------------------------------------------------
//--------------------8<--------------------

txstr t_moji="\t ・#*@§☆★○●◎◇◆□■△▲▽▼※[{(〔[{〈《「『【〉》:!?]:;アイウエオカキクケコ=‥-#<(12345678901234567890@ABCDEFGHIJK";
txstr a_moji=" 、。,.:;!?)]}-、。,.:;!?)〕]}〉》」』】’”";
txstr b_moji="([{(〔[{〈《「『【‘“";

//====★デフォルト数値です
int lxleft=0;
int lxright=76;
//====★利用環境によってカスタマイズしてください

ins_space(TX* text){
	int i;
	jumpparatop();
	selectquit();
	select();
	jumpparaend();
	mchar *szstr[] = {
		\"([ぁ-K])([A-Za-z0-9#-&\\_])",	\"\1 \2",
		\"([A-Za-z0-9#-&\\_])([ぁ-K])",	\"\1 \2",
		\"([ぁ-K])([0-9,.]+[A-Za-z#-&\\_ ])",	\"\1 \2",
		\"([A-Za-z#-&\\_ ][0-9,.]+)([ぁ-K])",	\"\1 \2",
		0,0
	};
	for (i=0;szstr[i];i+=2) {
		txReplaceEx(text,szstr[i],szstr[i+1],SEARCH_REWZ|SEARCH_AREA);
	}
	selectquit();
}

renketu(TX* text){
	int r;
	int cd;
	while(1){
		jumpparaend();
		right();
		r=iscurreturn();
		if(r) return;
		r=iscureof();
		if(r) return;
		cd=getchar();
		r=strchr(t_moji,cd);
		if(r) return;
		while(getchar()==' ') right();
		deleteparalinetop();
		deleteprev();
	}
}

ketaori(TX* text){
	int r;
	int cd;
	jumpparatop();
	while(1){
		jumplx(lxright-1);
		if(iscurreturn()) return;
		if(iscureof()) return;
		right();
		cd=getchar();
		r=strchr(a_moji,cd);
		if(r) right();
		if(iscurreturn()) return;
		if(iscureof()) return;
		if(isalnum(cd)) jumpwordtop;
		left();
		cd=getchar();
		r=strchr(b_moji,cd);
		if(r==NULL) right();
		insertreturn();
		int i=lxleft;
		while(i--) insert(" ");
	}
}

main{
	setundisp();
	lxleft=getaddress-getparatop();
	renketu(text);
	left();
	ins_space(text);
	ketaori(text);
	right();
	setdisp();
}
//-------------------->8--------------------

==============================================================================
@
03/12/31(19:33):スタックプリント
------------------------------------------------------------------------------
 仕事でライティングする場合にも、stk のカードで作業していると作業情報の管理
がしやすいです。仕事ですから、最終的にはプリントアウトしてコピーを配るなどと
いう場面が少なくありません。VZの時は印刷機能がありませんので、外部プログラ
ムとして PRT++と連携させるなどという技が必要でしたが、WZは自身が印刷機能を
持っていますのでマクロも楽です。
 このスタックプリントは STK のカード1枚をそっくり印刷するためのマクロです。
カード1枚分が何行か表示してくれますので、これをもとに印刷設定の行数を調整し
てください。

//--------------------8<--------------------
///stkprt.txc by M'shi 021223///

block_one_card{
	int r,rr;
	int start,end;

	r = searchex("^@$",SEARCH_PREV|SEARCH_REWZ);
	if(r==2){
		downn(3);
		int defo = text->fLineD;
		text->fLineD = 1;
		start = text->nline;
		selectex(CLIP_LINE);
		rr = searchex("^@$",SEARCH_FORWARD|SEARCH_REWZ);
		if(rr==0){
			jumpfileend();
		}
		up();
		end = text->nline;
		text->fLineD = defo;
		if (question("%d 行です",end-start)!=IDYES){
			r=-1;			//No or Cancel
			selectquit();
		}
	}
	return r;
}

open_pst{
		TX* text2=textFrameOpen("prt.tmp");
		txDeleteText(text2);
		txPaste(text2);
		txDeletePrev(text2);
}

main{
	int ok=block_one_card(text);
	if (ok==2){
		selectcopyquit;
		open_pst(text);
	}
	else if (ok==0)
		information("カードがありません");
}
//-------------------->8--------------------

==============================================================================
@
03/12/31(18:03):マクロ環境の設定
------------------------------------------------------------------------------
 マクロをコンパイルする前にマクロの実行環境を整備しておきます。[ツール]→
[マクロ]→[TX−Cの設定]の〔設定〕タブでマクロパスを指定しておきます。
私の設定は、WZをインストールしたフォルダの下の src というフォルダに指定し
ています。インストールパスは wz:と表示されるようなので、wz:\sec と指定してお
きます。
 ファイラーを開いて src フォルダを表示させます。ここで、〔F〕→〔N〕とキ
ーインします。新規ファイル作成のダイアログになるので、insstk.txc と指定しま
す。空の.txc ファイルが出来ますので、下のカードのマクロを切り取って貼り付け
てください。そして、保存します。
 次にコンパイルします。先ほどの〔設定〕で"自動 make を行う"に指定してあれば、
特にコンパイルしなくてもOKですが、一応バグが潜んでいる可能性もあるので、事
前にコンパイルしておきます。[ツール]→[マクロ]→[コンパイル]です。

 マクロの実行環境ですが、やはりVZライクにキー割当をして実行したいところで
す。[ツール]→[キーカスタマイズ]で、〔追加〕。キーをお好みに設定して、コ
マンドの方に insstk.main と指定します。

 これで、適当な stk を開いておいて、マクロを実行してみてください。どうです
か?新しいカードが挿入されましたか。

==============================================================================
@
03/12/31(10:27):WZで STK 作成
------------------------------------------------------------------------------
 とりあえず STK のカードさえ作れればあとの処理はVZでも可能なので INSSTK 
というマクロを作りました。たいしたプログラムでもないので、このカードに貼り付
けておきます。コンパイルの仕方、マクロの利用方法などは別のカードで紹介します。

//--------------------8<--------------------
main{
	int r,adr;
	int year,month,day,hour,minute;
	year=timeGetYear();
	month=timeGetMonth();
	day=timeGetDay();
	hour=timeGetHour();
	minute=timeGetMinute();

	r = searchex("^@$",SEARCH_PREV|SEARCH_REWZ);
	if (r==0){ 
		jumpfiletop();
		jumplinetop();
	}
	insertpara();
	insert("@");
	insertreturn();

	insertf("%02d/%02d/%02d(%02d:%02d):",year-2000,month,day,hour,minute);

	adr=getaddress();
	adr++;
	insertreturn();
	for(r=1;r<14;r++)
		insert("------");
	insertreturn();
	insertreturn();
	for(r=1;r<14;r++)
		insert("======");
	jumpaddress(adr);
}
//-------------------->8--------------------

==============================================================================
@
03/12/31(09:08):STK の利用とアウトライン
------------------------------------------------------------------------------
 VZ時代に蓄積した STK をWZでどう利用するかというのが、テキスト処理の一
つのカギであると思います。
 まずは、WZにデフォルトで内蔵されているアウトライン機能を利用します。[表
示]→[文書の設定]ダイアログの"見出し"タブを開いて、〔見出し1〕に、、

^.?[0-9]+/[0-9]+/

を記入します。正規表現を使えるのが、このアウトライン機能の強みですね。
 で、毎度毎度指定するのでは意味がないので、ファイル名の拡張子が .STK の場合
は全てこの設定が使えるように保存しておきます。〔記憶〕タブの〔名前を付けて登
録〕ボタンを押して、出てきたダイアログに .STK を指定します。これで、次回から
は STK ファイルを開けばこの設定が適用されます。
 さて、エディタ画面に戻ってアウトラインを表示させましょう。キーボードの
[SHIFT]+[ESC]でアウトラインがトグル表示されます。

==============================================================================
@
03/12/30(21:13):ファイラーの呼び出し
------------------------------------------------------------------------------
 ファイラーの呼び出しはマウス操作の[ファイル]→[開く]では出てきません。
VZライクにキー操作で[ESC]+[O]と入力し、空のファイルオープンダイアログ
を表示さ、[ENTER]空打ちで、ファイラーが開きます。
 これをワンキーでやるためには、[ツール]→[ファイラー]にキーを割り当てま
す。[ツール]→[キーカスタマイズ]で"追加"ボタンを押してWZ FILERを
選択し、好みのキーを指定します。私は、VZで上村さんの PATH.DEF を使っている
[F8]キーを割り当てています。ファイラーを起動させて更に[F8]を押すとW
Zのパスヒストリが出るので、超便利に使えます。

==============================================================================
@
03/12/30(21:02):まずは色の設定でVZの雰囲気を
------------------------------------------------------------------------------
 [表示]→[オプション]で、まずは環境設定をします。VZライクにするには、
まず色を決めたいところです。Windows 標準の白い背景に黒い文字はディスプレイを
長く眺める目に負担がかかります。背景を黒に、そして文字を白にしましょう。
 アンダーラインの色や制御文字の色はお好みですが、VZの色に合わせるのも一つ
の手です。更にIME変換文字の色まで制御できるのが嬉しいところ。私はATOK
使いなので、DOS版ATOK8の色に合わせています。
==============================================================================


go top