折りたたんだ状態で、開くには?No.31271
styth さん 12/06/16 10:20
 
 折りたたんだ状態で、保存しても、次に開くと折りたたみが解除さています。
 折りたたんだ状態で、開くにはどうすれば良いんでしょうか?
 よろしくお願いします。

[ ]
RE:31271 折りたたんだ状態で、開くには?No.31272
山紫水明 さん 12/06/16 22:01
 
 stythさん,

> 折りたたんだ状態で、保存しても、次に開くと折りたたみが解除さています。
> 折りたたんだ状態で、開くにはどうすれば良いんでしょうか?

 正式回答は後にお願いすることにして,次の二つのマクロをそれぞれ自動起動
マクロの「ファイルを閉じる直前」と「ファイルを開いた直後」に登録すれば,
いちおうできると思います。もっと改善の余地があるかもしれません。

「ファイルを閉じる直前」用
//------- ReserveFold.mac ------------------------------------------//

//      折りたたみ保存マクロ

$inifile = currentmacrodirectory + "\\fold.ini";
setcompatiblemode 0x0003;
$file = filename2;
disabledraw;
gofiletop;
while( code != eof ) {
    if( folded ) {
        #i = #i + 1;
        writeinistr $inifile, $file, "start" + str(#i), str(lineno);
        down;
        writeinistr $inifile, $file, "last" + str(#i), str(lineno);
    }
    down;
    if( !result ) break
}
//前の痕跡があった場合
if( #i == 0 ) {
    writeinistr $inifile, $file, 0, 0;
    endmacro;
}
while( getininum( $inifile, $file, "start" + str(#i + 1) ) > 0 ) {
    writeinistr $inifile, $file, "start" + str(#i + 1), 0;
    writeinistr $inifile, $file, "last" + str(#i + 1), 0;
}
endmacro;
//------------------------------------------------------------------//

「ファイルを開いた直後」用
//------- RestoreFold.mac ------------------------------------------//

//      折りたたみ復元マクロ

$inifile = currentmacrodirectory + "\\fold.ini";
$file = filename2;
#i = 1;
disabledraw;
while( 1 ) {
    #start = getininum( $inifile, $file, "start" + str(#i) ) + 1;
    if( #start == 1 ) break;   //折りたたみなし
    #last = getininum( $inifile, $file, "last" + str(#i) );
    movetolineno 1, #start;
    beginsel;
    movetolineno 1, #last;
    fold;
    #i = #i + 1;
}
endmacro;
//------------------------------------------------------------------//

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:31272 折りたたんだ状態で、開くには?No.31274
秀丸担当 さん 12/06/18 13:00
 

> 折りたたんだ状態で、保存しても、次に開くと折りたたみが解除さています。
> 折りたたんだ状態で、開くにはどうすれば良いんでしょうか?

秀丸エディタの機能としては折りたたみの状態を保存することはできないです。
現状では、山紫水明の書かれたようなマクロでやることになると思います。(山
紫水明さんありがとうございます)

以前にも要望がありましたが、テキストファイルに折りたたみの状態を保存する
という目的だとしたら、テキストエディタの範疇を超えてしまうことになるので、
独自ファイルということになってしまって秀丸エディタの機能としてやるのは難
しいです。
カーソル位置の復元やウィンドウ位置の記憶と同じように、ヒストリに残す情報
の1つとして最近開いたファイルのぶんだけを一時的に記憶させておくというこ
とであれば、秀丸エディタの機能としてあってもいいものになります。
そのようにもできたらいいということでネタにさせていただきます。

[ ]
RE:31274 折りたたんだ状態で、開くには?No.31278
山紫水明 さん 12/06/18 22:11
 

 当面は用途がありそうなので,若干手を加えてライブラリにアップすることに
します。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:31278 折りたたんだ状態で、開くには?No.31358
kappa3 さん 12/07/17 06:49
 
山紫水明さん。

便利なマクロを公開してくださってありがとうございます。
折りたたみを一から設定しなおすのは大変面倒で、とても
重宝しております。

さて、折りたたみを自動保存・自動復元するマクロ1.02 ですが
階層付きテキストで使っております。

同レベルの階層での折りたたみが続いた場合、ファイルを一旦閉じて
開くと、同レベルの階層部分では折りたたみが一つ置きに、
たたんだ状態・開いた状態で復元されます。

ReserveFold.mac から「折りたたみ復元」を選んだ場合も同様です。

例えば以下の例文で、第1章から第5章まで5つとも全て折りたたんで
一旦ファイルを閉じた場合です。階層の深さは関係ないようです。

ご確認いただければ幸いです。   kappa3


...折りたたみ状態の確認用

....第1章
かくかく

....第2章
しかじか

....第3章
あれこれ

....第4章
うんぬん

....第5章
かんぬん

[ ]
RE:31358 折りたたんだ状態で、開くには?No.31359
山紫水明 さん 12/07/17 08:42
 
 kappa3さん,

>同レベルの階層での折りたたみが続いた場合、ファイルを一旦閉じて開くと、
>同レベルの階層部分では折りたたみが一つ置きに、たたんだ状態・開いた状態
>で復元されます。

 今晩確認してみます。少々お待ちください。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:31359 折りたたんだ状態で、開くには?No.31365
山紫水明 さん 12/07/17 20:53
 
 kappa3さん,

 確かに連続する折りたたみの場合に,折りたたみが保存できませんでした。
 修正したものを下記に置いていますので,お試しください。
  http://homepage2.nifty.com/12sun/sansui.html

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:31365 折りたたんだ状態で、開くには?No.31369
kappa3 さん 12/07/18 03:47
 
> 修正したものを下記に置いていますので,お試しください。

山紫水明さん。

早速の素早い対応ありがとうございます。
連続する折りたたみも、ちゃんと復元できました。

山紫水明さんの作られた他の便利なマクロも使わせていただいております。
本当にありがとうございます。

                kappa3

[ ]