6. 「指定文字数折返マクロ」(Ver1.31以降)があれば、連動が可能。
Written at 1998.02.26
Last Update at 2001.05.02
秀丸の[その他]-[動作環境]-[パス]-[マクロファイル用のフォルダ]か、設定して無ければ、秀丸本体(hidemaru.exe)が有るフォルダに、「指定文字数折返マクロ」(Ver1.31以降)(指定文字数折返.mac)が、有る状態で「改行文字指定マクロ」を起動すると、次のダイアログがポップアップします。
通常のダイアログ以外に、[指定文字数折返の設定]ボタンが追加されます。
これは、「設定が可能な状態であって、折り返しを行うというわけでは無い」状態です。
折り返しを行いたい時は、ボタンをクリックして、次のダイアログをポップアップさせます。
「縦に長すぎて、全部表示できない」
と言う場合は、
ここ
通常のダイアログ以外に、【指定文字数折返の設定】群が追加されます。
・[行わない]ボタン
このボタンをクリックすると、上の「設定が可能な状態であって、折り返しを行うというわけでは無い」状態に戻ります。
・[単独起動・終了]ボタン
このボタンをクリックすると、現在の設定で「指定文字数折返マクロ」だけを実行し、終了します。
「改行文字指定マクロ」には戻ってきませんし、[Save]しておかなければ、設定も破棄されます。
・[インデント(半空 全空 TAB)有効]チェックボックス
ここで言う「インデントを有効にする」とは、インデント処理を行うと言うことです。
インデントとは、丁度この行のように、段落を通常の行より下げたり、上げたりしている状態を言います。インデントには普通、TAB文字を使います。
例を挙げると、
____あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ。
の様な行を、「指定文字数を"50"、インデントを"全空"(便宜上"_"で代用してます)」で処理すると、
____あああああああああああああああああああああ
____あああああああああああああああああああああ
____あああああああああああああああああああああ
____あああああああああああああああああああああ
____あああああああああああああああ。となります。
ちなみに、"半空"とは半角空白、"全空"とは全角空白のことです。
それぞれのチェックボックスは、その文字によってインデントされている場合に、インデント処理を行うと言う設定です。(当然、[ON]で有効、[OFF]で無効です)
さらに、「指定文字数折返マクロ」は禁則処理を行いながら、行を折り返すことが出来ます。禁則処理の設定は、秀丸での設定に従います(実行時、秀丸で禁則処理を行う設定であれば、禁則処理をし、でなければ、しません)。
指定文字数折返マクロにはVer1.6からマクロ内設定に、[空白(全角・TAB)インデントを半角空白に変換]設定を追加しました。
これが"する"だと、先頭行の次行以降に追加されるインデントを、半角空白に統一します。つまり、
[ T A B ]あああああああああああああああああああああ。
が、
[ T A B ]あああああ
[半空][][][][]あああああ
[半空][][][][]あああああ
[半空][][][][]あああああ
[半空][][][][]あ。となります。
"しない"だと、
[ T A B ]あああああ
[ T A B ]あああああ
[ T A B ]あああああ
[ T A B ]あああああ
[ T A B ]あ。です。(Ver1.6 1999.08.28)
ここには、インデント処理を行う任意の文字列を入力します。何文字でも半角でも全角でもかまいません。
ただ、空白から始まる文字列を入力すると、正常な動作を期待できません(こともないかも。上のチェックボックスを使わなければよい。重複してはダメでしょう。(1999.06.07))。空白の処理は、「インデント(半空 全空 TAB)有効]チェックボックス」に任せて下さい。先頭でなければ、間に入ろうが、後に付こうがかまいません。入力した後は、右にある[+](ショートカットキー: GRPH(ALT)+『+』)ボタンを押すと、上の「インデント(半空 全空 TAB)有効」に追加されます。
また、[<]、[>](ショートカットキー: GRPH(ALT)+『<』、『>』)ボタンを押すと、編集対象文字列を変更できます。編集後、[+]ボタンを押すと、反映されます。エディットボックス内が無文字で押すと、削除になります。(Ver4.3 (2001.05.02))
入力時の留意点には、優先順位があります。
・「半空 全空 TAB」チェックボックスが等位置な最上位で、
・追加された文字列の、一番左側が2位、次いで、右に移動する毎に3位、4位…と、下がっていきます(登録順が優先順になります)。
最上位は2位以下に乗算処理されます。うまく説明できませんが、つまり、
・ああああああああああああああああああああああああああああ。
の様なテキストを、インデント(全空、"・"←追加文字列)を有効にして、
・ああああああああああああ
ああああああああああああ
ああああ。と、なるようにしています。
「指定文字数折返マクロ」がVer1.5(以降)だと、2位以下も乗算処理出来ます。
マクロ本体の設定、[任意文字列インデント処理を乗算処理]を"する"にすると、
// 指定文字数折返マクロ Ver1.5 (1999.06.07)
//----------------------------------------------------------------------------
(省略)
//----------------------------------------------------------------------------
// 動作確認:秀丸エディタ Ver3.01 copyright (c) 斉藤秀夫
// 改行文字指定マクロ Ver4.01 Written by AKT
//----------------------------------------------------------------------------
//●「改行文字指定マクロ」側で出来る(する)設定
(省略)
//----------------------------------------------------------------------------
//◎ここでしか出来ない設定
$inifile="hmretdel.ini"; //--- 改行文字指定マクロ 設定ファイル名
$rap="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
//--- 折り返し位置に来たときワードラップをする文字
// (秀丸の「単語の先頭へ移動"gowordtop"」を使います)
#highn=0; //- ワードラップ出来ない時はハイフネーション(0:しない 1:する)
#indad=1; //- 任意文字列インデント処理を乗算処理 (0:しない 1:する)
//----------------------------------------------------------------------------
$inifile=hidemarudir+"\\"+$inifile;
次の文の、
たいとる
・(1) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
・(2) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
配布標準設定+インデント"全空"+"・"+"#\([0-9]\)"+折返"50"の編集結果は、
たいとる
・(1) なんかの項目:つらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつら
つらつらつらつら。
・(2) なんかの項目:つらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつら
つらつらつらつら。となります。
ついでに、[任意文字列インデント処理を乗算処理]を"しない"だと、
たいとる
・(1) なんかの項目:つらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつら
つらつら。
・(2) なんかの項目:つらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつら
つらつら。となります。違い、わかりますよね?(Ver1.5 1999.06.07)
それと、表示に関してですが、マクロサーバの関係上(と言うより、Windowsなのかも)、文字種類、フォントによって表示幅が変わるので、行でオーバーフローする場合(オーバーフローすると表示されません)があります。表示出来ているのか、出来ていないのか、は取得出来ないので、今は合計で38文字以上になる場合に改行しています。1つで34文字以上の場合はそれ以上を切り捨てています(38と34、値が違いますがこれも安全対策。34ならどんな組み合わせでもいけそうなので……もー、限界)。
改行文字指定マクロ Ver3.63時 526〜543行付近
#i=1;
while($iw[#i]!=""){
$m="";
$m2="";
while($iw[#i]!=""){
$m2=$m2+"\""+$iw[#i]+"\""+" ";
if(strlen($m2)<=38){
$m=$m2;}
else if($m=="" && strlen($iw[#i])>34){
$m="\""+leftstr($iw[#i],34)+"…\"";
#i=#i+1;
break;}
else{
break;}
#i=#i+1;}
if($iw[#i]=="")
$m=$m+")有効";
ddepoke "newcontrol","text,, "+$m;}しかし、それもフォント次第で、「入力したのに見えない」場合があるかもしれません。そんな場合でも内部では有効になっていますので、気にしないで下さい。(だったら、こんな事書くな? ま、一応です)(改行文字指定マクロVer3.63 1999.04.16)
「指定文字数折返マクロ」がVer1.4(以降)だと、文字列を正規表現で入力できます。
先頭が、
・"#"だと、正規表現処理します。
・"%"だと、あいまい正規表現処理します。"#","%"自身を先頭に入力する場合は、"##","%%"とします。
動作の実体は、
searchdown "(先頭の"#","%"を除いた任意文字列)",regular,(fuzzy)←あいまいの場合
なので、詳細は[秀丸ヘルプ]-[検索系コマンド]-[検索]-[正規表現]や、秀丸エディタ配布ファイル内、JRE.DLL解説書"README.JRE"Copyright (C) 1992,93,94,95 Yamada Kazuoを参照して下さい。
恐らく、全ての機能が使えるはずです。そういう風にしたつもりです……今回初めて正規表現ってやつに手を出したので、全て試せるほど精通してないんです。申し訳ない……一応動作例を。
たいとる
つらつら文……つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
(1) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
(2) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
(3) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
(4) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
(5) なんかの項目:つらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつらつら。
これを、配布標準設定+インデント"全空"+"#\([0-9]\)"+折返"50"で編集すると、
たいとる
つらつら文……つらつらつらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつらつらつ
らつらつらつらつらつら。
(1) なんかの項目:つらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつ
らつらつら。
(2) なんかの項目:つらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつ
らつらつら。
(3) なんかの項目:つらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつ
らつらつら。
(4) なんかの項目:つらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつ
らつらつら。
(5) なんかの項目:つらつらつらつらつらつらつ
らつらつらつらつらつらつらつらつらつらつら
つらつらつらつらつらつらつらつらつらつらつ
らつらつら。
(注)便宜的に半角空白2文字を全角空白1文字に置き換えてます。
赤字部分が"Hit"したわけです。うーん、見事、JRE32.DLL。と、なります。(1999.04.10)
ここには、折り返しする文字数を入力します。入力は半角文字で、文字数は半角文字換算でお願いします。
文字数に"2"未満を指定することは出来ません。
また、[行頭追加文字列]を入力した場合、その"文字数+2"未満も指定できません。
これは、編集範囲内の全ての行頭に追加する文字列の設定を行います。
チェックボックスが[ON]で、エディットボックス内の文字列を、折り返し動作の前に行頭に追加します。追加出来る文字列に制限はありません。
Ver3.5より、メインダイアログにも[(行頭)追加文字列]エディットボックスを追加したので、このエディットボックスとの協調を取りました。
具体的には、[指定文字数折返の設定]を行う前に、[(行頭)追加文字列]エディットボックスに文字列が入力されていると、自動的に、ここのチェックボックスを[ON]にして、エディットボックスにも、入力されていた文字列を移します。そして、2重入力とならないように、[(行頭)追加文字列]エディットボックスを表示しません。
・[多重追加]チェックボックス
これは、[行頭追加文字]チェックボックスが[ON]である時、行頭に文字列を追加する前に、行頭の文字をチェックし、追加する文字列がすでに行頭であった場合にも、追加を行うかどうかを設定します。
[ON]で、追加し、[OFF]だと追加しません。
このチェックボックスは、ワードラップした単語の前に半角空白を追加するかどうかを設定します。
[ON]で、追加し、[OFF]だと追加しません。
ワードラップのON/OFFは秀丸の[その他]-[動作環境]-[禁則処理]-[ワードラップ]に従い、その開始文字は「指定文字数折返マクロ」内設定に依ります。ハイフネーションの設定もマクロ内にあります。
折り返し処理には改行文字指定処理終了後、移行します。
移行時、処理行(全文若しくは選択行)情報を転送しますので、選択し直す必要はありません。と言うか、何の確認メッセージもなく処理を移行します。「改行文字指定マクロ」実行前の範囲選択は、それを踏まえた上で行って下さい。
その時、[引用記号]エディットボックスに文字が入力されていると、[引用記号]に設定され、チェックボックスが「ON」だと、[引用行編集]機能が有効になります。[引用行編集]については、こちらで。
動作中はタイトルバーに、動作カウンターと、禁則処理が「ON」だと、[禁則]、ワードラップが「ON」だと、[ラップ]、[WR半空]が「ON」だと、+"_"、任意文字列インデント処理を乗算処理”する"だと、[Ind.+]、が表示されます。(Ver1.5 1999.06.07)
Ver1.6より、マクロ内設定で[拡張子毎設定]"する"だと、タイトルの右端に、"[ ]"を表示します。この時、"[ ]"内には、その拡張子が表示されます(空白の時は基本設定ファイル使用を表します)。(Ver1.6 1999.08.28)
おまけで、「指定文字数折返マクロ」を単独で起動した場合のダイアログを載せておきます。
Ver1.25での表示です。(1998.12.05)
エディットボックスには、折り返し文字数を(半角文字換算の半角文字で)入力します。文字数に”2”未満は指定できません。
その他に、現在の秀丸の禁則処理チェックボックスの状態、ワードラップON/OFF(+空白追加)、インデント処理設定状態も表示します。
禁則処理、ワードラップは、秀丸の設定に従う為、ここで状態が[OFF]の場合は、禁則処理、ワードラップを行いません。また、ワードラップの開始文字は「指定文字数折返マクロ」内での設定です。ハイフネーションの設定もマクロ内です。
(ワードラップ)+空白追加とは、「改行文字指定マクロ」-[折返設定]の"WR半空"のことで、これが[ON]の時はダイアログで、
ラップ:[ON/OFF] +"_"
と表示されます。[OFF]の時は、
ラップ:[ON/OFF]
だけが表示されます。設定の変更は、「改行文字指定マクロ」ダイアログか、「指定文字数折返マクロ」内で行います。単独起動時は変更出来ません。
インデント処理の設定も同様です。
また、任意文字列インデント処理を乗算処理"する"だと、
I_文字列(+):[
と表示されます。"しない"だと、
I_文字列:[
だけが表示されます。(Ver1.5 1999.06.07)
その他の「(インデント処理)指定文字列」については、こちらで。
また、正規表現も出来ます。(1999.04.10)
秀丸フォルダに"hmretdel.ini"があると、そこから設定を読み込みます。「改行文字指定マクロ Ver3.2」以降があれば、「改行文字指定マクロ」で設定を変更し、その設定を[Save]した上で起動して下さい。 但し、折り返し文字数が"0"だったり、"hmretdel.ini"が無かったりすると、マクロ本体内の設定で起動します。
Ver1.6より、マクロ内設定に[拡張子毎設定]を追加しました。これが"する"だと、"hmretdel"+[拡張子]+".ini"のファイルがあれば、そちらを使います。(「改行文字指定マクロ」の動作に準拠)
ちなみに[SHIFT][0]-[9]キー押下は使えません。「改行文字指定マクロ」から連動して下さい。(Ver1.6 1999.08.28)
注意 秀丸の[その他]-[(ファイルタイプ別の)設定]-[全般]-[折り返し文字数]で設定してある文字数以上には、折り返す文字数を指定することは出来ません(指定しても秀丸の折り返し文字数で指定したことになります)。
この注意事項は、そうならないようにしようかとも思ったんですが、
「これの方がいいか……」
と、思い直してそのまま注意事項として追加することにしました。どーでしょう?(1998.02.27)
Ver3.5より、「改行文字指定マクロ」のダイアログ上の[指定文字数折返の設定]を、別ダイアログに出来るようになりました。
別ダイアログ表示したい場合は、「改行文字指定マクロ」のマクロ本体で変数"#retcaw"に、"1"を代入するよう訂正してください。
// 改行文字指定マクロ Ver3.5 (1998.07.21)
//----------------------------------------------------------------------------
//・(エディット・チェックボックスのいずれかで)指定した全・半角文字(無指定可)
// 以外での改行をキャンセルするマクロ。
// 選択範囲内かファイル全体のいずれかで動作する。
//・編集範囲内の行末空白を削除する。(範囲選択処理時の最下行は削除しない)
//・マクロサーバがインストールされていれば、初期設定の変更が可能。
//・「指定文字数折返マクロ Ver1.21(以降)」があれば、連動が可能。
//・「改行指定文字マクロ用文書確認マクロ Ver1.11(以降)」があれば、連動が可能。
// ※マクロ連動時に、クリップボードはクリアされます。
//----------------------------------------------------------------------------
//・添付の"hmretdel.ini"(出来るだけ最新添付の物をお使い下さい。でないと正常
// なダイアログ表示をしない場合があります)を秀丸本体(hidemaru.exe)があるフォ
// ルダにコピーしておいて下さい。
//・(Ver3.45以前の「禁則処理」「改行文字のぶら下げ」は関係しなくなりました)
//----------------------------------------------------------------------------
// 注意:NEC PC98シリーズ以外の機種でこのマクロを動作させる場合は、下の変数
// "#pc98"に、"0"を代入して下さい。
//----------------------------------------------------------------------------
//(http://home.interlink.or.jp/~akt/hmretdel/)に動作解説を用意してあります。
//----------------------------------------------------------------------------
//(動作確認:秀丸エディタ for Win95 Ver2.24、秀まるおのマクロサーバ Ver1.3)
//----------------------------------------------------------------------------
$ini="hmretdel.ini"; //--- 設定ファイル名
$hmretcut="指定文字数折返.mac"; //--- 指定文字数折返マクロファイル名
$hmdcheck="文書確認11.mac"; //--- 文書確認マクロファイル名
#pc98=1; //--- NEC PC98機種依存文字(0:OFF 1:ON)
#retcut=0; //--- 指定文字数折返設定 初期状態 (0:行わない 1:行う)
#retcaw=1; //--- 〃 (0:同ダイアログ 1:別---)
$ini=hidemarudir+"\\"+$ini;
上記の訂正後、「改行文字指定マクロ」を起動し、[指定文字数折返の設定]ボタンをクリックすると、次のダイアログで表示されます。
これは、[指定文字数折返の設定]を抜き出して表示しているにすぎないので、当然、「改行文字指定」の設定も生きています。
[Save]や[Load]も出来ますし、「OK」をクリックすれば、「改行文字指定」処理に移行し、終了すると、「指定文字数折返」処理を行います。