@Applekdz

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

EmEditorでの簡易結合は可能でしょうか?

EmEditor Professionalでお世話になっております。

ファイル結合と似た方法ですが、以下のようなことは可能でしょうか?
フォルダにテキストファイルが多数あるとき、たとえば20個のテキストファイルがあるとします。

そのときに画面に全部ドラッグ&ドロップするだけで、まとめて結合したようにひとつのタブ画面に連結されて中身のテキスト文字が表示される機能です。

一度、ファイルの結合処理をやってから結合ファイルを開くという方法はありますが、実際の作業ではいちいちあらたまって結合して新規保存して残すほどのことでもない目的の作業が多々あります。

いちいち、一度結合するとか、全部開いてコピー貼り付けをするというのは多くなると無駄な手間です。

まとめてドラッグすると通常は個々のテキストファイルは別々のタグに開きますが、それがひとつのタグで全部コピペしてはりつけていったように連結された形で開くという方法です。

これだと実質的に簡易的な結合になりますし、いろんなファイルから特定の文字列だけを抜き出したい程度の目的だと無駄に新規に結合して保存する必要もなく、作業時間が短縮します。

たとえば、shift+Altキーを押しながらEmEditor画面にドラッグ&ドロップとするそれだけで複数タブで開かず、複数のテキストファイルが連結されて表示されるとか可能でしょうか?

このときにちゃんと結合されて開いたかどうかわかるように、
「結合モードで開きますか?」とか「20個のファイルを結合モードで開きました」みたいなダイアログメッセージが出るとありがたいです。

表示される順番は、フォルダに並んでいる順です。
私の使い方の目的では、同時に同じ目的の一発マクロで作業を簡略化したいことが多いです。

よろしくお願いいたします。

0 likes

4Answer

すみません、EmEditorに関しては詳しくないのですが、複数のファイルから文字列を検索するのはGrep等ではだめなのでしょうか?

1Like

Comments

  1. @Applekdz

    Questioner

    回答ありがとうございます。
    正規表現検索ではありますが目的よりも、文字列を取り出してまとめて並べたい目的になります。
    同じページにまとめたい目的です。
    よろしくお願いいたします。

ファイルを結合してその結果を保存する場合には、マクロを使用しないで、[ツール] メニューの [ファイルを結合] で可能です。でも、保存しないで閲覧だけしたいという場合には、以下のようにすると可能です

  1. 下のマクロをファイル (Drop.jsee) に保存します。

  2. [マクロ] メニューの [マイ マクロ] ページで、作成したマクロ (Drop.jsee) を一覧に追加し、そのファイル名を選択した状態で、 [イベントで実行] オプションを設定し、[イベント...] ボタンをクリックします。

  3. [イベントの選択] リストの一番下にある [ファイルがドロップされた時] をオンにして、[OK] をクリックします。

  4. 結合したい複数のファイルをエクスプローラから EmEditor にドロップします。

editor.NewFile();
files = new Enumerator( DroppedFiles );
for( ; !files.atEnd(); files.moveNext() ){
   document.selection.InsertFromFile( files.item(), 0, eeOpenDetectUnicode | eeOpenDetectUTF8 );
}

emeditor-events.png

1Like

Comments

  1. @Applekdz

    Questioner

    回答ありがとうございます。
    EmEditor Professionalのポテンシャルの高さは毎度感心します。

    私の思った理想どおりの動作でした。ありがとうございます。
    もとのファイルは影響しないので、元のファイルを壊すんじゃないかと気にしなくていろいろできて良いので、この編集は便利です。

  2. @Applekdz

    Questioner

    ひとつ課題があるのですが、この方法だと、普通にファイルをドラッグ&ドロップして開きたいときも同様になります。
    ファイルの中身を見たいだけの時とファイル自体を開きたいときの差別化として、Ctrlキーを押しながらドラッグ&ドロップしたときは、中身を見るだけ、通常のドラッグ&ドロップは、ファイルとして開くみたいに動作を分けれますでしょうか?
  3. キーボード (Ctrl) の状態の検出は難しいと思います。でも、ダイアログ ボックスを表示して、その結果によりコードを分岐させるのでしたら可能です。

ありがとうございます。
ダイアログ ボックスを表示でお願いいたします。

0Like

ダイアログ ボックスを表示して、結合するかどうかを分岐するには、先に書いたマクロの最初に、以下の行を追加すれば可能です。

if( !confirm( "結合しますか?" ) )  Quit();
0Like

Comments

  1. @Applekdz

    Questioner

    ありがとうございます。
    やってみましたところ、キャンセルを押すとずうっと砂時計マークが出たまま動作が止まりました。
    OKを押した場合は結合して開きましたが、砂時計マークが出たままになります。
    この原因は何が考えられますでしょうか?
    よろしくお願いいたします。
  2. 砂時計マークが出たままというのは再現できませんでしたが、ファイルが巨大で多い場合には、時間がかかるために、砂時計マークが出たままになることがあります。
    また、[キャンセル] をクリックしたときに、通常にファイルを開きたい場合には、次のようにしてください。

    ```
    bJoin = confirm( "結合しますか?" );
    editor.NewFile();
    files = new Enumerator( DroppedFiles );
    for( ; !files.atEnd(); files.moveNext() ){
    if( bJoin ) {
    document.selection.InsertFromFile( files.item(), 0, eeOpenDetectUnicode | eeOpenDetectUTF8 );
    }
    else {
    editor.OpenFile( files.item(), 0, eeOpenDetectUnicode | eeOpenDetectUTF8 | eeOpenAllowNewWindow );
    }
    }
    ```
  3. 「砂時計マークが出たまま」の問題については、v21.2.904 で修正できていると思いますので、お試しください。
  4. @Applekdz

    Questioner

    バージョンアップしていただきありがとうございます。

Your answer might help someone💌