簡単・便利!シンプルなテキストエディター「Mery」の最新版が遂に完成。
本バージョンでは、自動保存機能、バックアップ機能、変更行の強調表示機能など、以前からご要望の多かった機能を搭載しました。一緒に仕様を考えてくれたみなさん、ご意見を投稿してくれたみなさん、ご協力ありがとうございました!
今回の新機能は開発が大変すぎて、心が折れかけました。
本当はサクッと開発してキリッと公開したかったのですが、「もうやだー」と弱音を吐いたり「もうむりー」と諦めかけたりしているうちに前のバージョンの公開から 1 か月以上も時間が経っていました。
特に、変更行の強調表示機能の実装は難題で、メモリを節約しつつ動作速度への影響を最小限に抑えるために何度も最適化を繰り返し、夢の中にまでソースコードが出てきてうなされた夜もありました。
これ以上やったら Delphi 嫌いになるよ?
新機能
今回の新機能である、自動保存機能とバックアップ機能は、フォーラムを使ってアンケートのような形でみなさんのご意見を参考に開発させていただきました。参加してくださったみなさん、ありがとうございました。
それと、変更行の強調表示機能ですが、これは以前から多くのご要望をいただいておりました。
テキストエディターコンポーネントの大幅な改修が必要になることと、私の技術力がその領域に達していないことから「将来的に対応できれば…」とお茶を濁していましたが、そろそろ逃げ切れなくなってきたので実装に至りました。
自動保存機能
編集中のファイルを一定の間隔で保存する自動保存機能は、予定外の PC の再起動や突然の停電などでデータが消えてしまうのを防ぎます。
自動保存の有効・無効は [ファイル] メニューの [自動保存] からいつでも簡単に切り替えることができます。
[自動保存] を有効にすると、初期状態では 10 分ごとに上書き保存が実行されるようになります。
[ツール] メニューの [オプション] を開いて、[自動保存] タブから設定を変更できます。
自動保存機能の有効・無効や、自動保存の間隔、自動保存先のフォルダーの変更などはここから行います。
オプションで設定できる項目はシンプルですが、組み合わせによって様々な自動保存の方式に対応できるようになっています。
-
自動保存する
自動保存機能の有効・無効を切り替えます。[ファイル] メニューの [自動保存] と連動しており、どちらからでも切り替えることができます。 -
分ごと
テキストに変更が発生すると、ここで指定した [分] 後に保存が実行されます。0 を指定した場合は変更とほぼ同時に保存が実行されます。 -
自動保存フォルダーに保存する
通常、自動保存は自動的に [上書き保存] を実行しますが、この項目にチェックを入れると [上書き保存] ではなく、指定した [自動保存フォルダー] にファイルを保存します。元のファイルに上書きしたくない、変更マーク (*) を解除されたくない、新規のテキスト (無題) も自動保存したい、などの場合に設定します。 -
同名のファイルが存在する場合はファイル名を変更する
[自動保存フォルダーに保存する] と合わせて設定します。この項目を有効にすると、自動保存フォルダーに同名のファイルが存在する場合に別名で保存します。 -
自動保存フォルダー
[自動保存フォルダーに保存する] と合わせて設定します。指定したフォルダーに自動保存のファイルが作成されますので、アクセス権のあるフォルダーを入力してください。また、自動保存されたファイルは、Mery 終了後も自動では削除されません。
ポイント Mery.ini の [AutoSave] セクションの AutoSaveDelay にミリ秒単位で数値を設定すると、[分ごと] に 0 を指定したときの遅延時間を微調整できます。
バックアップ機能
先ほどご紹介した自動保存機能は定期的に保存してくれる機能でしたが、これは意図しないタイミングでの保存ですので、「あの日、あの時のデータに戻したい!」なんていう用途には向いていません。
バックアップ機能はファイルを上書き保存する際に自動的に 1 つ前の状態のファイルをバックアップとして別名で保存します。
つまり、常に最新と 1 つ前の状態のファイルが保存されているので、誤って上書き保存してしまったときでも 1 つ前の状態に復元できるわけです。
バックアップ機能の設定も自動保存機能と同様、[ツール] メニューの [オプション] を開いて、[自動保存] タブから行います。
バックアップファイルの作成先などの設定を行うことでバックアップ機能が有効になります。
オプションで設定できる項目は下記のとおりです。
-
バックアップフォルダーに保存する
バックアップファイルを指定したフォルダーに保存します。 -
保存するファイルと同じフォルダーに保存する
バックアップファイルを編集中のファイルと同じフォルダーに接頭辞 "Backup-" を付けて保存します。[バックアップフォルダーに保存する] と同時に設定することもできます。 -
同名のファイルが存在する場合はファイル名を変更する
[バックアップフォルダーに保存する] と合わせて設定します。この項目を有効にすると、バックアップフォルダーに同名のファイルが存在する場合に別名で保存します。 -
バックアップフォルダー
[バックアップフォルダーに保存する] と合わせて設定します。指定したフォルダーにバックアップファイルが作成されますので、アクセス権のあるフォルダーを入力してください。
[バックアップフォルダーに保存する] または [保存するファイルと同じフォルダーに保存する] のいずれかを有効にすることでバックアップ機能が有効になります。
自動保存機能と同時にバックアップ機能を使用することも可能です。その場合、自動保存フォルダーとバックアップフォルダーは別々のフォルダーを指定することをお勧めします。
[同名のファイルが存在する場合はファイル名を変更する] を有効にすることで、いわゆる「バージョン履歴」のように使うこともできます。
ポイント Mery.ini の [Backup] セクションの BackupMaxCount に 0 より大きい値を指定することで作成されるファイル数に上限を設け、サイクルバックアップのように古い世代のバックアップを自動で削除できます。
変更行の強調表示
変更した行の行番号を太字にしたり、行番号の左端に保存前、保存後の目印を表示できるようになりました。
もちろん目印のオン・オフ切り替えは簡単です。
煩わしいと思ったらオフ、ちょっと気になったらオン、なんていう使い方も可能です。
変更行の "目印" は、[表示] メニューから [記号] の中の [変更行を強調表示] にチェックを入れると表示されます。(初期値はオフ)
変更行の "行番号" を太字にしたり背景色を設定したりすることもできますが、こちらは [変更行を強調表示] とは連動しません。
これらの設定は [ツール] メニューから [オプション] を開いて [表示] タブの [表示項目] で個別に変更できます。
[表示項目] の中で [行番号 (変更行)]、[変更行 (保存前)]、[変更行 (保存後)] の 3 つが今回追加された項目です。
例えば、変更行の行番号を太字にする場合は [行番号 (変更行)] を選択して [太字] をオンに。もっと目立たせたい場合は [背景色] を設定することもできます。
変更行の目印は [変更行 (保存前)]、[変更行 (保存後)] で設定します。
例えば、保存後の目印が不要な場合は [変更行 (保存後)] で [背景色] を "透明" にします。
これらの目印は [ブックマーク] や [行番号 (変更行)] の上に描画されますので、テーマをカスタマイズするときはご注意ください。
変更行の強調表示機能の追加にともない、101 個のテーマファイルも更新しておきましたので、必要に応じてお使いのテーマファイルを差し替えてください。
更新 → 好みのカラーがきっと見つかる!テキストエディター「Mery」の美しいテーマ 101 個 - Haijin Boys Onlineコマンドラインオプション "/ff" (ファイルから検索, grep) を追加
コマンドラインから呼び出すときに "/ff" オプション (Find in Files) を指定することで [ファイルから検索] 機能を直接実行できるようになりました。
ファイルから検索
Mery.exe /ff "FindWhat" /fm /fr /fx /fw /fn /cp "FindPath"
[ファイルから検索] は以下のオプションを組み合わせることができます。
- /fm 大文字と小文字を区別する
- /fr サブフォルダーも検索する
- /fx 正規表現を使用する
- /fw 単語のみ検索する
- /fn ファイル名のみ表示する
- /cp エンコード
"FindWhat" は検索する文字列、"FindPath" は "C:\Temp\*.txt" のように記述することで "C:\Temp\" が検索するフォルダー、"*.txt" がファイルの種類として認識されます。
ファイルから置換
Mery.exe /ff "FindWhat" /fm /fr /fx /fw /fn /cp "FindPath" /rw "ReplaceWith" /bk
[ファイルから置換] は以下のオプションが使用可能です。
- /fm 大文字と小文字を区別する
- /fr サブフォルダーも検索する
- /fx 正規表現を使用する
- /fw 単語のみ検索する
- /fn ファイル名のみ表示する
- /cp エンコード
- /rw ファイルから置換する
- /bk バックアップを保存する
"FindWhat" は検索する文字列、"FindPath" は "C:\Temp\*.txt" のように記述することで "C:\Temp\" が検索するフォルダー、"*.txt" がファイルの種類として認識されます。"ReplaceWith" は置換後の文字列を記述します。
更新内容
新機能以外にも、多くの改善や不具合の修正が含まれています。お使いのバージョンで問題が発生している場合は新しいバージョンに更新することで改善されることもあります。
C#、JavaScript、HSP の強調文字列、単語補完辞書を更新
編集モードの C#、JavaScript、HSP における強調文字列と、単語補完辞書を更新しました。C# はコンテキストキーワードの追加、JavaScript は差し替え、HSP は 3.51 プロ生ちゃんエディションに更新しました。
[EOF] (ファイルの終端) を「←」表記に変更
ファイルの終端記号 [EOF] が少々時代遅れな感じがしたので「←」記号に変更しました。従来の [EOF] 表記が良い場合は [表示] メニューの [記号] から [CR と LF を区別して表示] にチェックを入れることで [EOF] 表記になります。
マクロバーに [編集] の項目を追加
登録しているマクロを 1 クリックで起動できるマクロバーですが、マクロのボタン上で右クリックから [編集] を呼び出せるようになりました。
マーカーバーに [単語のみ] [大文字小文字を区別] [正規表現] の項目を追加
登録しているマーカーを便利に使えるマーカーバーですが、マーカーのボタン上で右クリックから [単語のみ] [大文字小文字を区別] [正規表現] の設定を変更できるようになりました。
外部ツールの [アウトプットバーを使用する] で入力が [選択テキスト] [文書] [カスタム] の場合、標準入力を自動で閉じるようにした
外部ツールでコマンドラインツールを使用するときに、[選択テキスト] [文書] [カスタム] を標準入力に自動的に入力することができるのですが、入力後に標準入力をクローズしないと動作しないアプリケーションがあったので対応しました。
アウトプットバーにおけるリダイレクト処理の安定性を向上
外部ツールの [アウトプットバーを使用する] で環境によっては標準出力が拾いきれないことがあったので安定性を向上しました。
読み直しの際に、できるだけスクロールバーの位置を保持するようにした
[読み直し] や、編集中のファイルが他のエディターで変更されたときの読み直しで、スクロールバーの位置を "できるだけ" 保持するようにしました。
"できるだけ" というのは、編集中のファイルが他のエディターで変更されたときの読み直しでは、内容が変更されているためスクロールバーの位置を復元してもキャレット位置が編集エリア外に行ってしまうことがあるため、その場合はキャレット位置に追従するというわけです。
[編集] カテゴリに [最後に編集した位置へ移動] を追加
せっかく変更行の強調表示が搭載されたのだから、それを利用した機能が 1 つでもあったほうがいいのではないかというコメントをいただきましたので実装してみました。
デフォルトでは Ctrl+Shift+Zに割り当てられていますが、これ、予想以上に使えそうな機能です。
Python のマクロで window の confirm と prompt が動作しなかった問題を修正
以前に掲載した "知っておくと便利なテキストエディター「Mery」の 10 個の小技" という記事で、マクロは Python でも書けます!(キリッ) とか書いておきながら、Python だと 2 つのメソッドがプログラムミスで動作しませんでしたので修正しました。
フォーラム PythonScript で Prompt 他が呼び出せない
エディターの右端におけるサロゲートペアの描画を修正
サロゲートペアや IVS が画面の右端に描画されるときに、フォントのサイズやウィンドウ幅によって稀に描画されなくなることがあった問題を修正しました。
フォーラム 【要望2件】更新行のマーク表示・UNICODEサロゲートペアのエディター右端の表示
縦書きで行間が 0 のときに傍線が切れていたのを修正
縦書きで行間を 0 に設定していてフォントサイズが小さい場合に、傍線の部分が再描画されず残骸が残ることがあったので傍線の位置を微調整しました。
コマンドラインオプションの処理を CommandLineToArgvW を使って作り直した
コマンドラインオプション "/ff" の機能追加に伴う仕様変更です。
従来は Delphi の ParamStr メソッドを使用していましたが、コマンドラインオプションで "" (空文字) を取得できず、/rw "" のような空文字への置換が実行できなかったため、仕様を全面的に見直しました。
この仕様変更にともない、今度は CommandLineToArgvW API の仕様上の制限が発生します。
具体的には、CommandLineToArgvW は二重引用符で区切られた引数の場合、引数の最後の文字が ¥ (円マーク) だと正常に動作しません。というか、¥ が次の文字をエスケープしていると認識される仕様のようです。
エクスプローラーからフォルダーをドロップした場合は最後に ¥ はつきませんので、普通に使っていると引数が "フォルダー名¥" となるケースはそれほどないと思いますが、コマンドラインから Mery.exe を直接機能を呼び出すときに何らかの理由でフォルダー名を渡す必要がある場合はご注意ください。
ダウンロード
Mery Ver 2.6.9 (32 ビット版) ZIP- 2,804,082 バイト 2018/07/12
- SHA256: 606e83d6dc85ef687fb9ad4b264a877873895d14c51c76a2bb06011ad9842003
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 2,385,407 バイト 2018/07/12
- SHA256: 802f580e57729da31c8c5a0777f49d5f06f16d72130a036a019f901e8727b66d
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,558,805 バイト 2018/07/12
- SHA256: 4e8e7780d25d4ad5a54a5ed234afd32708ca1abacc8fa95689c64b9d3224def0
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
- 2,903,631 バイト 2018/07/12
- SHA256: 627638881c6e1d79b7b7f708a908316b1064733a0be7b2edb88546d17c0b41f0
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
おわりに
自動保存機能や、バックアップ機能は今の時代、フロッピーディスクの場合などを考えなくて良いので割と簡単に実装できました。仕様決めのほうに時間がかかりましたが…。
自動保存の遅延時間や、バックアップの世代数をオプション画面上に設けなかったのは設定をシンプルにしたかったのと、そこまでこだわる人なら INI ファイルでも気にしないだろうと思ったのと、オプション画面に余白がなかったからです。
え、オプション画面に余白あるって?そこはワークスペース機能の建設予定地です。ワークスペース機能というのは前回の状態を保存・復元するための機能で、レジューム機能と呼ばれたりもします。
自動保存関連のフォーラムでご要望があり、変更行の強調表示機能を実装しなければワークスペース機能を実装していたのですが、変更行の強調表示機能はどうしてもアンドゥ処理の仕様変更が必要で、その仕様次第でワークスペース機能のプログラムが変わってくるため、本バージョンでは実装を見送りました。
あと、バグのご報告やご意見・ご要望は優しくささやいていただけるとモチベーションが上がります。
>コマンドラインオプションの処理を CommandLineToArgvW を使って作り直した
おつかれさまです。
おかげさまで、コマンドラインオプション /ff にオプションが追加され、
とても便利になりました。さっそくファイラに登録しました。
変更行の強調表示、[変更行 (保存後)] が設定できて、気が利いてますね。
こまめに保存したい、けど、変更行は判るようにしたい派なので、助かります。
>その他、ちょっとした隠し機能を追加。(Mery.txt 更新履歴)
は、Mery.ini の [Backup] BackupMaxCount、 [AutoSave] AutoSaveDelay
以外にございますか?(少し期待 (^^; )
>簡単・便利!シンプルなテキストエディタ「Mery」の最新版が遂に完成。
内容が豊富で、驚きました。
>[同名のファイルが存在する場合はファイル名を変更する] を有効にすることで、いわゆる「バージョン履歴」のように使うこともできます。
大変うれしいです。
「マーカー機能」とこの「バージョン履歴」機能のおかげで、スクリプトがとても書きやすくなりました。
>自動保存機能と同時にバックアップ機能を使用することも可能です。その場合、自動保存フォルダとバックアップフォルダは別々のフォルダを指定することをお勧めします。
AutoSaveのフォルダとBackupのフォルダに分けてみました。
テキストエディターで「自動保存機能」というのは、今まで一度も利用した事が無かったのですが、今回設定してみました。
>[編集] カテゴリに [最後に編集した位置へ移動] を追加
>これ、予想以上に使えそうな機能です。
便利そうな機能なので、Ctrl + Shift + Z を覚えます。
バージョンアップ、ありがとうございました。
新バージョンの制作、お疲れ様でした。そして、ありがとうございます。
テーマも101個全て更新されたのですね。お疲れ様でした。
また、ちょっと前のコメントだったのに、
今回のバージョンに [最後に編集した位置へ移動]機能を取り入れていただき、ありがとうございます。
前バージョンのコメント欄で、CTRL + SHIFT + ↓ (または ↑) を教えていただきましたが、
主としてツールバーのボタンを使うので、これをボタンにすることは可能でしょうか?
マクロについてほとんど分かりませんが、マクロの記録では選択していた文字がそのまま記録されてしまったもので。
>> 皆様
参照のためにファイルをバックアップ用のフォルダから開いたときに、
次回以降にそのファイルを読み込み履歴から間違って開かないようにしたいのですが、
何か良いアイデアがあれば、ご教示ください。
履歴を全削除してしまえば良いのですが、残しておきたい履歴もあるもので。
Kuroさんからは前バージョンのコメント欄で、現状、履歴の個別削除の実装は難しい旨の回答をいただきました。
> 1.ファイルの読み込み履歴について、ファイル単位での履歴の削除
> そうですね、[ファイル] メニューの中のファイルの履歴の部分を右クリックして、ポップアップメニューから [削除] や [固定] ができれば便利だと思います。
> これは以前に開発に挑戦してみたことがありますが、開発環境 (Delphi) の機能ではメニューからさらにポップアップメニューを呼び出すことができず、情報も全然みつからなくて私の技術力では無理でした。こうやったらできるよ!っていう情報があればいただけると助かります。
いままで[最後に編集した位置へ移動]は undo → redo で擬似的に動作させたのが標準機能キター!
と思ったがショートカットキーが redo と重複してますよ。[help]→キーボードマップで存在は確認できますけど、[編集]メニューに表示されません。
#ME_ID_hogehogeの定数はいくつだろ
ごめんなさいキーの重複は「おま環」でした。メニューに出ないのはほんと。
通りすがりさん、こんにちわ。(似てるけど別者です (^^; )横からごめんなさい。
>[編集]メニューに表示されません
そうですね。
ただ「メニューには追加しないよ、キーアサインとポップアップは自分で好きにしてね」
と解釈されるのがよろしいかと‥ (^^;
ツール→ポップアップメニューの設定に追加と、
(他のエディタたちと同設定に)キーアサイン変更して使ってます、便利ですね。
ご存知かもしれませんが、ポップアップメニューの名称に
(&L)
とか & 好みの文字を追加すると、ポップアップメニューのアクセラレータキーになります。
まだされてなければ、お試しください。
Mery の更新と記事の作成お疲れ様です!
自動保存や自動バックアップは個人的にも望んでいましたが、アンケートへの投稿文を考えているうちにタイミングを逸してしまい「まぁ、同様の要望を他の人が書いてくれてるしぃ~」と作者のモチベーションに寄与しないダメ行動に走ってしまいました。
[変更行の強調表示]と[最後に編集した位置へ移動]も便利な機能で嬉しい限りです。
紹介記事の新機能解説も大変分かりやすく、毎回感心させられます。
ワークスペース機能も楽しみにしてます。これからも応援し続けます!
開発お疲れ様です。
編集済みファイルから変更行の行番号の背景色が設定できるようになり、より見やすく
便利になりました。有り難うございます。さて、
要望者さんの書き込みから [EOF] の代わりに ← が表示されるようになりましたが、
この矢印の消し方が判りません。表示/非表示のオプションがあった方が自然に
思います。普段から [EOF] 非表示にして使っているので、何か気になります。
開発お疲れ様です。
[最後に編集した位置へ移動]、地味に使えそうですね。他のエディタにもあるんですね。勉強になりました。覚えておこう。
レジューム機能、よさそうですねぇ。ただ、開発が大変ならそこまでじゃなくても、自動回復でもいいんですけど。自動保存より自動回復してほしいです。というのも、とりあえずOSシャットダウンしないといけないけど、無題のまま書きかけのメモが、Merryを閉じるときにいちいち名前を付けて保存しないといけないのが、結構面倒なんですよね。WindowsUpdateで勝手に消されちゃうのもあるし…。自動保存をMerry終了時にもやってもらえると助かります。&起動時にも無題だけでも起動するとか、起動履歴からChromeみたいにCtrl+Shift+Tで閉じたのを起動でもとても助かる気がします。
また、ベータ版Upお待ちしてます。:)
>> 通りすがり^2 さん
コメントありがとうございます。
> とても便利になりました。さっそくファイラに登録しました。
そう言っていただけると嬉しいです。コマンドラインオプションの処理に仕様変更が発生していますので、変なところとかあったら教えていただけると助かります。
> 変更行の強調表示、[変更行 (保存後)] が設定できて、気が利いてますね。
これは Delphi や Visual Studio の IDE を参考に作ってみました。ちょっとプログラミング向けの色が強い機能なので初期値はオフにしておきました。
> Mery.ini の [Backup] BackupMaxCount、 [AutoSave] AutoSaveDelay 以外にございますか?(少し期待 (^^; )
↑これは記事中でネタバレしているので隠しじゃないですね ^^;
もう一つは、[ツール] の [オプション] の [表示] タブで、文字色や背景色の指定で [カスタム] や [...] ボタンから色選択画面を呼び出すときに Ctrl キーを押しながら開くと色を "#99CCFF" みたいに HTML カラーコード、または "hsl(240,50%,80%)" みたいに CSS3 っぽく指定できるような機能を隠してます。って、ここでバラしてしまうと隠し機能じゃなくなってしまいますが…。
他にも何かあったかな…。
>> いっち さん
コメントありがとうございます。
> 「マーカー機能」とこの「バージョン履歴」機能のおかげ
早速お役に立てて良かったです。そう言っていただけると苦労も報われます。
> 「自動保存機能」というのは、今まで一度も利用した事が無かったのですが、今回設定してみました。
私もテキストエディタで自動保存機能は必要ないと思っていたのですが、今回設定してみたところ、今までは「あ、間違えて閉じちゃった!ま、いっか」で終わっていたのが、ファイルが残ってて「おー!」って思いました。
> 便利そうな機能なので、Ctrl + Shift + Z を覚えます。
今までは Ctrl + Z → Ctrl + Y という順に叩いてましたが、一発でできるようになりました。
>> 774 さん
コメントありがとうございます。
> テーマも101個全て更新されたのですね。お疲れ様でした。
変更行の目印の色だけですけどね。テーマに準じた色にしようか迷ったのですが、マーカー機能のようにテーマにかかわらず同じ色のほうが馴染みやすいかなと思ってそうしてみました。
> 今回のバージョンに [最後に編集した位置へ移動]機能を取り入れていただき、ありがとうございます。
この機能、思っていた以上に便利で、みなさんの反応も良いようです。ご意見ありがとうございました。
> 主としてツールバーのボタンを使うので、これをボタンにすることは可能でしょうか?
CTRL + SHIFT + ↓ (または ↑) はボタンの絵の素材がないのでツールバーに配置することはできないですね。確かに、マクロを使えばツールバーに配置することは可能です。(マクロといっても 1 行ですが)
選択文字で下に検索を実行するマクロ
--------ここから--------
editor.ExecuteCommandByID(2136);
--------ここまで--------
選択文字で上に検索を実行するマクロ
--------ここから--------
editor.ExecuteCommandByID(2137);
--------ここまで--------
これをそれぞれ別々のファイルに保存して、マクロとして登録してやると、マクロバーに表示されますね。
アイコンが用意できるなら、マクロをツールバー上にボタンとして配置することも可能です。
> 何か良いアイデアがあれば、ご教示ください。
Mery の読み込み履歴ではなく、Mery を起動していると、Windows のタスクバーの Mery アイコンを右クリックして、そこに表示される読み込み履歴なら固定・削除もできますから、ご活用されてみてはいかがでしょう?
>> 通りすがり さん
私も、ずっと Undo → Redo でやっていました ^^
Redo のショートカットキーが Shift + Ctrl + Z なアプリもありますので、そっちで慣れてる方にはちょっと紛らわしかったかもしれませんね。
[編集] カテゴリに追加しただけで、メインメニューには表示していません。(メインメニューは使用頻度が高いものや、目立たせたい機能を配置しています)
通りすがり^2 さんが書かれているとおり、キーボード割り当てか、またはポップアップメニューに必要に応じて追加してくださいね、という感じを想定しています。
> #ME_ID_hogehogeの定数はいくつだろ
お、マニアックですねw MEID_EDIT_GO_TO_CHANGED = 2241 です。
>> アイスクライマー さん
コメントありがとうございます!
> 「まぁ、同様の要望を他の人が書いてくれてるしぃ~」と作者のモチベーションに寄与しないダメ行動
大丈夫です、要望なしで Amazon リンクでお買い物しまくっていただくのが一番モチベーションがあがりますのでw
実は最近、フォーラムが完全に "サポート" フォーラムになってしまっていたので、たまには "開発" フォーラムとして盛り上がっていたあの頃の情熱を!と思って気まぐれで投稿してみたのですが、予想以上にご意見が集まってビビリました…。
> 紹介記事の新機能解説も大変分かりやすく、毎回感心させられます。
おお!それが一番うれしいかも。
Mery をはじめて使われる方にもわかってもらえるように気を付けていると、記事を書くのにすごく時間かかります…。
> ワークスペース機能も楽しみにしてます。これからも応援し続けます!
応援ありがとうございます。ワークスペース……、グフゥ。
>> tisi さん
コメントありがとうございます。
変更行の行番号の色指定、お役に立てて良かったです。
> この矢印の消し方が判りません。
ほんとですね、本来であれば [表示] の [記号] の [EOF] と連動させなきゃいけないはずが、忘れていました。
次のバージョンでは修正しておきます。
対症療法ですが [表示] の [記号] の [CRとLFを区別して表示] にチェックをいれて、[EOF] のチェックを外せばとりあえず消えます。(改行マークの形が若干変わってしまいますが…)
>> kapi さん
コメントありがとうございます。
> [最後に編集した位置へ移動]、地味に使えそうですね。
他のエディタでもあると思いますが、そういった機能がありますよーって宣伝でもしない限り、普通に使ってると気づかないですよね。
レジューム機能ですが、kapi さんがおっしゃっている自動回復というものが、まさにレジューム機能のことだと思います。無題のものも含め、いろいろ編集途中で「×」ボタンを押したら確認なしでシュッと閉じて、次に起動した時にそれらを自動で復元する感じですね。
> また、ベータ版Upお待ちしてます。:)
今後とも応援よろしくお願いいたします。
ご回答、ありがとうございます。
> 選択文字で下に検索を実行するマクロ
> 選択文字で上に検索を実行するマクロ
おおっ!ありがとうございます!!
これ、ばっちり思った通りの動作をしてくれました。
ツールバー上にボタンとして配置できました。アイコンは適当ですが。
> Mery の読み込み履歴ではなく、Mery を起動していると、Windows のタスクバーの Mery アイコンを右クリックして、そこに表示される読み込み履歴なら固定・削除もできますから、ご活用されてみてはいかがでしょう?
こんなことができたのですね。
しかしながら、私の環境(Windows 7)で Mery では表示されませんでした(悲)。
メモ帳やペイントでは、「最近使ったもの」として表示されましたが。
時間があるときにでも調べてみます。
>> 774 さん
ご返信ありがとうございます。
マクロ、うまくいったようで安心しました。
> しかしながら、私の環境(Windows 7)で Mery では表示されませんでした(悲)。
あらー、おかしいですね。
私も Windows 7 で確認してみたところ、Mery でも「最近使ったもの」として表示されてますね。
Windows の設定のポイントとしては、タスクバーを右クリックしてプロパティを開いて、「[スタート] メニュー」タブで、プライバシーの項目の [最近開いた項目をスタートメニューとタスクバーに保存し表示する] がオフになってると、表示されないようです。
でも、メモ帳で表示されているなら別の原因かもしれませんね…。
更新お疲れ様です!
> マクロバーに [編集] の項目を追加
この機能を追加していただき、ありがとうございます!
これでマクロ開発がはかどります!
わざわざご確認していただき、ありがとうございます。
タスクバーの Mery アイコンを右クリックすると表示されるはずの「最近使ったもの」について、
設定はご指摘どおりになっていました。
でも、ファイルの関連付けを行ったら、表示されるようになりました。
見るだけのようなテキストはメモ帳で開いていましたし、
編集するものは「開く」や読み込み履歴から開いていましたから、
今までは1つの拡張子も Mery への関連付けを行っていませんでした。
お手数をおかけしました。これでまた1つ快適になりました。
ありがとうございました。
すこし気になったので、まずは、Windows7でやってみました。
>しかしながら、私の環境(Windows 7)で Mery では表示されませんでした(悲)。
Windows 7 で txtをMeryに関連付けしたら、Mery でも「最近使ったもの」として表示されました。
※一度関連付けをすると、関連付けを止めても、「最近使ったもの」には表示されるようで、メモ帳、Meryのいづれでも表示されました。
あくまで、私の場合ですけれども。
すいません。
投稿が遅くて、既に返信のレスをされてました。
レス消してもいいんですが、消し方分からないので、そのままにしておきます。
>> いっちさん
いえいえ、お試し、ありがとうございます。
> ※一度関連付けをすると、関連付けを止めても、「最近使ったもの」には表示されるようで、メモ帳、Meryのいづれでも表示されました。
これは私にとっては、ありがたい情報かもしれません。
ほんのわずかな違いですが、起動に関してはメモ帳のほうが軽いので、
ちょっとしたテキストを見るだけならメモ帳でも良いかなと思っていますので。
使っているパソコンがショボいからだと思いますが。
おおー!今回もワクワクする新機能が盛り沢山ですね!
優しく使い倒したいと思いますw
早速変更行強調機能、試してみました!
以前に Kuro さんが紹介してくださって以来、Oceanic Next テーマを Mery 含め他のエディタでも愛用しているのですが、その色調に合わせて変更行強調色と文字色を合わせてみました。更にシャレた見た目になって感無量です(´;ω;`)ウッ…
動作速度も今までと遜色無く、素晴らしいの一言です。
それと、早速ですみません。ちょっと気になったのでご報告を...
今回、EOF 記号が「←」に変わっていますが、記号設定の「EOF 表示」のチェック状態に関わらず表示されます。未チェックなら「←」は非表示でもよいかと思います。
そして「時代遅れな感じがした」ということで EOF に変更が加わったのを好機と見て要望を挙げさせてください。
半角スペース表示を「・ (半角中点)」とするのはいかがでしょうか?
理由としては、複数半角スペースが隣接した際、隣同士の離れあいが現在の形式よりも判別しやすいこと、そして他の文字への視認性の影響を最小限に抑えられるためです。(Atom や VSCode 等、モダンなエディタでよく見る形式でもあります)
個人の好み的なところもあるので淡い期待程度での要望ですが、ご検討いただければ嬉しいです。
>> yuko さん
コメントありがとうございます!
> その色調に合わせて変更行強調色と文字色を合わせてみました。
配色のお手間を取らせてしまって、すみません ^^; 一応、デフォルトの [変更行 (保存前・保存後)] の色は、Windows Classic テーマだと Visual Studio っぽく、その他 (101 個のテーマも含めて) はちょっとオシャレに Office っぽくしています。
> 動作速度も今までと遜色無く、素晴らしいの一言です。
ありがとうございます。簡単に作れそうな機能に見えますが、これはヤバかったです。
> 記号設定の「EOF 表示」のチェック状態に関わらず表示されます。
そうなんですよね。公開直後のコメントでご報告いただいて、「ハウゥ!」ってなりましたが凡ミスです。次のバージョンでは修正しておきますが、気になるので近日中に修正版をリリースするかもです。
> 半角スペース表示を「・ (半角中点)」とするのはいかがでしょうか?
確かに、そういう表記も見かけますね。プログラム的にはいちいち□を描画するより簡単ですが、見づらくないですか?本当の「半角中点」と区別もつきそうにないですし…。
個人的にはそもそも空白を表示しない派なのでこだわりはないんですけどねw
>> Noah さん
コメントありがとうございます。
マクロバーからの [編集]、こっそり搭載しておきましたが、気づいてくれてうれしいです。
> これでマクロ開発がはかどります!
ぜひ!MeryWiki へのご投稿もお待ちしておりますよー (w
> 確かに、そういう表記も見かけますね。プログラム的にはいちいち□を描画するより簡単ですが、見づらくないですか?本当の「半角中点」と区別もつきそうにないですし…。
言われてみれば、半角中点や全角中点との区別が付きにくくなる恐れはありますね。
一般的に(?)改行文字等の制御文字は普通の文字よりも暗くする (背景色寄りの明るさにする) と思うので、それで判別には問題ないと考えていました。
ちなみに要望出しといて「オイ!」と言われそうですが、私も Mery では半角スペースは表示しない派です^^;
私自身、「もし半角中点だったら表示させるけど、表示させることがマストではない」といった立ち位置なので、ニーズとしては少ないのかもしれません。もし他にも似た要望が挙がったときにでも、思い出してもらえればと思います。
>> yuko さん
ご返信ありがとうございます。
そうですね、「・」←点だと色での判別もやや厳しい気がしますが、英語圏のエディタだと「・」が文字として登場するシーンが少ないから、半角スペースのマークとして使われるのかも?
でも、確かに半角スペースの記号 (アンダースコアに毛が生えたようなやつ) ってなんか見た目がダサいですよね。ご要望があった際にはご意見、参考にさせていただきますね。
>アウトプットバーにおけるリダイレクト処理の安定性を向上
>外部ツールの [アウトプットバーを使用する] で環境によっては標準出力が拾いきれないことがあったので安定性を向上しました。
少し気になったので、実験しました。
確かに「あれっ?」って思った事も、以前はあったような気もします。
今回、下記のみのawkスクリプトを外部ツールで実行させてみました。
{print NR}
郵便局の郵便番号データ「13TOKYO.CSV」位なら快適でした。
郵便局の郵便番号データ「KEN_ALL.CSV」だと私のパソコンでは、途中Meryが「応答なし」になったりします。
こればかりは、パソコンの性能によるものなので仕方ないです。
(そんな大きなファイル普段使わないので、問題無いです。)
※ここまで安定させるのに、苦労されたのだと思いました。
>> いっち さん
ご報告ありがとうございます。
私の環境 (Windows 10 64 ビット、Mery 2.6.9、Core2Duo CPU E8500、メモリ 4GB) では、KEN_ALL.CSV を gawk で {print NR} で、引数にファイル名を渡すパターンと、標準入力で順次入力するパターンで検証してみましたが、正常に動作しました。
開発のときに、検証として 10 年前ぐらいのノート (セレロン + メモリ 512) XP マシンで 100MB ぐらいのデータを標準入力するテストもクリアしてたので安心しきっていました。
お使いのパソコンの OS、スペック、gawk のバージョンと、外部ツールに設定された内容を教えていただけると開発の参考になりますので、よろしくお願いいたします。
横から失礼します(AWKには時々お世話になってまして興味深かったので、つい‥。お目汚しすみません)
PC1) C2D CPU E7300、メモリ 8GB(4GB RAMDISKに2GB仮想割当) Win7 HP
PC2) Ci7 CPU 860、 メモリ 8GB(4GB RAMDISKに2GB仮想割当) Win7 Pro
外部ツール設定
コマンド:C:\CMD\gawk.exe または gawk316.exe
引数: "{print NR}" KEN_ALL.csv
作業フォルダ:R:\ RAMDISK
アウトプットバーを使用する[チェック]
出力:新規文書の作成
結果
PC1) 数回引っかかる感じ。
アウトプットバーに、KEN_ALL 124228 の途中 64,208(数回試すと一定しない)で表示止まった後、
(このとき、キャプションは、応答なし)
急に124228 まで表示され、新規文書も表示されました。
連続実行しても、応答なしになった後で、124228 まで表示され、新規文書も表示されました。
PC2) アウトプットバー62***で表示止まった後、急に124228 まで表示され、新規文書も表示されました。
連続実行すると、止まることなくスムースに表示されました。
GNU Awk 3.1.6(Jul 3 2008) / GNU Awk 4.1.0, API: 1.0 どちらでも同様の現象でした。
>お使いのパソコンの OS、スペック、gawk のバージョンと、外部ツールに設定された内容を教えていただけると開発の参考になりますので、よろしくお願いいたします。
下記で、今後の開発の参考になりますでしょうか。
通りすがり^2さんもレスありがとうございます。
--------------------------------
【使用パソコンの仕様】
プロセッサ Intel(R) Core(TM) i3-5005U CPU @2.00GHz 2.00GHz
実装RAM 4.00GB
システムの種類 64ビット オペレーティングシステム
Windowsの使用 Windows10Home
バージョン 1803
インストール日 2018/05/10
製造元 富士通株式会社
【利用gawk】
下記からダウンロードした
https://sourceforge.net/projects/ezwinports/files/
gawk-4.2.1-w32-bin.zipに入っているgawk.exeです。
【テストしたcsvファイル】
1. 13TOKYO.CSV
2. KEN_ALL.CSV
【Mery外部ツールへの設定方法】
《タイトル》
GawkScriptTest
《コマンド》
C:\gnu\bin\gawk.exe
《引数》
-f C:\Tool\Mery\MeryTool\printNR.awk "$(Path)"
《作業フォルダ》
C:\gnu\bin
※取りあえず、(今日は)こうしてみました。
※全てフルパス設定しているので、作業フォルダはあまり関係ないかもしれません。(dll絡みなどなければ)
--------------------------------
* ファイルを保存するにチェックを入れました。
* アウトプットバーを使用するにチェックを入れました。
* 終了時に閉じるにチェックを入れました。
* 入力 無し
* EOFを追加にチェックを入れました。
(今回のケースだとチェックしてもしなくとも、変わらない気がしています。)
* 出力 新規文書の作成
* エンコード 日本語(シフトJIS)
--------------------------------
《printNR.awkの記述内容》
{print NR}
※Meryの行番号と{print NR}の出力数値が各行一致しなければなりませんから、拾い切れないとすぐわかります。
--------------------------------
《動作結果》
1. 13TOKYO.CSV
特に問題ありません。
2. KEN_ALL.CSV
何度か実行してみて、下記の3つのケースがあることに気が付きました。
* 特に問題無く書き出すケース
* 途中「応答なし」になっても、きちんと標準出力を拾っているケース
* 途中「応答なし」になって、標準出力が拾いきれないケース
昨日は、途中「応答なし」になって、標準出力が拾いきれないケースが多かったような気がしますが、今日は、途中「応答なし」になっても、きちんと標準出力を拾っているケースが多いようです。
(あまりやっていると、なんだかよくわからなくなってきました。)
(だったら、今のままで良いというのが、結論かも?)
すみません、ただのおせっかいです。(^^;
64bitOS + 64bit版な環境は、今は仮想マシンしかないのですが、試してみました。
Win7 Pro SP1
Xeon CPU E5-2420
メモリ 2.00GB
Mery (x64) Version.2.6.9
外部ツールのコマンド:C:\CMD\gawk4\gawk.exe
外部ツールの引数:-f C:\CMD\TEST.awk "$(Path)"
ファイルを保存する、アウトプットバーを使用する、終了時に閉じる、EOF追加:チェックオン
出力:新規文書
エンコード:日本語シフトJIS
gawk --version : GNU Awk 4.2.1, API: 2.0 (GNU MPFR 3.1.0-p8, GNU MP 5.0.2) ↑URLと同じ
"$(Path)"とあるので、KEN_ALL を読み込んだ状態で実行しました。
結果:応答なしにならず、新規文書に表示されましたが、行番号と NRとが不一致でした
行番号:NR
65338:65338
65339:65339
65340:2
65341:66023
65342:66024
123546:124228
なお、同環境&同設定で、gawk 4.1.0 (以前 www.klabaster.com/freeware.htm#dl からゲット)
や gawk316では、この現象は再現しませんでした。
別バージョンの gawk を一度ためされては如何でしょうか?
通りすがり^2さんが書かれた
>別バージョンの gawk を一度ためされては如何でしょうか?
について、下記の結果でした。
あくまで私の場合ですので、他の方の結果と合わない点については、何とも言えません。
今回は、「gawkm115.zipの中にあるgawk.exeをjgawk.exeとリネームしたもの」でテストしました。
今回のテスト中、「応答なし」になる事は無かったのですが、それでも何回かに1度Meryの行番号とNRが合わなくなることがありました。
※尚、もしかすると(今日は?)gawkm115.zipを新規でダウンロード出来ないかもしれません。
下記のような特徴があります。
概ね29000行を超えてからの不具合のようですので、実用上はあまり問題無いように思います。
【不具合1】
Mery行番号 NR出力
31888 31888 ←正常出力の最後の行
31889 313132572 ←突然変な数値を書き出す。
31890 32573 ←その後Mery行番号と合わなくなる。
31891 32574 ←その次の行
31892 32575 ←その次の行
【不具合2】
Mery行番号 NR出力
30523 30523 ←正常出力の最後の行
30524 6 ←突然変な数値を書き出す。
30525 31207 ←その後Mery行番号と合わなくなる。
30526 31208 ←その次の行
30527 31209 ←その次の行
【不具合3】
Mery行番号 NR出力
31205 31205 ←正常出力の最後の行
31206 31203120889 ←突然変な数値を書き出す。
31207 31890 ←その後Mery行番号と合わなくなる。
31208 31891 ←その次の行
31209 31892 ←その次の行
【不具合4】
Mery行番号 NR出力
29840 29840 ←正常出力の最後の行
29841 292930524 ←突然変な数値を書き出す。
29842 30525 ←その後Mery行番号と合わなくなる。
29843 30526 ←その次の行
29844 30527 ←その次の行
ふと、思いました。
gawkの不具合若しくは仕様であり、Meryは完璧だったら、Kuroさんに大変なご迷惑をおかけしたことになります。
なので、本件は忘れた方が、良いかも知れません。
申し訳ありませんでした。
>> いっち さん、通りすがり^2 さん
動作検証のご協力ありがとうございます。
いただいた情報をもとに、私のほうでも検証してみました。
まず、「応答なし」になるのは Windows 7 以降の OS の仕様で、アプリケーションが処理で手一杯で一定時間マウス操作などに応答しなかったら、処理中であるにもかかわらず「応答なし」という状態にされてしまいます。でも、裏ではちゃんと処理が動いていますので放っておけばいつかは処理が終わります。
それぞれ 10 回ずつ試してみました。
gawk は、いっちさんが貼ってくれた URL のバージョンを使用しました。
gawk --version : GNU Awk 4.2.1, API: 2.0 (GNU MPFR 3.1.0-p8, GNU MP 5.0.2)
Windows 10 64 ビット、Core2Duo E8500 3.16Ghz x 2、RAM 4GB
→ 問題なし
Windows 10 32 ビット、Core2Duo P8400 2.26Ghz x 2、RAM 3GB
→ 問題なし
Windows 10 32 ビット、Core2Duo P8400 (BIOS で 800Mhz に固定)、RAM 3GB
→ 問題なし
Windows 7 64 ビット、Pentium G6950 2.8Ghz x 2、RAM 5GB
→ 問題なし
Windows 8.1 64 ビット、i3-4030U 1.90Ghz x 2、RAM 4GB
→ 現象再現!
CPU が i3-4030U のノート PC で、AC アダプターを抜いてバッテリー駆動の場合だと現象が再現できました。AC アダプターをつないでいたら発生しませんでしたので、省電力モードとかで CPU の処理速度がリアルタイムで変動すると発生するっぽい?
> gawkの不具合若しくは仕様であり、Meryは完璧だったら、Kuroさんに大変なご迷惑をおかけしたことになります。
> なので、本件は忘れた方が、良いかも知れません。
gawk をコマンドラインから直接たたくと問題ないようですので、Mery 側の問題だと思います。データ量が大きいからと言っても、少しでも取りこぼしがある以上、機能自体の信頼性も怪しくなりますし、もしかしたら間違っているかもしれない機能なんて使い物になりませんからね… ^^;
詳細な情報、ありがとうございました。
ご協力のおかげで現象の再現方法がわかりましたので、対策を調べてみようと思います。
作業中、おもむろにマウスを握り締め自動保存さんより先に保存ボタンを押す。
気が付くとそんな遊び(奇行)を繰り返してました……。うん、疲れてるね。
それに比べ、自動保存さんは元気に動いてます。遅延0分ごとでも負荷を感じなくていい感じです。その他の機能は追い追い触ってみます。
ひとまず新機能の開発完了おめでとうございます。
>> 774 さん
(コメントが多いのと少し時間経っているので、見ているといいのですが……)
もしかして、「ファイル名が長いと履歴ではパスが省略され区別がつかない」ということでしょうか? それならファイル履歴の個別消去の代案として、マウスオーバーでフルパスを表示する機能をお願いするというのはどうでしょうか。(ピン止め機能は同じくコンポーネントの問題で却下っぽいので……)
他のエディタもそうですが、この辺の機能は外部のファイラにおまかせが半ばデフォなところがあるので、どれも機能的には一応付いてるだけな印象がありますね。私もメニューが横に伸びるのが嫌なので履歴は使ってません。
もしファイラを使っていないのでしたら、この問題をファイルへのアクセス効率の問題として捉えて、流れるかもしれない履歴にすがり付くのをやめ、ファイラの導入などで履歴に頼らない作業方法を模索するのもありかと思います。
ほぼ同一のファイル絡みのトラブルは避けたいでしょうから、上手く解決されるといいですね。
>> 玄米茶 さん
コメントありがとうございます。
自動保存さん、ちゃんと動いてくれているようで安心しました。
遅延 0 分に設定した場合だけは別ロジックを組んであって、文字入力中だと、文字入力が終わるまでまってから自動保存が発動する仕組みになっているので負荷を感じることは少ないと思います ^^ (ファイルが大きいと仕方ないですが)
> (ピン止め機能は同じくコンポーネントの問題で却下っぽいので……)
却下というわけではありませんが、開発ツールの標準機能では対応できないので、そういった機能を持ったメニュー部品の開発から始めないといけないので非常に時間と労力がかかります ^^; (作り方、分からないんですけどね…)
確かに、ファイルの履歴管理はエクスプローラーやファイラーの機能といったイメージが強いですね。
> マウスオーバーでフルパスを表示する機能をお願いするというのはどうでしょうか。
そういうことでしたら、マウスオーバーでステータスバーにフルパス表示ぐらいなら簡単に作れると思いますが、いかがでしょうかね。
私は Mery のアイコンツールバーに秀〇ファイラーclassicを貼り付けています。
(ツール⇒外部ツールから設定)
これだと、全角40字程度の長いファイル名でも、「ツールチップ機能」でフルパス
表示が見れます。デフォルトフォルダの設定も簡単で、テキスト、一太郎文書などを
設定しています。
ファイル履歴はファイル名だけでも良い気がしますが、反対意見が出るでしょうから
このままで良いです。ファイル履歴の横幅はファイル←→ヘルプの幅くらいですので
気になりません。
>> 玄米茶さん、Kuroさん、tisiさん
ファイルの読み込み履歴についてのアイデア、ありがとうございます。
> もしかして、「ファイル名が長いと履歴ではパスが省略され区別がつかない」ということでしょうか?
そういうケースもあるかもしれませんが、
単に不注意で、ドライブとかパスまでしっかり見ずにファイル名だけで早とちりしてしまうと言うことです。
この件については、タスクバーの「最近使ったもの」を教えていただき、それで満足しています。
>> マウスオーバーでフルパスを表示する機能をお願いするというのはどうでしょうか。
> そういうことでしたら、マウスオーバーでステータスバーにフルパス表示ぐらいなら簡単に作れると思いますが、いかがでしょうかね。
あれば便利そうですが、どうしても欲しいと言う訳でもありません^^;。
他の人からも要望があればそのときにという感じで良いのでは?と思います。
別件で、今更ですが editor.ExecuteCommandByID なんていうものがあるのですね。
これの説明はどこかに載せてありますか?
フォーラムの「定数」というところは見つけましたが、ID が 2136、2137 はなかったもので。
あと、標準ツールバーは2段にはできないですか?
と言うか「標準バー2」というようなものを追加することは難しいでしょうか?
ツールバーを主として使っている人は多くないのかな?
>> 774 さん
ご返信ありがとうございます。
> ドライブとかパスまでしっかり見ずにファイル名だけで早とちり
そういうことでしたか。あとは、バックアップファイルをフォルダではなく、ファイルと同じ場所に保存する設定にすると、ファイル名の頭に「Backup-」が付いてくれるので、少しはわかりやすくなるかもしれませんね。
ステータスバーへのフルパス表示は、どっちにしてもステータスバーが空っぽではもったいないので、フルパス表示するようにしておこうと思います。
> これの説明はどこかに載せてありますか?
ExecuteCommandByID は隠し機能なので説明などは掲載していません。この機能は Mery の内部コマンドを直接呼び出すだけなので、すべてのコマンドが正常に動作するという保証がなく、ある程度 Mery の仕様に詳しい方や複雑なマクロやプラグインを開発されている方は、自己責任で使ってくださいねって感じです。
ID は、Mery のプラグイン開発キットの中に書いてあります。
https://github.com/haijinboys/mery-plugin-sdk/blob/master/SDK/C/Basic/plugin.h
MEID_xxxx (機能名) に対応する数値が ExecuteCommandByID で使えます。
> あと、標準ツールバーは2段にはできないですか?
ツールバーを二段にする機能は搭載していません。もちろん技術的には可能ですが、そういったご要望は今まで一度もなかったので、需要は少ないのかと思います ^^;
はじめまして。某掲示板にてマテリアルデザインっぽいカスタムアイコンを乱造している者です。
Mery歴は1年ほど、なんでもかんでもテキストファイルでメモをするのが習慣になりました :)
「マクロの記録」で編集メニュー >> 選択範囲の変換 >> 「単語の最初の文字を大文字に変換」をマクロ化したのですが
> document.selection.ChangeCase(meCaseCapitalize);
実行するとエラー 'meCaseCapitalize' is undefined になってしまいます。(大文字に変換や半角に変換を記録したマクロは正常に機能しました)
どう直したらよいのでしょうか?
編集モードとアウトラインを活用するために正規表現と悪戦苦闘している最中で、マクロはまだまだハードルが高くて…
> > 標準ツールバーは2段にはできないですか?
> 需要は少ないのかと思います ^^;
わたしも2段目のツールバー欲しいです。
折り返しで表示ではなく (←ウインドウサイズによって2段目の内容・配置が変わってしまう)
ユーザー設定の追加ツールバー (←Officeソフトのような) がよいです。
あわせて、マクロツールバーのラベル(#title)の表示のON/OFF切り替えもお願いします。
「ラベルを表示」、「ラベルを非表示」、「カスタムアイコンのないものだけラベルを表示」、「#tooltipで表示」みたいに選択肢があるとうれしいですね。
>> マウスオーバーでフルパスを表示する機能をお願いするというのはどうでしょうか。
> そういうことでしたら、マウスオーバーでステータスバーにフルパス表示ぐらいなら簡単に作れると思いますが、いかがでしょうかね。
ウィンドウサイズと履歴数によっては、メニューがステータスバーにかぶってしまうのではないでしょうか。
フルパス表示はあると便利ですので、実装するのでしたら、マウスオーバーでポップアップヒント(ツールチップ)にフルパスを表示というのも追加でご検討をお願いします。
ご回答、ありがとうございます。
前述の件、了解しました。
ツールバーについては、使い込んでいる人はショートカットを活用していそうで確かに需要は少なそうな気がします。
>> ぽい さん
はじめまして、こんにちは。
Mery のご愛用ありがとうございます。
某掲示板、拝見してきました。おー!ハイクオリティなカスタムアイコンですね、素晴らしいです。
ちなみに、meryres.dll にアイコンを埋め込んでいるのは購入したアイコンのライセンスが、コンパイルされたリソースへの埋め込みしか許可されていないためですね。
その関係で Mery Ver 2.6.0 以降はソフトウェア使用許諾書 (eula) で本体および同梱物の解析や抽出、改変行為、またはそれらを試みる行為も禁止事項になってますのでご注意ください。
> document.selection.ChangeCase(meCaseCapitalize);
確認してみましたところ、そもそも meCaseCapitalize という機能自体、実装されていませんでした。作り忘れですね… ^^; 次のバージョンでは実装しておこうと思います。
> ユーザー設定の追加ツールバー (←Officeソフトのような) がよいです。
Office はちょっと求めすぎではないでしょうか… ^^;
> あわせて、マクロツールバーのラベル(#title)の表示のON/OFF切り替えもお願いします。
マクロバーは Windows のツールバーの仕様上の都合 (ラベル表示とラベル非表示混在不可) により、ラベル表示が前提の作りになっていますのでご了承ください。
> フルパス表示はあると便利ですので、実装するのでしたら、マウスオーバーでポップアップヒント(ツールチップ)にフルパスを表示というのも追加でご検討をお願いします。
こちらも Windows の仕様上、メニューの上にツールチップを表示させることはできません。メニューの場合のヒント表示はステータスバーと決められていますのでご了承ください。
>> 774 さん
ご返信ありがとうございます。
そもそもツールバーを数本用意するほどボタンの数がありませんし、今度はこの機能のボタンも増やしてくれとなってくると、私のポケットマニーが持ちません ^^;
ツールバー 1 本で厳選された機能のみを美しく並べて、シンプルなデザインを楽しみましょう!(w
「単語の最初の文字を大文字に変換をマクロ化」についてですが、上のやりとりにあった plugin.h から
> Editor.ExecuteCommandByID(2116);
としたら機能してくれました。
選択範囲がなければ文書全体(または行全体)を変換するような条件分けを指定できるようになるのは、まだまだ先の話になりそうです。
> > ユーザー設定の追加ツールバー (←Officeソフトのような) がよいです。
> Office はちょっと求めすぎではないでしょうか… ^^;
フロート可能な… とかいうことではなく、デフォルトツールバーと同様に利用可能な全ての機能/アイコンを任意に追加できるといいなぁ… という意味でしたが、たとえがよくなかったですね :)
> ツールバー 1 本で厳選された機能のみを美しく並べて、シンプルなデザインを楽しみましょう!(w
テキストエディタ入門者なので気ボード操作(ショートカットキー)だけでパチパチ作業するに至らないのですが、分不相応に欲張りなのでマクロライブラリから(使い方を理解できる範囲で)せっせと機能を追加しつつ、マウスでポチっとアクセスしやすいようにアイコンをこさえている次第です。
欲張りすぎてツールバーに収まりきらないから大半がムダになっています :(
アイコン制作において、はMeryのマテリアルアイコンを参考にしながら、Googleのマテリアルデザイン公式サイトからダウンロードしたリソースを加工しています。16pxと32pxサイズにいたっては、ほとんどドット絵作業です :)
「マテリアルデザインっぽいアイコン」の配布については、毎回7日かぎりにしていますが、問題があるようでしたら中止します。
ほか、メニュー、ツールバーの仕様や使用許諾の件も諒解いたしました。
このたびは丁寧なご説明をいただき、ありがとうございました。
>> ぽい さん
ご返信ありがとうございます。
> Editor.ExecuteCommandByID(2116);
確かに、この書き方でも同様の処理は可能ですね。meCaseCapitalize のほうは、一応いま実装したところで、次のバージョンは今日か明日の夜ぐらいにはリリースしたいなと思っています。
> 選択範囲がなければ文書全体(または行全体)を変換するような条件分け
そうですねー、条件判定や、その他にもちょっと面白いことをやろうと思ったら JavaScript の知識が必要ですが、Mery のマクロなら JavaScript といっても入門編ぐらいで大丈夫だと思います。
> デフォルトツールバーと同様に利用可能な全ての機能/アイコンを任意に追加できるといいなぁ… という意味でしたが、たとえがよくなかったですね
なるほど、そういうことでしたか。Office のリボンメニューのことかと思いました ^^;
確かにすべての機能を自由にツールバーに追加できれば理想的ではありますが、アイコン素材がね…。
> 欲張りすぎてツールバーに収まりきらないから大半がムダになっています
カスタマイズしていくと愛着がわいてきて楽しくなりますよね。一応、プラグインからだと自由にツールバーを追加することができます。機能呼び出しのボタンが並んだツールバーはもちろん、検索ツールバーなどをいくつでも追加できます。
開発ツールの Delphi (Mery を開発しているツールです) が、つい先日、フル機能使えるやつが無料化されましたので、プラグインの開発に挑戦されてみるのも面白いかもしれません。
> 16pxと32pxサイズにいたっては、ほとんどドット絵作業です
さすがです。私はそこまでの技術がなくて、以前に配布したマテリアルアイコンの 16 や 32 サイズはただ縮小しただけです (*ノωノ)
> 毎回7日かぎりにしていますが、問題があるようでしたら中止します。
これは Google のマテリアルデザインアイコンのライセンス (Apache License Version 2.0) さえ守っておけば大丈夫だと思います。Apache License Version 2.0 は README などに著作表示と「Apache License Version 2.0 だよ」っていう記述が必要らしいですが、Google マテリアルデザインアイコンのライセンスは「We'd love attribution in your app's about screen, but it's not required.」と書いてあるので、別に書かなくても良いのかも?
私は不安なので著作表示と Apache License Version 2.0 表記と、本家へのリンクを README に入れてます。
アイコン素材が増えるとマクロを作成する方にとっても有益だと思いますので、どんどん作っていただきたいです ^^
kuroさま、皆様、このハンドルではご無沙汰しております。
>meCaseCapitalize のほうは、一応いま実装したところ
ほえ!自力で実装していました。
https://img.atwikiimg.com/www35.atwiki.jp/little_lamb/pub/for_mery2/WordCase.js
ぽいさま、上のマクロは選択範囲がない場合はカーソル位置の単語を自動選択しています。条件振り分けのご参考になれば幸いです。
Mery、愛用させていただいております。
素晴らしいソフトを作ってくださり、そしてフリーで提供してくださり、ありがとうございます。
そして、開発、ごくろうさまです。夢にまで出るほどの苦労をなされたようで、頭が下がります。
ありがとう。
>> papagoat さん
コメントありがとうございます。
お久しぶりですね。って、別ハンドルネームあるの!? ^^;
meCaseCapitalize は完全に実装漏れでしたね…。Ver 2.6.10 で実装しておきました。
>> 感謝 さん
ご愛用と応援メッセージありがとうございます。
そうそう、夢に出て苦しみました。プログラミングの趣味で作ってるだけのフリーソフトなのに…。でも、案外そういうときほどシンプルなロジックを思いついて「おっ!」ってなるんです。それがプログラミングの楽しいところでもありますね。
更新おつかれさまです。
> プラグインの開発に挑戦されてみるのも面白いかもしれません。
… えっ!? そんなこと言われましても得手不得手とでも申しましょうか…。遠い未来の話になってしまいますね :(
> 条件判定
if (Document.Selection.IsEmpty) Document.Selection.SelectLine();
ほかのマクロを見て ↑コレ↑ を追加してみたら選択範囲がなければ行全体を変換するようにもなりました :)
「大文字に変換」や「小文字に変換」も同様に書きかえたところだったのですが…
> papagoat さん
ありがとうございます。すごい! (なにが書いてあるのか読みとれず申し訳ないですが)
参考にできるようになるまで先は長いかもしれませんが、追い追いちゃんと読みとれるようになりたいとおもいます。
また前に作ったアイコンがムダになっちゃいましたが、さっそくアイコンを新調しました XD
2.6.7をWindows10 1803で利用させていただいております。
既出かもしれませんが、絵文字を表示させたとき、https://forest.watch.impress.co.jp/docs/news/1135468.html
に説明しているような合字を表示させると、合成されて表示されない
ようです。
特に困っておりませんが、一応ご報告させていただきました。
>> poi さん
ご愛用ありがとうございます。
絵文字ですが、カラー絵文字を使用するには設定の変更が必要です。
[ツール] → [オプション] で [表示] タブを開いて、右下のほうにある [詳細] ボタンから [DirectWrite を有効にする] にチェックをいれ、[カラーフォントを有効にする] にもチェックを入れます。
これでカラー絵文字が表示できるようになると思います。(ここまでは設定済み?)
貼っていただいたリンク (窓の杜の記事ですね) は Windows 10 Insider Preview」Build 17723 の新機能ということなので、現時点 (Windows10 1803) では対応していないようですね。
もしかして Windows 10 Insider Preview で試していただいて表示できないということでしょうか?それならちょっとこちらも環境を用意して確認してみます。
通常の絵文字の合字につきましては、Mery 2.6.7 で試してみたところ一応表示はされているようです。
http://www.atmarkit.co.jp/ait/articles/1604/27/news051.html
↑ ここに書かれている絵文字の合字ですが、ちゃんと肌の色が変わりました。(若干、絵文字のあとになんか変なスペースが入っちゃいましたけど… ^^;)
Kuroさま
ご返答ありがとうございます。
例えば、猫が宇宙ヘルメット被っているのは合成されないようです。
確かに肌の色は表示できますね。
>> poi さん
ご返信ありがとうございます。
こちらでもようやく Windows 10 Insider Preview の環境が用意できたので検証してみました。
確かに宇宙猫の絵文字は表示できませんでした。
調査してみましたところ、Mery Ver 2.4.7 で DirectWrite における Unicode 制御文字の描画不良の対応のために「U+200C ~ U+200F」を無視するように修正していたことが原因でした。(参考フォーラム: https://www.haijin-boys.com/discussions/2803)
宇宙猫は「猫 + U+200D + ロケット」の組み合わせなのですが、現在のところ Mery は U+200D を無視してしまうので正常に描画できなくなっているようです。
当時は、U+200D のようなゼロ幅接合子が含まれていると DirectWrite でうまく描画できないことがあったための応急処置でしたが、絵文字で使用されるようになっていたとは! ^^;
次のバージョンでは修正しておきますね。
追伸:そして、宇宙猫って Insider Preview 版じゃなくても描画できたのですね。窓の杜さんの記事でなんか誤解してしまってました。
すみません、報告が中途半端でPreview環境の用意という
お手間を取らせてしまったようで。。。
DirectWriteとUnicodeはなかなかの曲者のようですね。
応援しています!
>> poi さん
いいえー、私が勝手に勘違いしていただけなので… ^^;
どうせなので Insider Preview でも Mery の動作検証をしてみようと思います。
> DirectWriteとUnicodeはなかなかの曲者のようですね。
そうなんですよね。こればっかりは完璧な対応というものがなくて、うまく描画できない文字があると一文字ずつ個別対応していくしかないのでツライところです。
応援ありがとうございます。ほかにもうまく描画できない文字があると思いますが、できる範囲で対応していきたいと思います。またお気づきの点がございましたら教えていただけると助かります。