次のようなカッコマクロ可能でしょうか。No.02020
kendo さん 01/04/22 22:38
 
 DOSのときはもっぱらVZエディタでしたが、windowsでは秀丸になりました。
それでもVZで便利だったマクロのことが忘れられません。

 以下のものは WZエディタの見米氏が作られたもののドキュメントに一部分です
が、これと似たような機能のマクロ、秀丸でも実現可能でしょうか。

「ペア括弧マクロ  PAIR.DEF

 このマクロはVZ Ver1.6に標準装備された「全角括弧」の上位互換マクロです。次
のような特徴があります。

《■半角括弧も登録できる》
《■入力済み括弧を再変換できる》
《■学習機能がついている》」

  見米氏のpair.defのpair.docより引用

(defそのものは長いので、ここでは転載しておりません。)
わたしなりの使い心地をいいますと、

 たとえば、 わたしは という部分を選択してこのマクロを立ち上げると、
「わたしは」 などとなります。もしこの「......」が気に入らないときには、「 
か 」 にカーソルを合わせて、またこのマクロを再度立ち上げて別の好みのカッコ
を選択すると、それが一発で切り替わります。

 ですから【「わたしは」】などとなって、「 」 をあとから削除しなくてもいい
のです。
 学習機能というのは、よく使うマクロほど選択肢の前のほうに出てくるというもの
ですが、これはあまりこだわりません。自分で判断して、選択肢の順序をあらかじめ
設定できるからです。


[ ]
RE:02020 次のようなカッコマクロ可能でしNo.02021
TAKA さん 01/04/23 01:09
 
TAKA です。

> 以下のものは WZエディタの見米氏が作られたもののドキュメントに一部分です
>が、これと似たような機能のマクロ、秀丸でも実現可能でしょうか。

はい、以下のようなマクロで可能です。
先頭の括弧のテーブルに追加変更して、自分好みにカスタマイズし
て下さい。
学習機能はありませんが、iniファイルを利用して、学習機能を付
けることは可能と言えば、可能です。


// 括弧マクロ(ここから)
    $Tbl[0] = "()";
    $Tbl[1] = "「」";
    $Tbl[2] = "【】";
    #Tbl[0] = 1;    // 1バイト文字
    #Tbl[1] = 2;    // 2バイト文字
    #Tbl[2] = 2;    // 2バイト文字
    #TblCnt = 3;    // 括弧の数

    if( selecting )
    { // 範囲選択されている
        call Append;    // 括弧追加
    }
    else
    {
        call Change;    // 括弧変更
    }
    endmacro;

    //----------------------//
    //      括弧追加        //
    //----------------------//
