タブを操作する関数についてNo.08827
ohtorii さん 18/11/18 13:13
 
お疲れ様です。

以下操作に対応する関数はありますか?
もし無ければ追加をお願いしたいです。

・このタブ以外を閉じる
・左のタブを全て閉じる
・右のタブを全て閉じる

上記は、「メニュー → ウインドウ」一覧にある項目です。


秀丸エディタマクロヘルプで探しましたが見つかりませんでした・・・
よろしくお願いいたします。

*環境
秀丸エディタ v8.83 64bit

[ ]
RE:08827 タブを操作する関数についてNo.08830
秀丸担当 さん 18/11/19 10:16
 

他のタブを閉じるコマンドに相当するマクロの文は、一応内部的にはあったりはする
のですが、公開はされていないです。
秀丸エディタのマクロはアクティブを切り替えても実行が継続されるという性質上、
closehidemaruでは更新されていると失敗するようになっています。またはclosehide
maruforcedでは更新を無視して終了するようになっています。
他のタブを閉じるコマンドが使えたとしても、もし更新されたものがあって保存の問
い合わせが出たりすると、その最中にもマクロは続行されることになり、都合が悪い
ことになってしまいます。

マクロでやる場合は、マクロヘルプの「秀丸エディタ管理(タブ編)」にあるような各
タブをループして処理するようなマクロで、更新されているときはどうするかなどを
書く必要があります。

例えば他のタブをすべて閉じるような場合は以下のような感じになります。
この例では更新されている場合はメッセージが出るだけにしています。

#i = tabtotal - 1;
while( #i >= 0 ) {
  #handle = gettabhandle( true, 0, #i );
  if( #handle == hidemaruhandle(0) ) {
    //自分自身
  } else {
    if( updated[#handle] ) {
      message filename2[#handle] + "更新されています。";
    } else {
      closehidemaru #handle;
    }
  }
  #i = #i - 1;
}

[ ]
RE:08830 タブを操作する関数についてNo.08831
ohtorii さん 18/11/19 19:37
 
お疲れ様です。

教えて頂いたマクロで以下動作を作成できました。
 ・このタブ以外を閉じる
 ・左のタブを全て閉じる
 ・右のタブを全て閉じる
大変助かりました、ありがとうございました。


*秀丸エディタマクロヘルプに対する要望
秀丸エディタのメニューから選択できる動作はヘルプで網羅して欲しいです。
そして、今回のように事情がある動作はその旨の記載と回避方法があると、マクロ作
成時に時間を無駄にしなくて良いと思いました。

秀丸エディタマクロヘルプは内容が大変充実しており、マクロ作成時にグーグル検索
する必要が無く時間効率が良いです(^_^)
反面、今回のようにヘルプに記載が無い動作は「自分の探し方が悪い?」と思い、ヘ
ルプを端から端まで探す羽目になり時間を無駄にします。

ご一考頂けますと幸いです。

[ ]