Mery のファイル → 開く

  1. Mery のファイル → 開く で初期の文書フォルダを設定できるようになったら便利だと思います。
    例)  F:\TEXT\020
    -----------地味にうれしい小技機能----------------------
      ・選択範囲の変換 → 改行を挿入 / 改行を削除

     |  Peggy  |  返信
  2. ご意見ありがとうございます。

    > Mery のファイル → 開く で初期の文書フォルダを設定できるようになったら便利だと思います。

    Mery には現在のところ「初期フォルダーを固定する」機能はありませんが、代わりに使える便利な方法がありますのでご紹介しますね。

    • エクスプローラーのピン留め機能

    Windows 10 以降をお使いなら、エクスプローラーの「クイックアクセスにピン留め」がオススメです。

    フォルダーを右クリックして[クイックアクセスにピン留めする]を選ぶだけで、エクスプローラーの左側にそのフォルダーが常に表示されるようになります。

    このピン留めは、Mery の「ファイルを開く」ダイアログにも反映されるので、Mery からもサッとアクセスできます。

    • Mery のピン留め機能

    [ファイル]メニューの「最近開いたファイル」一覧から、よく使うファイルを右クリックして[ピン留めする]を選ぶと、一覧に固定して残しておくことができます。

    さらに、ピン留めしたファイルを右クリック →[このフォルダーから開く]を選ぶと、そのファイルがあるフォルダーを初期フォルダーとして「ファイルを開く」ダイアログを表示できます。

    「常に特定のフォルダーを初期表示にしたい」といったご要望については、個人向けのカスタマイズに該当するため、現時点では標準機能としての対応は難しいのですが、今後ご要望が増えた際には検討させていただきますね。

     |  Kuro  |  返信
  3. > 「常に特定のフォルダーを初期表示にしたい」といったご要望については、個人向けのカスタマイズに該当するため、現時点では標準機能としての対応は難しいのですが、今後ご要望が増えた際には検討させていただきますね。
    ---
    むかし、お世話になった TeraPad にも「デフォルトフォルダ」という項目があり、便利でした。
    エクスプローラーはOSがバージョンアップするたびに、使いやすさが劣化していく印象があります。
    再検討されたら幸いです。

     |  Peggy  |  返信
  4. > むかし、お世話になった TeraPad にも「デフォルトフォルダ」という項目があり、便利でした。

    TeraPad さんの動作を確認してみました。

    どうやら「デフォルトフォルダ」は、いつでも特定のフォルダーを初期表示にしてくれるわけではなくて、新規作成した「無題」の文書のときだけ、[ファイルを開く] ダイアログの初期フォルダーとして使われる仕組みのようですね。

    ご要望が多ければ検討してみたいと思います。

     |  Kuro  |  返信
  5. > ご要望が多ければ検討してみたいと思います。

    「秀丸エディタ」や「サクラエディタ」でも、フォルダーの初期値が設定できたと思います。
    「Mery」においても、設定できるようになれば、より便利に使えると思います。

    ぜひ、ご検討していただければ幸いです。

     |  SS  |  返信
  6. ご意見ありがとうございます。

    > 「秀丸エディタ」や「サクラエディタ」でも、フォルダーの初期値が設定できたと思います。

    そういわれてみると、以前にも秀丸エディタさんでデフォルトフォルダーが設定できるということで、似たようなご要望をいただいたことがありました。

    【フォーラム】デフォルトフォルダの設定の提案
    https://www.haijin-boys.com/discussions/3115

    そのときに実際に秀丸エディタさんをチェックしてみたのですが、それっぽい設定は見つからず…。

    どういった機能なのかイメージがつかめなかったので、投稿者さんに詳しくお聞きしたかったものの、結局そのままお返事がなく終わってしまいました。

    今回あらためて調べてみたのですが、やっぱり該当する設定は見当たらず、ネット検索でもそれらしい情報は見つかりませんでした。

    もし同じようなご要望があと 2 〜 3 人集まれば、こっそり隠しオプションで実装してみてもいいかな、とは思っているのですが、現時点では「具体的にどういう動きの機能なのか」がはっきりしない状況です。

    たとえば、

    • どの画面で設定したいのか
    • どういうタイミングでそのフォルダーを使いたいのか

    など、イメージを教えていただけると、検討がしやすくなります。

     |  Kuro  |  返信
  7. >たとえば、
    > どの画面で設定したいのか
    > どういうタイミングでそのフォルダーを使いたいのか

    言い出っしぺの自分からです。私はMeryは和文書清書に使っています。プログラムを書く能力はありません。
    文書フォルダは F:\TEXT\001 から、\020 になっています。昔のフォルダ(\014)にあるテキストを上書きして
    再度、Meryの普段いる \020 フォルダに戻れれば便利だなと思いました。エクスプローラーから \020 を選んで戻ることも
    可能ですが、\014 フォルダを閉じたら、ファイル→開くで、 \020 フォルダに帰ってきてほしいと思います。

     |  Peggy  |  返信
  8. >> Peggy さん、SS さん

    ご返信ありがとうございます。

    > 文書フォルダは F:\TEXT\001 から、\020 になっています。昔のフォルダ(\014)にあるテキストを上書きして
    > 再度、Meryの普段いる \020 フォルダに戻れれば便利だなと思いました。

    なるほど、そういう使い方をされてるのですね。

    そうなると、TeraPad さんの「デフォルトフォルダ」機能とは、ちょっとニュアンスが違ってきそうです。

    TeraPad さんの場合、「デフォルトフォルダ」でたとえば\020を指定していても、いったん\014のファイルを開いて上書き保存したあとに [ファイル] → [開く] を選ぶと、次は\014のフォルダが初期表示になります。(どうやら、デフォルトの設定よりも「直前に使ったフォルダ」が優先されるようですね)

    最初に伺ったときは、「いつも特定のフォルダ (たとえば \020) を初期表示にしたい」というご希望かな?と思っていたのですが、「TeraPad のデフォルトフォルダみたいな機能」と聞いて、ちょっとイメージがごちゃっとしてしまいました。

    それと、SS さんが紹介してくれた秀丸エディタさんにも似たような機能があるみたいですが、もしかしたらそちらもちょっとイメージと違ってるかもですね。

    秀丸エディタさんの「初期フォルダー」機能についてですが、起動オプションで/dフォルダ名というのがあるのは見つけました。(もしかしてこのことかな?ちょっと違う気もしますが…)

    【参考】秀丸エディタ起動時のオプション(Ver9.46対応版)
    https://help.maruo.co.jp/hidemaru/html/230_Option.html

     |  Kuro  |  返信
  9. 大石です。

    横から失礼します。ファイラーを公開していますが同じような操作を行っています。

    設定されたキー(例えば Q)を操作すると「クイックアクセス」画面を表示させて、登録しているフォルダやファイルを選択します。
    フォルダならファイラーのカレントを変更し、ファイルならファイラーのカレントを変更してカーソルを該当ファイルに移動します。
    拙作の「BonsFD」では「操作」の「クイックアクセス」の機能です(Delphiです)。
    https://www.bonsfm.com/bonsfdwindows/bonsfdwin

    エディタなら、メニューに「選択して開く」を追加して「クイックアクセス」画面を表示させます。
    フォルダならOpenDialog の InitialDir にカレントフォルダを設定して「ファイルの開く」のダイアログを表示させます。
    一方、ファイルならそのまま開きます。

    よく使うファイルを登録しておくと便利だと思います。

    よろしくお願いします。

     |  大石剛司  |  返信
  10. 大石です。

    ファイラーの場合は、カーソル位置がフォルダかファイルかを判別して「現在を登録」にしています。
    エディタの場合は「フォルダを登録」と「ファイルを登録」に変更する必要があります。

    よろしくお願いします。

     |  大石剛司  |  返信
  11. > 今回あらためて調べてみたのですが、やっぱり該当する設定は見当たらず、ネット検索でもそれらしい情報は見つかりませんでした。

    「秀丸エディタ」と「サクラエディタ」で、フォルダーの初期値を設定している場所は以下のとおりです。

    「秀丸エディタ」でのフォルダー初期値の設定
    [その他]→[動作環境]→[ファイル]→[「開く」のダイアログボックス(O)]→[最初のフォルダ(U)]

    「サクラエディタ」でのフォルダー初期値の設定
    [設定(O)]→[編集]→[ファイルダイアログの初期位置]→[指定フォルダー]

    具体的な動作内容については、ヘルプ等を確認していただければ幸いです。

     |  SS  |  返信
  12. >> 大石剛司さん

    情報ありがとうございます。

    なるほど、クイックアクセスやピン留めのような使い方ですね。

    その場合、最初のご案内でも少し触れましたが、Mery の [ファイル] メニューにある「最近のファイルの一覧」を右クリックして [このフォルダーから開く] を選ぶことで、似たような運用ができるかもしれません。

    また、もし Windows のエクスプローラーが使いづらい場合は、大石さんがご紹介くださったように、ファイラー (ファイル管理ソフト) を導入してみるのも選択肢として良いと思います。

    >> SS さん

    詳しい情報をありがとうございます。

    サクラエディタさんの設定は私のほうでも確認できたのですが、秀丸エディタさんのほうは少し手こずりまして…「起動時オプションのことかな?」と思い、いろいろ試していました。

    教えていただいた手順でも見つからず、「もしかしてバージョンが違う?」などと悩んだのですが、[上級者向け設定] をオフにしたら見つかりました!難しすぎですね ^^;

    ということで、いくつかのエディターについても調べてみました。以下、簡単にまとめます。

    ■ 秀丸エディタさん

    まず、「初期フォルダー」機能についてです。

    > 秀丸エディタさんの「初期フォルダー」機能についてですが、起動オプションで/dフォルダ名というのがあるのは見つけました。(もしかしてこのことかな?ちょっと違う気もしますが…)
    >
    > 【参考】秀丸エディタ起動時のオプション(Ver9.46対応版)
    > https://help.maruo.co.jp/hidemaru/html/230_Option.html

    この起動時オプションを使って起動すると、[ファイル] → [開く] の最初のダイアログで、そのフォルダーが初期表示されました。

    ただし、一度でも別のフォルダーで開いたり保存したりすると、それ以降はそちらのフォルダーが優先されるようです。

    また、[ファイル] → [新規作成] では初期フォルダーは適用されません。再度適用するには、起動オプションを付けて再起動する必要がありました。

    【適用対象】

    • [開く] ダイアログ
    • [名前を付けて保存] ダイアログ

    ■ 秀丸エディタさん (SS さんに教えていただいた設定より)

    [動作環境] → [ファイル] → [「開く」のダイアログボックス] → [最初のフォルダ] から設定できました。

    詳細オプションとして、[新規作成時の現在のフォルダが対象] と [(無題) の開く/名前を付けて保存ダイアログのみ対象] がありますが、ヘルプを読んでも機能の違いが分かりづらかったため、両方検証してみました。

    1. [新規作成時の現在のフォルダが対象]
    • 最初に [ファイル] → [開く] を実行した際には初期フォルダーが適用されました。
    • ただし、起動時オプションで初期フォルダーが指定されている場合は、そちらが優先されます。
    • 別のフォルダーを一度でも開いたり保存したりすると、それ以降は直前のフォルダーが優先されます。

    【適用対象】

    • [開く] ダイアログ
    • [名前を付けて保存] ダイアログ
    1. [(無題) の開く/名前を付けて保存ダイアログのみ対象]
    • 最初に [ファイル] → [開く] を実行した際には初期フォルダーが適用されました。
    • 起動時オプションで初期フォルダーが指定されていても無視されるようです。
    • 別のフォルダーを一度でも開いたり保存したりすると、それ以降は直前のフォルダーが優先されます。

    【適用対象】

    • [開く] ダイアログ
    • [名前を付けて保存] ダイアログ

    両オプションとも、ヘルプにある「現在のフォルダ」という表現はカレントディレクトリを指している可能性があります。

    つまり [最初のフォルダ] はカレントディレクトリの指定であり、ダイアログの初期フォルダーはカレントディレクトリに連動しているのかもしれません。

    ■ サクラエディタさん

    [設定] → [共通設定] → [編集] → [ファイルダイアログの初期位置] → [指定フォルダー] から設定できました。

    こちらも最初に [ファイル] → [開く] を実行した際には初期フォルダーが適用されますが、別のフォルダーを一度でも開いたり保存したりすると、それ以降は直前のフォルダーが優先されます。

    ヘルプによれば、カレントディレクトリも同時に変更されるようです。

    【適用対象】

    • [開く] ダイアログ
    • [名前を付けて保存] ダイアログ

    ■ TeraPad さん

    [表示] → [オプション] → [フォルダ] → [デフォルトフォルダ] から設定しました。

    最初に [ファイル] → [開く] を実行したときに初期フォルダーが適用されますが、他のエディターと同様、一度でも別のフォルダーのファイルを扱うと以後は直前のフォルダーが優先されます。

    [名前を付けて保存] ダイアログには初期フォルダーが適用されません。

    【適用対象】

    • [開く] ダイアログ

    ■ VSCode

    [設定] → [Default Path] から設定しました。

    最初に [ファイル] → [開く] を実行したときに初期フォルダーが適用されます。

    ただし、こちらも一度でも他のフォルダーを開いたり保存したりすると、以降は直前のフォルダーが使われるようです。

    他のエディターと異なるのは、「最近開いたファイルやフォルダー」が存在しないときにしかこの設定が有効にならない点です。

    履歴が残っていると、新規作成や再起動しても初期フォルダーは適用されませんが、[最近開いた項目をクリア] で履歴をすべて削除すると再び適用されるようです。

    【適用対象】

    • [開く] ダイアログ
    • [名前を付けて保存] ダイアログ

    ひとまず、現時点ではこのような結果となりました。

    いずれのエディターも、私が想定していた「常に特定のフォルダーを初期表示する」機能とは異なり、基本的には「最初だけ指定フォルダーを表示し、それ以降は直前に使ったフォルダーを優先する」という動作でした。

    また、秀丸エディタさんやサクラエディタさんはマルチプロセス型アプリなので、「起動直後の初期フォルダー (= カレントディレクトリ)」という概念が機能しているのかもしれません。

    一方、Mery はシングルプロセス型のタブ方式なので、新規作成のたびにプロセスを起動する設計ではありません。

    そのため、「起動直後の初期フォルダー」という概念をそのまま適用すると、実用的ではないかもしれません。

    Mery のタブ方式に合わせて考えると、秀丸エディタさんやサクラエディタさん、さらに TeraPad さんの仕様の中間を取った、以下のような仕様が無難ではないかと思いました。

    ■ 案

    まず、サクラエディタさんの基本仕様をベースとします。これはいずれのエディターでも共通しているためです。

    • 最初に [ファイル] → [開く] を実行した際には、初期フォルダーを適用
    • 別のフォルダーを一度でも開いたり保存したりすると、それ以降は直前のフォルダーを優先

    ただし、このままだとタブ方式では問題があるため、秀丸エディタさんの [(無題) の開く/名前を付けて保存ダイアログのみ対象] という仕様を参考に、次のように調整します。

    • 「無題」タブの [開く] および [名前を付けて保存] ダイアログのみを対象にすることで、別のフォルダーのファイルを開いたり保存したりした後でも、「無題」タブに戻った際に初期フォルダーを適用できるようにする。

    さらに、秀丸エディタさんやサクラエディタさんのようなカレントディレクトリを変更する仕様は採用せず、TeraPad さんのようにシンプルにダイアログの初期フォルダーとしてのみ適用します。

    • カレントディレクトリには干渉しない

    また、適用対象は [挿入] ダイアログも加え、以下のとおりとします。

    【適用対象】

    • [ファイル] → [開く] ダイアログ
    • [ファイル] → [名前を付けて保存] ダイアログ
    • [編集] → [挿入] ダイアログ

    このような仕様であれば、タブ方式の Mery にも無理なく実装できそうです。

    いずれのエディターもソースコードを直接確認したわけではないので、認識に誤りがあるかもしれませんが、みなさんが思う「デフォルトフォルダー」機能の共通認識を持てればと思い、まとめてみました。

     |  Kuro  |  返信
  13. 詳しい動作検証ありがとうございます。

    自分も素人なりに考えて、普段使っているフォルダ F:\TEXT\020 に戻る小技を考えました。
    (本文) ▲初期 フォルダに戻る
    (フルパス)F:\TEXT\020\ ▲_初期フォルダに戻る.txt
    このファイルをMeryのファイル履歴の最上段にピン留めしました。
    これなら「ファイルから検索」や「お気に入り」のファイルを参照した後でも、「初期フォルダに戻る」をクリックすれば ファイル→開く では F:\TEXT\020 に移動が簡単に出来るので、エクスプローラーを使う手間が省けます。

     |  Peggy  |  返信
  14. ご返信ありがとうございます。

    > 自分も素人なりに考えて、普段使っているフォルダ F:\TEXT\020 に戻る小技を考えました。

    なるほど、「▲_初期フォルダに戻る.txt」というファイル名を使うのは面白いアイデアですね。

    > 詳しい動作検証ありがとうございます。

    前回ご提案させていただいた案で特に問題がなさそうであれば、ひとまず隠しオプションというかたちにはなりますが、次のバージョンで対応を検討してみたいと思います。

    標準機能として実装するには、現時点ではそれほど需要が高くないことや、オプション画面のスペースが限られていることもあり、難しいところがあります。

    ただ、今後ご要望が増えてきた場合には、たとえばオプション画面に新たに [ファイル] カテゴリを設けるなどして、対応を検討してみたいと思います。

    もっとも、頻繁に変更する設定ではなさそうですし、隠しオプションとして用意しておいて、必要に応じてマクロなどで簡単に切り替えられるかたちでも十分かもしれませんね。

     |  Kuro  |  返信
  15. Mery開発者様
    私の些細な要望を受けていただき感謝します。Mery.ini を以下のように書き換えました。これで、別フォルダを参照したのち、「新規作成」では指定フォルダにファイルを保存出来ました。
    また「ファイル→開く」を実行する前に自作の「▲ 初期フォルダに戻る」を実行すれば、普段使いのフォルダに移動できるのを確認しました。
    迅速な対応に感謝します。
    [File]
    CheckFileChanged=1
    FilterIndex=2
    UseUchardet=0
    InitialFolder=F:\TEXT\020

     |  Peggy  |  返信
  16. ご確認いただきありがとうございます。

    うまく動いているとのことで、ひと安心です。

    今回は、とりあえず隠しオプションというかたちで対応してみました。

    頻繁に変更しないようであれば、そのままでも問題ないと思いますが、MeryWiki に、隠しオプションを手軽に設定できるマクロを投稿してみたので、よければ試してみてください

    【参考】MeryToys
    https://www.haijin-boys.com/wiki/MeryToys

    コードをコピーして「MeryToys.js」として保存し、[マクロ] メニューの [選択] から登録できます。

    登録すると、[マクロ] → [MeryToys] で実行できるようになります。

    マクロを実行するとポップアップ メニューが出てくるので、その中の [ファイル] カテゴリにある [初期フォルダー] の項目から簡単に設定を変更できるかと思います。

     |  Kuro  |  返信
  17. > 【参考】MeryToys
    > https://www.haijin-boys.com/wiki/MeryToys

    横から失礼。
    これは命名がナイスですねw PowerToysを思わせます。

    そしてマクロ自体の利便性とは関係ないところにも感心してしまったのですが、このメニューオブジェクトの作り方、とても参考になりました。

     |  yuko  |  返信
  18. > これは命名がナイスですねw PowerToysを思わせます。

    ありがとうございますw 実は Tweak と迷いましたが、Toys のほうが楽しそうな感じがして😏

    > そしてマクロ自体の利便性とは関係ないところにも感心してしまったのですが、このメニューオブジェクトの作り方、とても参考になりました。

    以前に別のスレで階層メニューのことで悩んでたときに、yuko さんにアドバイスをいただいたのが参考になりまして😊

    3 階層以下は試してないので、ちゃんと動くかはちょっと自信ないです。あと、逆に 1 階層目に直接項目を置くと動かないですね。階層化、手ごわいです。

     |  Kuro  |  返信
  19. ファイラーの機能で紹介した内容で、「Mery」の「お気に入り(ファイルとフォルダー)」のプラグインを作成しました。

    ファイルを開く場合は以下で可能です。
    sStr2 := FormQuickAccess.StrRetFormQuickAccess;
    mPlugin.Editor_LoadFile(FormQuickAccess.EditorHwnd, TRUE, PChar(sStr2));

    フォルダーを開く場合は、該当フォルダーにあるダミーのファイルを開いてから「開く」を実行していますが、任意のファイルを開いた後にダミーのファイルを閉じる操作が必要です。
    sStr2 := FormQuickAccess.StrRetFormQuickAccess;
    mPlugin.Editor_LoadFile(FormQuickAccess.EditorHwnd, TRUE, PChar(sStr2));
    Editor_ExecCommand(FormQuickAccess.EditorHwnd, MEID_FILE_OPEN);

    隠し機能で良いので、フォルダーを指定して「開く」のダイアログを表示する機能の追加を希望します。
    function Editor_LoadFile(hwnd: THandle; bAllowNewWindow: Boolean; szFileName: PChar): Boolean;
    と同じ感じで
    function Editor_OpenFile(hwnd: THandle; bAllowNewWindow: Boolean; szFolderName: PChar): Boolean;
    の機能です。

    Editor_LoadFile ではなく Editor_OpenFile に変更
    szFileName は szFolderName として OpenDialog の InitialDir に設定

    よろしくお願いします。

     |  大石剛司  |  返信
  20. >隠し機能で良いので、フォルダーを指定して「開く」のダイアログを表示する機能の追加を希望します。

     これはエディタの仕事ではなく、ファイラの仕事だと思います。
    上記の機能を持ったエディタなどあるのでしょうか。

     |  Peggy  |  返信
  21. プラグインの場合、Mery のEditor_ExecCommand(FormQuickAccess.EditorHwnd, MEID_FILE_OPEN);を使わなくても、プラグイン側でTOpenDialogを使用すれば、InitialDirを自由に設定できると思います。

    プラグイン側でTOpenDialogを表示し、選択されたファイル名を使ってEditor_LoadFileを呼び出せば、ご希望の動作が実現できるかと思うのですが、この方法では何か問題があるのでしょうか。

     |  Kuro  |  返信
  22. >これはエディタの仕事ではなく、ファイラの仕事だと思います。
    >上記の機能を持ったエディタなどあるのでしょうか。

    申し訳ありませんが、他のエディタの事は調査していませんでした。
    今回のプラグインは自分用に作成していますが、他の人にも有効ではないかと思い書き込みました。

    普段、アプリケーションを開発する時には、他のプロジェクトのソースファイル(*.pas)を見ますが、この時には「Mery」を使用しています。

    これまでの操作は、ファイラーで希望のプロジェクトに移動して、拡張子順にソートして、該当のファイルに移動します。
    該当のファイルで「Mery」を起動したら次回の操作を想定して、ファイラーは名前順のソートに戻しています。

    今回の方法では、事前に希望のプロジェクトがあるフォルダを登録しておきます。
    「Mery」から「クイックアクセス」を起動して、該当のフォルダにカーソルを移動して、「Enter」キーを操作します。
    「ダイアログ」が表示されるので、「ファイルの種類」に(*.pas)を選択して、ファイルを選択すれば済むようになりました(複数ファイルの選択も可能)。
    「ファイルの種類」は複数の登録が可能で、今回選択した「ファイルの種類」が次回に反映されます(8種類で変更は直接 INI を編集)。

    自分用に作成したプラグインですので、このまま使用します。

    >プラグイン側でTOpenDialogを表示し、選択されたファイル名を使ってEditor_LoadFileを呼び出せば

    アドバイスありがとうございます。
    この方法で、希望通りの動作になりました。

    今回は、ありがとうございました。

     |  大石剛司  |  返信
スポンサーリンク