Append:
    ##LX = seltopx;
    ##RX = selendx;
    ##LY = seltopy;
    ##RY = selendy;
    escape;

    menuarray $Tbl, #TblCnt;
    ##Ret = result;
    if( ##Ret == 0 )
    { // ESC
        goto AppendEND;
    }
    ##Sel = ##Ret - 1;
    $$LKakko = leftstr( $Tbl[##Sel], #Tbl[##Sel] );
    $$RKakko = rightstr( $Tbl[##Sel], #Tbl[##Sel] );
    moveto ##RX, #RY;
    insert $$RKakko;
    moveto ##LX, #LY;
    insert $$LKakko;
    return;

AppendEND:
    return;

    //----------------------//
    //      括弧変更        //
    //----------------------//
Change:
    ##X = x;
    ##Y = y;
    gokakko;
    if( ( ##X != x ) || ( ##Y != y ) )
    { // 移動した(括弧対応がある)
        //----------------------------------//
        //      正確に括弧に移動させる      //
        //----------------------------------//
        ##X = x;
        ##Y = y;
        gokakko;
        //--------------------------//
        //      括弧の座標取得      //
        //--------------------------//
        if( ##Y == y )
        {
            if( ##X > x )
            {
                ##LX = x;
                ##RX = ##X;
            }
            else
            {
                ##LX = ##X;
                ##RX = x;
            }
            ##LY = ##Y;
            ##RY = ##Y;
        }
        else if( ##Y > y )
        {
            ##LX = x;
            ##RX = ##X;
            ##LY = y;
            ##RY = ##Y;
        }
        else
        {
            ##LX = ##X;
            ##RX = x;
            ##LY = ##Y;
            ##RY = y;
        }
    }
    else
    { // 括弧がない
        goto ChangeEND;
    }

    menuarray $Tbl, #TblCnt;
    ##Ret = result;
    if( ##Ret == 0 )
    { // ESC
        goto ChangeEND;
    }
    ##Sel = ##Ret - 1;
    $$LKakko = leftstr( $Tbl[##Sel], #Tbl[##Sel] );
    $$RKakko = rightstr( $Tbl[##Sel], #Tbl[##Sel] );
    moveto ##RX, ##RY;
    delete;
    insert $$RKakko;
    moveto ##LX, ##LY;
    delete;
    insert $$LKakko;

ChangeEND:
    return;
// 括弧マクロ(ここまで)

[ ]
RE:02021 次のようなカッコマクロ可能でしNo.02022
TAKA さん 01/04/23 01:20
 
TAKA です。
一部修正です。すみません。

以下の4行を

>    moveto ##RX, #RY;
>    insert $$RKakko;
>    moveto ##LX, #LY;
>    insert $$LKakko;

以下のように修正してください。「#」がありませんでした。
2行目以降でテストしていて不具合が発覚しました。

    moveto ##RX, ##RY;
    insert $$RKakko;
    moveto ##LX, ##LY;
    insert $$LKakko;

[ ]
RE:02021 次のようなカッコマクロ可能でしNo.02023
TAKA さん 01/04/23 02:41
 
TAKA です。

>学習機能はありませんが、iniファイルを利用して、学習機能を付
>けることは可能と言えば、可能です。

学習機能を追加したマクロを
http://www.infomadonna.ne.jp/~takata/hm/kakko.lzh
に登録しました。

圧縮ファイルの内容は、
Kakko.ini
Kakko.mac
の2つです。

// Kakko.ini(ここから)
[Kakko]
TblCnt=3;
Tbl0=【】
Tbl1=「」
Tbl2=()
// Kakko.ini(ここまで)

マクロ実行で括弧の追加や変更を行った際に、iniファイルを変更
して次回のマクロ実行時には最後に使用した括弧が一番上にくるよ
うになります。

iniファイルは秀丸と同一のフォルダにおいておく必要があります。

この圧縮ファイルは、1週間程度したら消す可能性がありますので、
必要な人はもっていって下さい。

[ ]
RE:02020 次のようなカッコマクロ可能でしNo.02024
heikki さん 01/04/23 08:22
 
> ですから【「わたしは」】などとなって、「 」 をあとから削除しなくてもい
>いのです。
> 学習機能というのは、よく使うマクロほど選択肢の前のほうに出てくるというも
>のですが、これはあまりこだわりません。自分で判断して、選択肢の順序をあらか
>じめ設定できるからです。

初めまして
私もこのようなことを望んでいたのですが、この表現は少し違っていると思います。
【わたしは】などとなって、「 」 をあとから削除しなくてもいいのです。
と、なるのではないでしょうか?



[ ]
RE:02024 次のようなカッコマクロ可能でしNo.02028
TAKA さん 01/04/23 11:49
 
TAKA です。

>私もこのようなことを望んでいたのですが、この表現は少し違っていると思います。
>【わたしは】などとなって、「 」 をあとから削除しなくてもいいのです。
>と、なるのではないでしょうか?

ご安心下さい。私のマクロでは、そのように、元の括弧を置き換え
るようになっています。

[ ]
RE:02024 次のようなカッコマクロ可能でしNo.02035
kendo さん 01/04/23 18:22
 
heikkiさん、レスありがとうございます。

表現がコトバ足らずで誤解を招きました。つまり、もともとの
「わたしは」の「」が置き換わらないで、その外に新しい【】がついてしまい、手動
で「 」を消すのではまずという意味でした。スミマセンでした。

>初めまして
>私もこのようなことを望んでいたのですが、この表現は少し違っていると思います。
>【わたしは】などとなって、「 」 をあとから削除しなくてもいいのです。
>と、なるのではないでしょうか?
>
>

[ ]
RE:02028 次のようなカッコマクロ可能でしNo.02036
kendo さん 01/04/23 18:26
 
TAKAさん、ありがとうございます。

 やはり「マクロ師」(なつかしいコトバ、VZのときよく耳にしました。)
がいらっしゃるこの交換室に投稿してよかったです。


>>私もこのようなことを望んでいたのですが、この表現は少し違っていると思います。
>>【わたしは】などとなって、「 」 をあとから削除しなくてもいいのです。
>>と、なるのではないでしょうか?
>
>ご安心下さい。私のマクロでは、そのように、元の括弧を置き換え
>るようになっています。

 お返事遅れましてスミマセンでした。
 昨日は疲れて12時頃には寝てしまいました。いま、仕事から帰ってこのフォーラ
ムでTAKAさんのレスを拝見しました。

 このマクロ大切にします。できましたら、ライブラリーにもアップしていただいて、
多くの方が利用なされるようにと望みます。

ありがとうございました。

[ ]
RE:02036 次のようなカッコマクロ可能でしNo.02037
kendo さん 01/04/23 18:46
 
さっそくいま試してみました。快適です!!!!!。スゴイです。

 カッコを置換すると際にカーソルを必ず左右どちらかのカッコの、それぞれ右隣に
置くというのが最初わかりませんでしたが、慣れればばっちりです。

(もしおねだりをさらにゆるしていただければ、右カッコの右となりにカーソルを置
いたとき、置換後は左カッコの右となりにカーソルが移動してしまわないで、もとも
と置いた右カッコの右となりに留まってくれると、続けてどんどん文章を書くのにさ
らに便利ということになりますが......)

でもうれしいです。VZの時の快適なカッコマクロが戻って来た感じです。


[ ]
RE:02037 次のようなカッコマクロ可能でしNo.02038
TAKA さん 01/04/23 19:38
 
TAKA です。

>(もしおねだりをさらにゆるしていただければ、右カッコの右となりにカーソルを置
>いたとき、置換後は左カッコの右となりにカーソルが移動してしまわないで、もとも
>と置いた右カッコの右となりに留まってくれると、続けてどんどん文章を書くのにさ
>らに便利ということになりますが......)

これは、楽勝です。対応したいと思います。確かに、その方が便利
ですね。
その前に、確認したいことが2点あります。

1.カーソルが左括弧の位置でマクロを実行した場合は、マクロ実
  行後はカーソルがどこにあるのがいいでしょうか?
  今のままがいいでしょうか?
  それとも、右括弧の右となりがいいでしょうか?

2.学習機能付(圧縮ファイルの方)と学習なし(最初のレス)の
  どちらのマクロを使用されていますか?
  出来れば、学習機能付であって欲しいです。


ライブラリへの登録予定ですが、実は、私と同ハンドルネームの人
がいくつかマクロを登録しているので、私が登録してしまうと、そ
の人と私との区別がつかないので、ライブラリへの登録はしないつ
もりです。
#でも、誰なんだろう?

その代わりに、私が公開している「REDライク」というキーアサイ
ンとマクロ集があるので、そちらの方に追加する可能性大です。
ちなみに、現在は、
http://www.infomadonna.ne.jp/~takata/hm/index.htm#macro
に登録されています。
次のバージョンでは、入れると思います。

[ ]
RE:02038 次のようなカッコマクロ可能でしNo.02039
kendo さん 01/04/23 20:20
 
TAKAさん、さっそくのレスありがとうございます。
(いま、夕食を食べてました。)

>>>....と置いた右カッコの右となりに留まってくれると、続けてどんどん文章を書
>くのにさ
>>らに便利ということになりますが......)
>
>これは、楽勝です。対応したいと思います。確かに、その方が便利
>ですね。
 さすが〜!という、月並みな言い方ですが、感激です。

>その前に、確認したいことが2点あります。
>
>1.カーソルが左括弧の位置でマクロを実行した場合は、マクロ実
>  行後はカーソルがどこにあるのがいいでしょうか?
>  今のままがいいでしょうか?
>  それとも、右括弧の右となりがいいでしょうか?
 ご指摘の通り、今のまま でいいように思います。変えたいのはカッコの種類であ
り、カーソルの位置ではありませんので。

>
>2.学習機能付(圧縮ファイルの方)と学習なし(最初のレス)の
>  どちらのマクロを使用されていますか?
>  出来れば、学習機能付であって欲しいです。
 
 学習機能付きで使用させていただいています。快調です。満足しております。


>ライブラリへの登録予定ですが、実は、私と同ハンドルネームの人
>がいくつかマクロを登録しているので、私が登録してしまうと、そ
>の人と私との区別がつかないので、ライブラリへの登録はしないつ
>もりです。
>#でも、誰なんだろう?
 ?? ほんとうですね。
>
>その代わりに、私が公開している「REDライク」というキーアサイ
>ンとマクロ集があるので、そちらの方に追加する可能性大です。
>ちなみに、現在は、
>http://www.infomadonna.ne.jp/~takata/hm/index.htm#macro
>に登録されています。
>次のバージョンでは、入れると思います。

 こんないいマクロ、皆さんがぜひ使って欲しいと思います。

[ ]
RE:02039 次のようなカッコマクロ可能でしNo.02040
TAKA さん 01/04/23 20:59
 
TAKA です。

>(いま、夕食を食べてました。)

私も、今、食べ終わりました。
#ウニを始めて(握りずし以外で)食べましたが、あまりおいしくな
 かったです。


> 学習機能付きで使用させていただいています。快調です。満足しております。

先ほど、修正したものを、前回同様に
http://www.infomadonna.ne.jp/~takata/hm/kakko.lzh
に登録しました。

括弧の追加時も、カーソル位置を変更時と同じ仕様にしました。

追加と変更の両方でいろいろテストして頂けると助かります。
バグがないとは、断言出来ませんので。

カーソル位置はマクロ実行時と全く同じという仕様ではありません
が、支障はないと思います。
カーソルが左側で実行した場合は、左括弧の右側に、カーソルが右
側で実行した場合は、右括弧の右側にしています。多分、この仕様
が使い勝手がいいと思います。

この仕様で、問題ないとは思いますが、違う仕様が良いとかありま
したら言って下さい。可能な限り対応します。

[ ]
RE:02040 次のようなカッコマクロ可能でしNo.02041
kendo さん 01/04/23 23:35
 
TAKAさん、いろいろお手数おかけします。

>先ほど、修正したものを、前回同様に
>http://www.infomadonna.ne.jp/~takata/hm/kakko.lzh
>に登録しました。
ありがとうございます。さっそくDLして使用しております。

>
>括弧の追加時も、カーソル位置を変更時と同じ仕様にしました。
 了解しました。

>追加と変更の両方でいろいろテストして頂けると助かります。
>バグがないとは、断言出来ませんので。
>
>カーソル位置はマクロ実行時と全く同じという仕様ではありません
>が、支障はないと思います。
>カーソルが左側で実行した場合は、左括弧の右側に、カーソルが右
>側で実行した場合は、右括弧の右側にしています。多分、この仕様
>が使い勝手がいいと思います。
 おっしゃるとおりです。

>この仕様で、問題ないとは思いますが、違う仕様が良いとかありま
>したら言って下さい。可能な限り対応します。
よろしくお願いいたします。

 先ほどちょっとテストしましたら、カッコの追加(=初めてカッコをつけること)
はまったく問題ないと思います。

 ただし、何度も何度もカッコの変更をしていくとマクロが立ち上がらないときが来
ます。(場合によっては5回目くらいで。)また、右側のカッコの右隣りにカーソル
を置いてカッコを変更したときに、カーソルが移動して、左側のカッコの次のにくる
文字列の最初の1文字(=2バイト分)の右側に移ってしまうことがあります。
 ことばではわかりにくいかもしれませんので、例を申し上げると、

 「わたしは」 とカッコして、 ”は」”のあとにカーソルを置いて、別のカッコ
に変えたとして

 【わたしは】となったとき、

  "【わ”のあとにカーソルが移ることが何度かありました。


 

[ ]
RE:02041 次のようなカッコマクロ可能でしNo.02042
TAKA さん 01/04/23 23:53
 
TAKA です。

> ただし、何度も何度もカッコの変更をしていくとマクロが立ち上がらないときが来
>ます。(場合によっては5回目くらいで。)また、右側のカッコの右隣りにカーソル

むむっ、何故でしょう。
これは、私の方ではどうすることも出来ません。
#何が、悪さをしているのかな。


>を置いてカッコを変更したときに、カーソルが移動して、左側のカッコの次のにくる
>文字列の最初の1文字(=2バイト分)の右側に移ってしまうことがあります。

正常に動作する場合もあるんですよね。私の所では、正常に動作し
ます。
もし、正常に動作したり、動作しなかったりする場合があるようで
したら、私の方ではどうすることも出来ません。


私の方で対応出来るのは、毎回同じ結果で不具合がある場合だけで
す。
せっかく報告してもらったのに、申し訳ありません。


参考までに、使用しているOSと秀丸のバージョンを教えて下さい。
#それを聞いたからと言って、何も解決しないとは思いますが。

[ ]
RE:02042 次のようなカッコマクロ可能でしNo.02043
kendo さん 01/04/24 00:14
 
TAKAさん、お手数おかけします。


>私の方で対応出来るのは、毎回同じ結果で不具合がある場合だけで
>す。
>せっかく報告してもらったのに、申し訳ありません。
>
>
>参考までに、使用しているOSと秀丸のバージョンを教えて下さい。
>#それを聞いたからと言って、何も解決しないとは思いますが。
 windows 2000で、秀丸はver.3.08(新しいもの)です。
 そうですね。何度も何度も変更すること自体、ちょっとふつうではない場合だと思
います。このマクロ大切にしたいと思います。
 とにかく思い描いていたとおりでうれしいです。

[ ]
RE:02041 次のようなカッコマクロ可能でしNo.02049
heikki さん 01/04/24 22:57
 
こちらでも、
括弧挿入の変更で次のようなことが起こります。
(日本では) を挿入しさらに外側に 【(日本では)】を挿入します。
ここまでは、正常に動作しますが、
外側の括弧を【(日本では)】を 「(日本では)」へ変更しようとすると。
【(日本では「】となります。
どうしてでしょうか。
この時、カーソル位置は ( のところです。
使い方が間違っているのでしょうか。

[ ]
RE:02049 次のようなカッコマクロ可能でしNo.02050
TAKA さん 01/04/25 00:07
 
TAKA です。

>外側の括弧を【(日本では)】を 「(日本では)」へ変更しようとすると。
>【(日本では「】となります。
>どうしてでしょうか。
>この時、カーソル位置は ( のところです。

現在、WindowsME以外で秀丸のマクロに不具合があることが確認さ
      ^^^^^^^^^^^^^
れています。
情報交換の会議室(hidesoft.2)の「8463」で報告済みですので、
秀丸担当さんからの回答待ちです。

ちなみに、カーソルが「(」の位置にある場合は
【(日本では)】
が、
【「日本では」】
となるのが正解です。

仕様は以下の通りです。
1.カーソル位置が括弧上にある場合は、その括弧が変更の対象と
  なります。
2.1でない場合は、カーソル位置の左側に括弧があれば、その括
  弧が変更の対象となります。

この仕様は、「その他→コマンド一覧→カーソル移動系→対応する
括弧に移動」に準拠します。

WindowsME以外では不具合がありますので、
92行目〜97行目の以下の行をコメントアウト(先頭に//を付け
る)して下さい。
        //----------------------------------//
        //      正確に括弧に移動させる      //
        //----------------------------------//
//      ##X = x;
//      ##Y = y;
//      gokakko;

今、WindowsME以外で動作確認することが出来ませんが、少なくと
もカーソルが括弧の上にある時には、正常に動作すると思いますが、
いかがでしょうか?
#括弧の右側でマクロを実行すると、正常に動作しなくなりますが。

結果報告を頂けるとありがたいです。

[ ]
RE:02050 次のようなカッコマクロ可能でしNo.02052
TAKA さん 01/04/25 03:52
 
TAKA です。

>結果報告を頂けるとありがたいです。

がんばって、秀丸の不具合を回避するように、「gokakko」は1回
しか使わないようにしてみました。括弧の直後の[EOF]でも正常に
動作します。修正したものを、
http://www.infomadonna.ne.jp/~takata/hm/kakko2.lzh
に登録しましたので、新しいもので、確認して頂けると非常に助か
ります。
後ろに数値の2がついていますので間違えないようにお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

括弧が連続してある場合のことも考えて、以前と少しだけ仕様を変
えています。

以下は、マクロの仕様から抜き出したものです。

// 暫定仕様
//
// 範囲選択されていなる状態で実行した場合は、
// その範囲の両側に括弧をつけます。
// 括弧追加後のカーソル位置は、
// 選択時のカーソル位置が前方の場合は、前方の括弧の右側に、
// 選択時のカーソル位置が後方の場合は、後方の括弧の右側に、
// 移動します。
//
// 範囲選択していない状態で実行した場合は、
// カーソル位置、もしくは、カーソルの一つ前に括弧があれば、
// その括弧を変更します。
// 変更後のカーソルの位置は、変更前と同じです。
//
// 使用する括弧は、秀丸フォルダのKakko.iniに登録します。
// 登録可能なものは、
// (){}<> [](){}〈〉『』〔〕《》[]「」【】の13種類です。
// 定義方法は、同梱のKakko.iniを参照して下さい。


#そろそろ、寝ようかな。

[ ]
RE:02052 次のようなカッコマクロ可能でしNo.02054
heikki さん 01/04/25 07:25
 
うまく挿入できました。感謝しております。
こちらは、Windows98 です。

この続きに質問してよろしいでしょうか?
現在、括弧の挿入は、すでに括弧がある場合に変更できますね。
また、また新たに括弧を挿入するときは、その文字を選択しなければ
なりませんね。これは、文章修正するときとても助かります。
しかし、新たに文章入力する時は、
まず、括弧を『』のように出して、カーソルがその括弧の間にあれば
さらに助かるのですが、いかがでしょうか。

[ ]
RE:02054 次のようなカッコマクロ可能でしNo.02055
TAKA さん 01/04/25 09:20
 
TAKA です。

>うまく挿入できました。感謝しております。

それは、何よりです。
kendoさんの所でも、正常に動くようになっていれば、いいのですが・・・


>しかし、新たに文章入力する時は、
>まず、括弧を『』のように出して、カーソルがその括弧の間にあれば
>さらに助かるのですが、いかがでしょうか。

ごめんなさい。ちょっと意味が分かりませんでした。

ひょっとして、範囲選択をしてなくて、カーソルが括弧の右とか括
弧の上にない時(現状マクロを実行しても何もしない)に、括弧の
選択後に、その括弧を貼り付けて、括弧の間に来て欲しいというこ
とかな?
#分かりにくい説明だなー

// テスト(ここから)
「ABC」DE
// テスト(ここまで)

「E」の右側にカーソルがある場合は、括弧の選択後(例では『』
を選択したとする)、

// テスト(ここから)
「ABC」DE『』
// テスト(ここまで)

となって欲しいということでしょうか?で、カーソルの位置は、
「』」の上に来ていて欲しいと。(そのまま文章を入力できるから)

「D」の上にカーソルがある場合は、今まで通り、括弧の変更にな
りますが。

もし、私の推測が合っていたら、これまた楽勝です。

違っていたら、具体的な例を示して頂けると助かります。

[ ]
RE:02055 次のようなカッコマクロ可能でしNo.02057
TAKA さん 01/04/25 20:19
 
TAKA です。

>「D」の上にカーソルがある場合は、今まで通り、括弧の変更にな
>りますが。

括弧の変更ではなくて、括弧の追加の方が使いやすいようです。
修正したものを、
http://www.infomadonna.ne.jp/~takata/hm/kakko3.lzh
に登録しました。
後ろに数値の3がついていますので間違えないようにお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

主な変更は以下の通りです。
・括弧の変更はカーソルが括弧上でなければならない。
・カーソルが括弧上で括弧の対応が取れていない場合は、エラーメ
 ッセージ表示。
・学習機能のON、OFFを設定可能。
・括弧の新規追加をサポート(範囲選択なしでカーソル位置が括弧
 以外の場所にある時)

詳細な仕様は、「Kakko.mac」を参照して下さい。
長文のため、こちらへは書き込みません。

heikkiさんの希望通りだとは思うのですが、使ってみて、何か問題
等ありましたら、よろしくお願いします。


おまけマクロとして、文節を選択するマクロ群
http://www.infomadonna.ne.jp/~takata/hm/setu.lzh
を用意しました。必要な人がいましたら、持っていって下さい。

メインマクロの仕様は以下の通りです。

// 暫定仕様
//
// このマクロは、文節を選択するマクロです。
// ここで言う文節とは、句読点間のことです。
// 秀丸の機能に単語選択というのがありますが、
// 日本語文章の場合は、あまり使い勝手が良いとは言えません。
// 句読点間で選択して欲しいものです。
//
// 「Setu.ini」というファイルを使用します。
// 同梱の、「Setu.ini」を秀丸と同じフォルダに置いて下さい。
//
// 文節の区切りとみなす句読点は、
// 「Setu」セクションの「Str」キーで、
// 設定します。
//
// 選択時に、句読点を含めて選択するかどうかを指定出来ます。
// 左側は、「Setu」セクションの「Left」キーで、
// 右側は、「Setu」セクションの「Right」キーで、
// 設定します。
// 「0」が選択なしで、「1」が選択ありです。
//
// 選択時に、カーソル位置から、前方、後方のそれぞれで、
// 文節チェック行うかどうかを指定出来ます。
// 左側は、「Setu」セクションの「LeftChk」キーで、
// 右側は、「Setu」セクションの「RightChk」キーで、
// 設定します。
// 「0」がチェックなしで、「1」がチェックありです。
// この情報を別のマクロから操作することで、前方のみ選択、
// 後方のみ選択、前後方全て選択、
// その後で、それらを削除するというマクロなどが、
// 幅広く作れます。
// (マクロ操作後は、元の値に戻すのを忘れないように)
// 「LeftChk」「RightChk」共に「0」にすると、
// 当然、何も選択することが出来ません。

メインマクロを使用した、以下の6本のマクロも付いています。
SetuASel.mac:カーソル位置の文節を全て選択
SetuLSel.mac:カーソルより前の文節を選択
SetuASel.mac:カーソルより後ろの文節を選択
SetuADel.mac:カーソル位置の文節を全て削除
SetuLDel.mac:カーソルより前の文節を削除
SetuADel.mac:カーソルより後ろの文節を削除

[ ]
RE:02057 次のようなカッコマクロ可能でしNo.02058
kendo さん 01/04/25 20:55
 
TAKAさん、お世話になります。
(レス遅れてスミマセン。)
ばっちり動いています。それに何も範囲指定しないでカッコを開くとき
カーソルがカッコの間に入り、すぐに文章が書けてとても便利。

最初とまどったのはカッコを改めるときです。一番最初にいただいた
マクロではたしか改める場合は、左右どちらのカッコの場合であれ、その右側にカー
ソルを置いてマクロ立ち上げだったと思いました。
 それでこのマクロも同じようにやってみると......ダメだったのです。
が、それぞれのカッコの左に置いてマクロを使うとスゴイ!!
バッチリです。思う通りです。
ありがとうございました。windows MEでなくても動くのでうれしいです。


それから、おまけマクロすごいですね。 Y(^_^)Y
ちょっと説明がクロートっぽいので気づきにくのですが、
これのSetuAdel、実はすごっく、使い勝手のいいマクロですよね。
これまたありがとうございました。


[ ]
RE:02057 次のようなカッコマクロ可能でしNo.02059
heikki さん 01/04/25 22:55
 
早く展開しているのでついていくのに大変です…。
>ひょっとして、範囲選択をしてなくて、カーソルが括弧の右とか括
>弧の上にない時(現状マクロを実行しても何もしない)に、括弧の
>選択後に、その括弧を貼り付けて、括弧の間に来て欲しいというこ
>とかな?
そのとおりです。説明不足で申し訳ありません。

>「D」の上にカーソルがある場合は、今まで通り、括弧の変更にな
>りますが。
この場合は、
// テスト(ここから)
「ABC」『』DE『』
// テスト(ここまで)
となって欲しいですね。

「ABC」の括弧上にカーソルが来た場合に
// テスト(ここから)
『ABC』DE『』
// テスト(ここまで)
となって欲しいです。

なぜならば、文章の途中でまず『日本に』と入力し
後で『日本に(昨年)』{一般}と挿入する場合とても便利になります。
いかがでしょうか。

[ ]
RE:02059 次のようなカッコマクロ可能でしNo.02060
TAKA さん 01/04/25 23:43
 
TAKA です。

>>「D」の上にカーソルがある場合は、今まで通り、括弧の変更にな
>>りますが。
>この場合は、
>// テスト(ここから)
>「ABC」『』DE『』
>// テスト(ここまで)
>となって欲しいですね。
>
>「ABC」の括弧上にカーソルが来た場合に
>// テスト(ここから)
>『ABC』DE『』
>// テスト(ここまで)
>となって欲しいです。

どちらも、元データは

// テスト(ここから)
「ABC」DE『』
// テスト(ここまで)

で、実行した場合ですよね。
「kakko3.lzh」では、そうなるようにしました。
使い勝手がよさそうです。


>なぜならば、文章の途中でまず『日本に』と入力し
>後で『日本に(昨年)』{一般}と挿入する場合とても便利になります。
>いかがでしょうか。

{}の挿入は、』の後ろにカーソルを持ってきて実行するば、挿入で
きますが、()の方は挿入する術がなさそうですね。
』にカーソルがあれば、』を変更する仕様ですし、「に」にカーソ
ルがあれば、「日本」と「に」の間に()が、挿入されます。
「昨年」を先に入力して、選択後にマクロを実行して()を追加する
しかないと思います。


範囲選択していない場合の仕様は、

// 範囲選択していない状態で、カーソルが括弧の位置にある場合は、
// その括弧を変更します。
// 変更後のカーソルの位置は、変更前と同じです。
// 括弧の対応が取れていない場合は、エラーメッセージ表示後に
// 終了します。
//
// 範囲選択していない状態で、カーソルが括弧の位置にない場合は、
// その場所に括弧を追加します。
// 追加後のカーソル位置は、右括弧の上に移動します。
// (すぐに文章入力に移れるため)

です。

ひょっとして、私は、何か大きな勘違いをしているのでしょうか?

[ ]
RE:02060 次のようなカッコマクロ可能でしNo.02068
TAKA さん 01/04/26 12:46
 
TAKA です。

>>なぜならば、文章の途中でまず『日本に』と入力し
>>後で『日本に(昨年)』{一般}と挿入する場合とても便利になります。
>>いかがでしょうか。
>
>{}の挿入は、』の後ろにカーソルを持ってきて実行するば、挿入で
>きますが、()の方は挿入する術がなさそうですね。
>』にカーソルがあれば、』を変更する仕様ですし、「に」にカーソ
>ルがあれば、「日本」と「に」の間に()が、挿入されます。
>「昨年」を先に入力して、選択後にマクロを実行して()を追加する
>しかないと思います。

以下のようなマクロで、無条件に括弧を追加するという別マクロを
用意すれば、良いかも。

// 無条件括弧追加マクロ1(ここから)
    if( !selecting )
    { // 範囲選択されていない
        beginsel;   // 1文字も選択していない状態にする
    }
    execmacro "Kakko.mac";
    endmacro;
// 無条件括弧追加マクロ1(ここまで)

// 無条件括弧追加マクロ2(ここから)
    escape;     // 範囲選択されている場合は解除
    beginsel;   // 1文字も選択していない状態にする
    execmacro "Kakko.mac";
    endmacro;
// 無条件括弧追加マクロ2(ここまで)

1の方は範囲選択されている場合はその両側に括弧を追加。
(「Kakko.mac」の機能継承)
範囲選択していない場合は、カーソルの位置に括弧があってもなく
ても無条件で括弧を追加。

2の方は範囲選択の有無に関わらず、カーソルの位置に括弧があっ
てもなくても無条件で括弧を追加。

私のお勧めは、1の方ですね。


ちょっと、新しいことを思いついたので、整理します。

・単純な括弧の追加(カーソル位置に括弧を追加するだけ)は、別
 マクロを用意。
 『日本に』という文章に()を追加して、『日本に()』としたい場
 合に、』上に括弧を持ってきて()を追加したいこともあるが、現
 状出来ないため、別マクロは必要。
 では、「kakko3.lzh」で追加した、「範囲選択していない状態で、
 カーソルが括弧の位置にない場合は、その場所に括弧を追加しま
 す。」という仕様は、取り除いてしまった方がいいのではないで
 しょうか。
 理由は、『日本に』と入力後(カーソル位置は』の右側)に、括
 弧を別のものにしたいと思った場合に、カーソル位置を変更する
 ことなく括弧の変更が出来た方が便利なのでは。
 (「kakko2.lzh」の仕様)

・『日本に」と言うような文章を入れた場合に、」上にカーソルを
 持ってきて「Kakko.mac」を実行しても括弧の対応が取れていな
 いので、エラーメッセージが出てマクロが終了しますが、変更し
 たい括弧を選んで括弧の変更が出来た方が便利になるのかな?
 対応する括弧がどれになるのかは、マクロを使う人しか分からな
 いので括弧を選んでもらう必要はありますが。
 例えば、」上にカーソルを持ってきて「Kakko.mac」を実行した
 場合は、括弧の対応が取れていないメッセージが出た後に、括弧
 の選択をして、それに置き換える。
 #使用頻度は、ほとんどないとは思いますが。

・カーソル位置以降で、括弧の対応が取れているかどうかをチェッ
 クする専用マクロがあると便利かもしれませんが、いかがでしょ
 うか?括弧の対応が取れていない場所へ移動して、ビープ音を出
 してくれて(警告メッセージでは邪魔)、カーソルがその位置へ
 飛んでくれると、すぐに修正出来ますよね。(括弧の選択メニュー
 が出ると、もっとうれしいかも)
 修正後は、その場所から、再度マクロを実行すると、それ以降で
 またチェックという風になり、ビープ音が出なくなった時点(正
 常に終わった場合は、完了メッセージを出す)で、括弧の対応も
 れがなくなったと判断できます。
 「Kakko.mac」でのみ括弧を書いた場合は、エラーが出ること自
 体ありませんが、括弧を一つ一つ書いた場合の間違い探しなどに
 は使えると思います。

#ついて来れているかな?

[ ]
RE:02068 次のようなカッコマクロ可能でしNo.02073
TAKA さん 01/04/26 19:00
 
TAKA です。

>#ついて来れているかな?

さらに先へと進みます。

以下の3本のマクロにしました。

Kakko.mac   :今までのマクロ
KakkoChk.mac:括弧の対応を調べるマクロ
KakkoApd.mac:括弧の無条件追加を行うマクロ

今までのマクロと追加マクロを分けた理由は、今までのマクロ1本
では「2060」で書いた通り、好きな場所に追加出来ない場合がある
からです。
別マクロにしたため、今までのマクロは、元の仕様(括弧のないと
ころで実行した場合は何もしない)に戻しました。(中途半端な仕
様は残したくないという理由もあります)
元に戻したため、括弧の右側でも変更出来る機能が復活しました。
(秀丸本体と仕様が一緒なので、悩まなくて済むと思います)
範囲選択時には、括弧の追加という仕様は元のままです。

「2068」の最後に書いた、3つとも実装しました。
ついでに、括弧をメニューで選択する際に番号で選択できるように
もしました。

「KakkoChk.mac」は秀丸の不具合のために、「その他→ファイルタ
イプ別の設定→表示」の「対応する括弧を強調表示」をOFFにし
ておかないと正常に動作しないかもしれません。
Ver3.09が出れば、不具合が取れているので、ONにしても動くよ
うになりますが、今は我慢するしかありません。(T_T)

修正したものを、
http://www.infomadonna.ne.jp/~takata/hm/kakko4.lzh
に登録しました。
後ろに数値の4がついていますので間違えないようにお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

取りあえずは、使ってみて下さい。
特に何もなければ、これで完成かな。

[ ]
RE:02073 次のようなカッコマクロ可能でしNo.02074
kendo さん 01/04/26 21:04
 
TAKAさん、いろいろお世話になりました。

 わたしとしましては、kakko3.lzhのマクロで行きたいと思います。

 マクロが増えるとその分よけいに起動のキーを覚える必要があり、ちょっとそれが
ものぐさな私には......です。
 お時間をかけてマクロを作っていただきながら、ちょっとおかしな言い方ですが、
カッコはプリミティブにはキーボードで入力できます。そうする際のいろいろな手間
を省いて――学習機能まであるのですから、能率はどんどん向上するはずです――、
そうしてスムーズに作業するためのものがマクロだと思うのです。ですから、起動
キーなどもできるだけ簡単なほうが......というのが私の考えです。

 カッコを変換するときにカーソルの位置が元のカッコの右であれ、左側であれ、単
なる慣れのように思いますので、kakko3のものをばりばりつかって慣れていこうと思
います。

 あっ、忘れかけましたが、setuマクロのすばらしさももっと宣伝してくださいね。

[ ]
RE:02074 次のようなカッコマクロ可能でしNo.02075
kendo さん 01/04/26 21:12
 
自己レスです。


>TAKAさん、いろいろお世話になりました。
>
> わたしとしましては、kakko3.lzhのマクロで行きたいと思います。

そのように思っているのですが、

 もし、カッコマクロについて最後のおねだりを許していただければ、kakko3のもの
ででも、番号でカッコが選びたいです。


[ ]
RE:02075 次のようなカッコマクロ可能でしNo.02076
TAKA さん 01/04/26 22:39
 
TAKA です。

> もし、カッコマクロについて最後のおねだりを許していただければ、kakko3のもの
>ででも、番号でカッコが選びたいです。

修正したものを、
http://www.infomadonna.ne.jp/~takata/hm/kakko3.lzh
に登録(差し替え)しました。ダウンロードし直して下さい。
後ろに数値の3がついていますので間違えないようにお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

軽くは、テストしましたが、もし変なところがありましたら、連絡
下さい。


せっかくですので、kakko3とkakko4は一つのマクロにして、iniフ
ァイルの定義で切り替えれるようにしようと思います。
但し、デフォルトはkakko4の方にすると思います。
kendoさんの場合は、初期値を1バイトだけ変更してもらえばいい
ようになります。kakko5として登録するつもりです。
唯、ロジックが少し違うので、一緒に出来ないかもしれませんが。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
もし、kakko5が出来たら、テストなどをして頂けると助かります。
初期値を変更して、kakko3の時と同じ動きをするかどうかだけで
かまいませんので。
kakko3の動きだけでいい人は、「KakkoApd.mac」を捨ててもらえれ
ばと思います。

「KakkoChk.mac」はkakko3の人もkakko4の人も必要なければ、捨
ててもらえればいいと思います。(完全に別マクロですので)
#このマクロは、文章が完成した時点で、チェック用に使っては
 欲しいですが。

#登録できるとしたら、早くて土曜日位かな?

もし、一緒は無理そうでしたら、マクロを別々(2本)にして、
登録し直すと思います。今後のメンテは2本とも面倒を見ます。


文節を選択するマクロ群
http://www.infomadonna.ne.jp/~takata/hm/setu.lzh
が、日本語文書を作成する人の必需品になってくれると、うれしい
です。

[ ]
RE:02076 次のようなカッコマクロ可能でしNo.02077
kendo さん 01/04/26 23:01
 
TAKAさん、ありがとうございます。

>修正したものを、
>http://www.infomadonna.ne.jp/~takata/hm/kakko3.lzh
>に登録(差し替え)しました。ダウンロードし直して下さい。
 了解いたしました。



>軽くは、テストしましたが、もし変なところがありましたら、連絡
>下さい。
 明日以降でもよろしいでしょうか。

>もし、kakko5が出来たら、テストなどをして頂けると助かります。
>初期値を変更して、kakko3の時と同じ動きをするかどうかだけで
>かまいませんので。
 了解しました。


>#登録できるとしたら、早くて土曜日位かな?
 せっかくの連休のはじまりです、ゆっくりやってください。

あらためてありがとうございました。

[ ]
RE:02077 次のようなカッコマクロ可能でしNo.02078
kendo さん 01/04/26 23:10
 
せっかちのkendoです。
>>軽くは、テストしましたが、もし変なところがありましたら、連絡
>>下さい。
> 明日以降でもよろしいでしょうか。

 いま、やりましたらばっちりです。数字を使うのは便利ですね。
気づいたところでは、10番以降がすべて 0 になるので、ここがabcなどとなっ
てもいいのかななどとおもいました。


[ ]
RE:02078 次のようなカッコマクロ可能でしNo.02079
TAKA さん 01/04/26 23:53
 
TAKA です。

> いま、やりましたらばっちりです。数字を使うのは便利ですね。
>気づいたところでは、10番以降がすべて 0 になるので、ここがabcなどとなっ
>てもいいのかななどとおもいました。

これは、常駐秀丸をクリックして出るファイルの履歴と同じように
したためでした。ちなみに、0を再度押すと、次の候補に移動して
いきます。
もし、アルファベットにするとしたら、私が今まで作ったマクロと
統一したいので、アルファベットが先になってしまい、数字が使え
なくなります。

待てよ、これもiniファイルで切り替え出来たらいいのでは。
1,2,3,4,5,6,7,8,9,0,0,0,0・・・,0,0,0,0,0,0,0,0,0,0,0,0,0
1,2,3,4,5,6,7,8,9,0,a,b,c・・・,x,y,z,z,z,z,z,z,z,z,z,z,z
0,1,2,3,4,5,6,7,8,9,a,b,c・・・,x,y,z,z,z,z,z,z,z,z,z,z,z
a,b,c,d,e,f,g,h,i,j,k,l,m・・・,0,1,2,3,4,5,6,7,8,9,9,9,9
の4パターン位あればいいかな?


[小ネタ]
kakko3の弱点である括弧の前に括弧を追加出来ない件に関して。

『日本に』とある場合に、「『日本に」と「』」の間に新しい括弧
を追加して『日本に()』とすることが普通では出来ませんが、「』」
の上にカーソルを持ってきて、何も選択していない選択状態を作っ
て(秀丸のデフォルトでは[Shift+F6]を押すだけ)マクロを動か
すと、『日本に()』とすることが出来ます。カーソルの位置は「)」
の上にくるので、カーソルを移動することなく、『日本に(昨年)』
とすることが出来ます。
この小ネタはkakko4でも有効です。
ちなみに、これを自動ですのが、「kakkoApd.mac」です。


[開発裏情報]
[]と[]など区別が付き難いなー。

メニューで出るときには、
[] [半]大カッコ
[] [全]大カッコ
みたいに、カッコの説明がついているといいなー。
その説明も自分で決めれると、もっといいなー。

[ ]
RE:02073 次のようなカッコマクロ可能でしNo.02083
heikki さん 01/04/27 14:23
 
keikkiです
ここを見る度、浦島太郎になった気がします。
私のつたない表現でも、TAKAさんがしっかり理解し、対応してくだ
さったことを「感謝」しております。

KakkoChk.macも使わせていただきます。

[ ]
RE:02076 次のようなカッコマクロ可能でしNo.02084
TAKA さん 01/04/27 22:17
 
TAKA です。

>#登録できるとしたら、早くて土曜日位かな?

文書作成用のマクロ群をサービスパックとして
http://www.infomadonna.ne.jp/~takata/hm/red_sp1.lzh
に、登録しました。
ファイル名が今までと違いますので、間違えないようにお願いします。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

詳細については、「Kakko.txt」を参照して下さい。

iniファイルを「HIDERED.INI」に統合しました。格納場所も今まで
と違います。

「Kakko.mac」で使用するキーに、
SelMode        :括弧の選択方法
RightMode      :カーソルが括弧の右側にある時の動作
AppendMode     :カーソルが括弧上にない時の動作
ChangeAfterMode:括弧の変更後のカーソル位置
を追加しました。

「RightMode」のデフォルトは「2076」で、変更にすると言いまし
たが、文章をバリバリ書くときには追加の方が使い勝手がよさそう
なので、追加をデフォルトにしました。(kendoさんの希望通り)
「ChangeAfterMode」のデフォルトですが、バリバリ書くときには
右側に移動した方がいいと思い、移動にしました。

今回のマクロでテストして頂けると助かります。
特に、「ChangeAfterMode」のデフォルト値は「0」が妥当か「1」
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
が妥当かの意見をお聞かせ下さい。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

今回のマクロは、情報交換会議室(hidesoft.2)の方でも、案内を出
しますので、そちらの方も、参照してみて下さい。その他のマクロ
の概要を書いています。

#ありゃ、Setu関係マクロが、11本になっちゃった。

[ ]
RE:02084 次のようなカッコマクロ可能でしNo.02085
TAKA さん 01/04/27 22:40
 
TAKA です。

>詳細については、「Kakko.txt」を参照して下さい。

書き忘れましたが、「Kakko.txt」の最後に、以下の3行を記載し
ています。よろしいでしょうか?問題があれば、言って下さい。直
ぐに削除して登録し直します。
事後報告となってしまい、申し訳ありません。

>●感謝
>このマクロの作成にあたり、kendoさん、heikkiさん、に、多くの
>意見アドバイスを頂きました。どうもありがとうございました。

[ ]
RE:02085 次のようなカッコマクロ可能でしNo.02086
kendo さん 01/04/28 00:08
 
TAKAさん、たいへんお世話になりました。
ほんとうにありがとうございます。
カッコを選択するといの番号と記号はもちろん、
半角と全角が画面ではかなり見わけいにくいのを察して
カッコをコトバで区別して簡単コメントつきのにくいご配慮に
カンドーしてしまいました。(ほんとうです。)


>「ChangeAfterMode」のデフォルトですが、バリバリ書くときには
右側に移動した方がいいと思い、移動にしました。
 ありがとうございます。これが私は気に入っております。


>書き忘れましたが、「Kakko.txt」の最後に、以下の3行を記載し
>ています。よろしいでしょうか?問題があれば、言って下さい。直
>ぐに削除して登録し直します。
>事後報告となってしまい、申し訳ありません。
>
>>●感謝
>>このマクロの作成にあたり、kendoさん、heikkiさん、に、多くの
>>意見アドバイスを頂きました。どうもありがとうございました。
 意見アドバイスという表現は わたしkendoの場合は、ちょっと
「エラソー」すぎます。一貫して「おねだり」ばっかりだったからです。
本当にお疲れさまでした。

[ ]
RE:02086 次のようなカッコマクロ可能でしNo.02091
TAKA さん 01/04/28 23:27
 
TAKA です。

>半角と全角が画面ではかなり見わけいにくいのを察して
>カッコをコトバで区別して簡単コメントつきのにくいご配慮に

でも、コメントの開始部分がそれっていないという難点があります
よね。(T_T)

という訳で、
http://www.infomadonna.ne.jp/~takata/hm/red_sp1.lzh
をこっそり差し替えました。(前回と同じファイル名です)
コメントの開始部分がそろっているので、非常に見やすいです。
それ以外は何も変わっていませんが、ちょっとでも見やすい方がい
いという人は、再度ダウンロードして下さい。

#それにしても、「Q&A集」は役に立つなー
http://win.blue.co.jp/~jr-kun/hidemaru_qa/qa_hmm_2.html#HMM0063A
#さてと、新しい原稿作成に取り掛かるかな。
#でも、GT3も発売されたから、少し遊びたいな。うーん。


>>「ChangeAfterMode」のデフォルトですが、バリバリ書くときには
>右側に移動した方がいいと思い、移動にしました。
> ありがとうございます。これが私は気に入っております。

やはり、そうですよね。
正式公開時にも、今のデフォルトで出そうと思います。


>>>●感謝
>>>このマクロの作成にあたり、kendoさん、heikkiさん、に、多くの
>>>意見アドバイスを頂きました。どうもありがとうございました。
> 意見アドバイスという表現は わたしkendoの場合は、ちょっと
>「エラソー」すぎます。一貫して「おねだり」ばっかりだったからです。

今のままで駄目という訳ではなさそうですので、そのままにさせて
もらいます。
久しぶりに良いマクロが出来たと、とても感謝しています。

[ ]