「先頭のタブ文字の後の折り返しをインデNo.01711
haru2 さん 03/06/16 11:17
 
 「先頭のタブ文字の後の折り返しをインデントしたように見せる」
をonにしておいて、同じフレーム内の▼をクリックして、4を選択
します。
 すると、箇条書きの2行目以降が自動的に字下げされて、非常に
重宝しているのですが、これを例えば、

http://www.maruo.co.jp/turukame/council.asp?c=NW&i=2

 の、テキストボックス(本文入力欄)に貼り付けると、字下げが
されていません。
 秀丸での見た目と同じように、テキストボックスでも字下げされ
た部分に空白が詰められてくれれば、更に具合が良いのですが、秀
丸でそういう風に対応されるお考えはないでしょうか?
 是非、そうして頂けると、うれしいんですが。
 よろしくお願いします。

[ ]
RE:01711 「先頭のタブ文字の後の折り返しNo.01713
ひろ さん 03/06/16 13:11
 
 haru さん今日は、ひろです。
> 箇条書きの2行目以降が自動的に字下げされて、非常に
> 重宝しているのですが、これを例えば、
>
> http://www.maruo.co.jp/turukame/council.asp?c=NW&i=2
>
>  の、テキストボックス(本文入力欄)に貼り付けると、字下げが
> されていません。
>  秀丸での見た目と同じように、テキストボックスでも字下げされ
> た部分に空白が詰められてくれれば、更に具合が良い
 これをするには、クリップ・ボードに保存する時点で、適宜改行や空白を挿
入しなければならないと思います。そうすると今度は、折り返し文字数など設
定の違う秀丸のウィンドウに貼り付けたときに、表示がおかしくなってしまい
ます。よって反対です。

[ ]
RE:01713 「先頭のタブ文字の後の折り返しNo.01724
秀まるお さん 03/06/16 14:28
 
 表示されてる通りに文章を整形する機能が別に必要かと思いますが、どっちに
しても、そういう「整形」の操作を入れない限り実現不可です。

 しいて、そういう整形が必要ならマクロで対応は可能だと思います。っといい
つつ、難しいので僕(および秀丸担当)は今作る余裕はありません。

[ ]
RE:01724 「先頭のタブ文字の後の折り返しNo.01725
haru2 さん 03/06/16 14:36
 
> 表示されてる通りに文章を整形する機能が別に必要かと思いますが、どっちに
>しても、そういう「整形」の操作を入れない限り実現不可です。
> しいて、そういう整形が必要ならマクロで対応は可能だと思います。っといい
>つつ、難しいので僕(および秀丸担当)は今作る余裕はありません。
 わかりました。
 ありがとうございます。

[ ]
RE:01725 「先頭のタブ文字の後の折り返しNo.01899
山紫水明 さん 03/06/21 11:56
 
 haru2さん,こんにちは。

》> 表示されてる通りに文章を整形する機能が別に必要かと思いますが、どっちに
》>しても、そういう「整形」の操作を入れない限り実現不可です。
》> しいて、そういう整形が必要ならマクロで対応は可能だと思います。っといい
》>つつ、難しいので僕(および秀丸担当)は今作る余裕はありません。
》 わかりました。

 表示されてる通りに文章を整形するマクロをちょっと作ってみましたが,まだご
入り用でしょうか?

     では, (^^)/~
                                        山紫水明

[ ]
RE:01899 「先頭のタブ文字の後の折り返しNo.01902
セイ さん 03/06/21 23:41
 
はじめまして。

At Sat, 21 Jun 2003 11:56:39 +0900,
山紫水明<xxxxxxxxxxxxxx@maruo.co.jp> wrote
>  表示されてる通りに文章を整形するマクロをちょっと作ってみましたが,まだご
> 入り用でしょうか?

ほ、ほしいです ;)

-- 清

[ ]
RE:01902 「先頭のタブ文字の後の折り返しNo.01908
山紫水明 さん 03/06/22 08:47
 
 セイさん,こんにちは。

》ほ、ほしいです ;)

 この種のマクロ,すでにどこかにあるのかも知れませんが,ここで話題になっ
たので作ってみました。
 以下のマクロは,
画面表示のまま改行を入れて整形します。
範囲選択していれば選択範囲内,していなければカーソルのある行を対象にします。
タブをスペースに変換するオプションをつけています。問い合わせが煩わしい場合
は最初の行を
#tabspace = 0;
にしてください。
 整形したテキストを他のウィンドウに貼り付ける場合は,貼り付け先の折り返し
幅が元のウィンドウより狭ければ,当然のことながら,うまくいきません。

//------ ReformX.mac ---------------------------------------//
#tabspace = 1; // 1:タブスペース変換の問い合わせをする  0:しない
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#cb =  getregnum( "CRBurasage" );
if( !#cb ) {
    question "改行文字をぶら下げにします,いいですか?";
    if( result == yes ) {
        writeregnum "CRBurasage", 1;
        envchanged;
    } else {
        closereg;
        endmacro;
    }
}
closereg;
if( selecting ) {
    #topy = seltopy;
    #endy = selendy;
    escape;
    moveto 0, #topy;
} else {
    golinetop2;
    #topy = y;
    golineend2;
    #endy = y + 1;
    moveto 0, #topy;
}
disabledraw;
while( 1 ) {
    if( code == 0x09 ) #tab = 1;
    while( !return ) {
        golineend;
        right;
        #x = x;//改行の次のカーソル位置
        insertreturn;
    //「先頭のタブ文字の後の折り返しをインデントしたように見せる」設定の場合
        while( x < #x ) tab;
    }
    moveto 0, y + 1;
    if( y >= #endy ) break;
}
if( #tab == 0 || #tabspace == 0 ) endmacro;
question "タブを半角スペースに変換しますか?";
if( result) {
    moveto 0, #topy;
    beginsel;
    moveto 0, #endy;
    tospace;
    escape;
}
endmacro;
//------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:01908 「先頭のタブ文字の後の折り返しNo.01915
haru2 さん 03/06/23 11:02
 
 マクロが必要か否かの問いに対する返事が、遅れてすみません。
 必要です。ありがとうございます。

 マクロ、早速、使わせていただきました。

 60桁で、折り返すように設定しておきます。
 次の文を整形します。
 見かけ上は、「いいいいい」の部分は2行目です。

(サンプルの文ここから)
 1.ああああああああああああああああああああああああああああいいいいい[EOF]
(サンプルの文ここまで)

 すると、いつまで経っても、終了しません。
 ESCキーを押すと、「マクロを中断しますか?」と聞かれるので、
Yを選択すると、

1.ああああああああああああああああああああああああああああ
\tいいいいい[EOF]

 になっています。
 よろしくお願いします。

[ ]
RE:01915 「先頭のタブ文字の後の折り返しNo.01940
山紫水明 さん 03/06/23 21:27
 
 haru2さん,こんばんは。

》1.ああああああああああああああああああああああああああああ
》\tいいいいい[EOF]

 ファイル末尾に改行がない場合があるのをうっかりしていました。

マクロ途中の
closereg;
if( selecting ) {
    #topy = seltopy;
    #endy = selendy;
    escape;
    moveto 0, #topy;
} else {
    golinetop2;
    #topy = y;
    golineend2;
    #endy = y + 1;
    moveto 0, #topy;
}
disabledraw;

の部分を以下のものに置き換えてみてください。

closereg;
if( selecting ) {
    #topy = seltopy;
    escape;
    moveto selendx, selendy;
} else {
    golinetop2;
    #topy = y;
    golineend2;
}
if( code != 0x0d ) {
    insertreturn;
    #endy = y;
} else #endy = y + 1;
moveto 0, #topy;
disabledraw;

     では, (^^)/~
                                        山紫水明

[ ]
RE:01940 「先頭のタブ文字の後の折り返しNo.01944
haru2 さん 03/06/24 08:19
 
 ありがとうございます。

>の部分を以下のものに置き換えてみてください。
 置き換えてみました。

 実行結果は、

1.ああああああああああああああああああああああああああああ
\tいいいいい[EOF]

 です。

>タブをスペースに変換するオプションをつけています。
 とのことなんですが、タブをスペースにしたいのですが、そこまで実行されていな
いようです。
 よろしくお願いします。

[ ]
RE:01940 「先頭のタブ文字の後の折り返しNo.01947
セイ さん 03/06/24 13:47
 
さっそくマクロを公開していただいて、ありがとうございます (>
山紫水明さん)

At Mon, 23 Jun 2003 21:27:20 +0900,
山紫水明 wrote:
>  ファイル末尾に改行がない場合があるのをうっかりしていました。

<ReformX.mac> について、上記の変更を反映して実行してみました。

下記のテキストでタブをスペースに変換する場合、2行目のインデ
ントがタブの整数倍になってしまうようです (私の設定では「4」)。

--- 整形前テキストここから ---
1. 今日はとても良い天気です。明日は雨になるそうです。明後日
   の天気はどうなるでしょうか?
--- 整形前テキストここまで ---

--- 整形済テキストここから ---
1. 今日はとても良い天気です。明日は雨になるそうです。明後日
    の天気はどうなるでしょうか?
--- 整形済テキストここまで ---

以上、とり急ぎご報告まで。

# やっぱりマクロを勉強するべきですねえ。秀丸は鶴亀メール経由
# でつい最近使うようになったので、ちょっと腰が重かったりしま
# す。

-- 清

[ ]
RE:01944 「先頭のタブ文字の後の折り返しNo.01956
山紫水明 さん 03/06/24 23:05
 
 haru2さん,こんばんは。

》1.ああああああああああああああああああああああああああああ
》\tいいいいい[EOF]


 こちらでは上記のサンプルは

1.ああああああああああああああああああああああああああああ[改行]
いいいいい[改行]
[EOF]

となります。なぜ2行目にタブが入るは,多分秀丸の設定の関係があると思い
ますが,今ちょっとわかりません。
 ちなみに,他の例でも常にこうなるのでしょうか?
 また最初から行頭にタブがあった場合はどうでしょうか?

》>タブをスペースに変換するオプションをつけています。
》 とのことなんですが、タブをスペースにしたいのですが、そこまで実行さ
》れていないようです。

 上の例ですと元々行頭にタブが入っていないので,変換の対象にはならない
と思います。上記の問題が解決しないとこちらもだめかも知れません。

     では, (^^)/~
                                        山紫水明

[ ]
RE:01947 「先頭のタブ文字の後の折り返しNo.01957
山紫水明 さん 03/06/24 23:05
 
 セイさん,こんばんは。

》下記のテキストでタブをスペースに変換する場合、2行目のインデ
》ントがタブの整数倍になってしまうようです (私の設定では「4」)。

》--- 整形前テキストここから ---
》   の天気はどうなるでしょうか?
》--- 整形前テキストここまで ---

 タブをスペースに変換するのですので,それで正常だと思いますが??
 上記の例では行頭はタブでしょうか?

     では, (^^)/~
                                        山紫水明

[ ]
RE:01957 「先頭のタブ文字の後の折り返しNo.01964
セイ さん 03/06/25 11:45
 
At Tue, 24 Jun 2003 23:05:37 +0900,
山紫水明 wrote:
>  タブをスペースに変換するのですので,それで正常だと思いますが??
>  上記の例では行頭はタブでしょうか?

舌足らずですみません。

整形前の2行目は「1. 」(3桁) のあとに揃っています。つまり、2
行目は冒頭に「   」(スペースが3個) 入っている状態です。

<ReformX.mac> で整形すると、「    」(スペース4個) が入ってい
ます。

「表示されてる通りに文章を整形する」という言葉で私が (勝手に)
期待していたのは、2行目冒頭にスペースが3個入ることでした。

# あくまでも私が勝手に期待したことですので、もちろんうっちゃっ
# ておいてかまいません。

***

以下はマクロの話を離れ、秀丸本体に対する要望です。

ユーザーとして最も嬉しいのは、[編集] - [変換] メニューの中に
[改行・スペースを表示通りにする] といった機能があることです。
鶴亀メールでは送信時に裏で行っていることだと思いますので、実
装はそんなに大変ではないのかなと、勝手に想像しているのです
が……。

-- 清

[ ]
RE:01956 「先頭のタブ文字の後の折り返しNo.01968
haru2 さん 03/06/25 15:41
 
 ありがとうございます。

>》1.ああああああああああああああああああああああああああああ
>》\tいいいいい[EOF]
>》
 すみません。間違いがありました。

1.ああああああああああああああああああああああああああああ[改行]
\tいいいいい[EOF]

 でした。


>となります。なぜ2行目にタブが入るは,多分秀丸の設定の関係があると思い
>ますが,今ちょっとわかりません。
 「先頭のタブ文字の後の折り返しをインデントしたように見せる」
をonにしておいて、同じフレーム内の▼をクリックして、4を選択
しています。

> ちなみに,他の例でも常にこうなるのでしょうか?
 1.を半角の「1.」にしてやってみました。
 結果は同じです。
 1行目の「1.」2バイト分が2行目の行頭で半角スペース2個分に
変換してくれると、見た目通りなんですが。

> また最初から行頭にタブがあった場合はどうでしょうか?
(文例実行前ここから)
\t1.ああああああああああああああああああああああああああああいいいいい[EOF]
(文例実行前ここまで)

 上記に対して、マクロを実行すると、スペースに変換しますか?
と聞かれた後、yを選ぶと、

(文例実行後ここから)
\t\t1.ああああああああああああああああああああああああああああ[改行]
いいいいい[改行]
\t[EOF]
(文例実行後ここまで)

 となります。


>》>タブをスペースに変換するオプションをつけています。
>》 とのことなんですが、タブをスペースにしたいのですが、そこまで実行さ
>》れていないようです。

> 上の例ですと元々行頭にタブが入っていないので,変換の対象にはならない
>と思います。上記の問題が解決しないとこちらもだめかも知れません。
 わかりました。

[ ]
RE:01964 「先頭のタブ文字の後の折り返しNo.01969
haru2 さん 03/06/25 16:00
 
>以下はマクロの話を離れ、秀丸本体に対する要望です。

>ユーザーとして最も嬉しいのは、[編集] - [変換] メニューの中に
>[改行・スペースを表示通りにする] といった機能があることです。
 同感です。

 ただ、この件に関しましては、
 このスレッドの上の方で、秀まるお さんより、
> 表示されてる通りに文章を整形する機能が別に必要かと思いますが、どっちに
>しても、そういう「整形」の操作を入れない限り実現不可です。
> しいて、そういう整形が必要ならマクロで対応は可能だと思います。っといい
>つつ、難しいので僕(および秀丸担当)は今作る余裕はありません。
 とのコメントを頂いています。

>鶴亀メールでは送信時に裏で行っていることだと思いますので、実
>装はそんなに大変ではないのかなと、勝手に想像しているのです
>が……。

 http://www.maruo.co.jp/turukame/2/m021226.html#6199 で、秀まるお さんより、

> インデントの部分に実際に空白を入れる処理は、送信の時のメールのエンコー
>ドの時におこなれます。なので、自分宛に送信して受信したメールでも見ないと
>処理結果の文字列そのものを得ることは出来ないです。

> いっそのこと、段落インデントも含めた自動折り返し関係の処理をtkinfo.dll
>に用意する手があります。僕にとってはその方がはるかに楽なので、なんでした
>らそういう関数を用意するってことで対応します。

 とのコメントを頂いているのですが、その後如何でしょうか?
 場所が違うのですが、この場をお借りして、すみません。
 よろしくお願いします。

[ ]
RE:01969 「先頭のタブ文字の後の折り返しNo.01976
山紫水明 さん 03/06/25 17:39
 
 haru2さん,セイさん,こんにちは。

 少し思い当たるところがあり変更してみました。とりあえず,これで実行し
て結果をお知らせいただければと思います。

//------ ReformX.mac ---------------------------------------//
//画面表示のまま改行を入れて整形
//範囲選択していれば選択範囲内,していなければカーソルのある行を対象

#tabspace = 1; // 1:タブスペース変換の問い合わせをする  0:しない
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#cb =  getregnum( "CRBurasage" );
if( !#cb ) {
    question "改行文字をぶら下げにします,いいですか?";
    if( result == yes ) {
        writeregnum "CRBurasage", 1;
        envchanged;
    } else {
        closereg;
        endmacro;
    }
}
closereg;
if( !kinsokustate ) config "k+";
if( selecting ) {
    #topy = seltopy;
    escape;
    moveto selendx, selendy;
} else {
    golinetop2;
    #topy = y;
    golineend2;
}
if( code != 0x0d ) {
    insertreturn;
    #endy = y;
} else #endy = y + 1;
moveto 0, #topy;
disabledraw;
while( y < #endy ) {
    if( code == 0x09 ) #tab = 1;
    while( !return ) {
        golineend;
        right;
        #x = x;   //改行の次のカーソル位置
        insertreturn;
    //「先頭のタブ文字の後の折り返しをインデントしたように見せる」設定の場合
        while( x < #x ) insert " ";
    }
    moveto 0, y + 1;
}
if( #tab == 0 || #tabspace == 0 ) endmacro;
question "タブを半角スペースに変換しますか?";
if( result) {
    moveto 0, #topy;
    beginsel;
    moveto 0, #endy;
    tospace;
    escape;
}
endmacro;
//------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:01976 「先頭のタブ文字の後の折り返しNo.01991
山紫水明 さん 03/06/25 23:18
 
haruさん,セイさん,こんばんは。

 秀丸β版とは関係ないマクロの話になりましたので,マクロ作者会議室の方に
移ります。
                                        山紫水明

[ ]