みなさん、ベータ検証のご協力ありがとうございます。
本バージョンでは、ご報告いただいた不具合の修正およびいくつかのご要望の対応、さらに新機能として、より多くの絵文字を扱えるようになりました。
テキストエディター「Mery」は以前からカラー絵文字に対応していたのですが、コメントで「Ninja Cat」(マイクロソフトのオリジナル絵文字) が表示できないというご報告をいただき、それをきっかけに調査を始めましたところ、恐るべきユニコード絵文字の世界に触れてしまうことになりました。
世界の文字と記号の大図鑑 ー Unicode 6.0の全グリフ
研究社
テキストエディター泣かせのユニコード。見るだけなら美しい。
Amazon で探す
楽天市場で探す
恐るべきユニコード絵文字の世界
例えば、「Ninja Cat」という絵文字。これは「猫」の絵文字と「上半身シルエット」の絵文字を Zero Width Joiner (以下 ZWJ、ゼロ幅接合子) を使ってくっつけることで表現されます。
コードポイントは "U+1F431" (猫) + "U+200D" (ゼロ幅接合子) + "U+1F464" (上半身シルエット) というかたちです。
絵文字の接合は 2 つ以上でも可能となっており、例えば "U+1F468" (男性) + "U+200D" + "U+1F469" (女性) + "U+200D" + "U+1F467" (少女) + "U+200D" + "U+1F466" (少年) で家族になっちゃったりもします。
絵文字の表現方法は ZWJ による接合以外にも、Emoji_Modifier (現在のところ U+1F3FB ~ U+1F3FF のみ) なんていうものもあります。
そうそう、これ便利なんだよなぁ。子供部屋の床に敷き詰めるジョイントマット。ではなく!肌の色を表現するためのもので、例えば "U+1F466" (少年) と "U+1F3FB" (明るい肌色) を並べて書くと…。
都会のもやしっ子になったり。
Emoji_Modifier と ZWJ を同時に使うことで、例えば "U+F3C3" (走る人) + "U+1F3FB" (明るい肌色) + "U+200D" (ゼロ幅接合子) + "U+2640" (女性マーク) + "U+FE0F" (異体字セレクタ) を並べて書くと…。
レトロゲームの 2P カラーみたいになったりします。
余談ですがツイッターでときどき絵文字のあとに「♀」や「♂」のついたツイートを見かけることってありませんか?
これは性別を知らせようとしているわけではなく、OS が古いなどの理由でフォントが接合された絵文字を描画できず、絵文字から「♀」や「♂」が外れちゃってるわけですね。
補足ですが "U+FE0E" と "U+FE0F" は絵文字用の異体字セレクタというもので、簡単に言うと、絵文字の後ろに "U+FE0E" をつけることでテキストとして、テキストの後ろに "U+FE0F" をつけることで絵文字として描画できる仕組みです。(もっと細かい仕様がありますが、ここでは割愛させていただきます)
しかし最も恐ろしいのは、ZWJ や Emoji_Modifier を使えば必ず接合されるというわけではなく、もとになる絵文字によって接合されたりされなかったり、絵文字の並び順によって接合されたりされなかったりするということです。
これらに厳密に対応するためにはユニコード絵文字 (Emoji) の仕様 "Unicode® Standard Annex #29" を読む必要があり、心が折れます。
ここで、世界的に有名なブラウザ「Google Chrome」の実装を見てみますと、接合された絵文字の横書きは大丈夫ですが、縦書きは対応していないようです。(Google Chrome バージョン: 68.0.3440.106)
国産テキストエディターでは横書きでも接合された絵文字は扱えないものが多いようです。(描画はできても位置がずれたり、そもそも描画できなかったり…)
Google 先生ですらまだきちんと対応していないという恐るべきユニコード絵文字の世界を知り、「そんな…あんまりだよ、こんなのってないよ!」と絶望のどん底に叩き落されたわけです。
新機能
イントロダクションが長くなってしまいましたが、心が折れた人が作ったテキストエディター「Mery」の新機能をご紹介します。
上記で述べたように、接合された絵文字に対応している国産テキストエディターは少ないようで、その理由がユニコード絵文字の仕様が複雑なためなのか、カラー描画に DirectWrite が必要になるためなのか、そもそも需要がないためなのか分かりませんが、Mery では対応してみました。
さらに、次期バージョンの Windows 10 で搭載される予定の Unicode 11.0 に含まれる絵文字 (髪の色など) も Insider Preview 版で動作確認しました。
より多くの絵文字に対応しました
絵文字を使った可愛いメールの下書きや、絵文字を使ったクールなツイートの下書き、絵文字を多用した残念なブログの下書きなど、様々な用途で絵文字を気軽に利用できるようになりました。
もちろん縦書き編集にも対応しています。
Mery は、デフォルトの状態でも白黒の絵文字を描画することはできますが、カラーの絵文字を描画するためには DirectWrite という機能を有効にする必要があります。
カラー絵文字の設定方法
[ツール] メニューから [オプション] をクリックしてオプション画面を開き、[表示] タブをクリックします。
[表示] タブのページの右下付近にある [詳細 (D) ...] をクリックして詳細画面を開きます。
詳細画面で [DirectWrite を有効にする (D)] のチェックボックスをクリックして有効にします。
[カラーフォントを有効にする (O)] のチェックボックスをクリックして有効にします。
設定が終わったら [OK] ボタンをクリックして詳細画面およびオプション画面を閉じます。
カラー絵文字の入力方法
カラー絵文字の入力方法はいくつかありますが、Windows 10 の場合の入力方法を 2 つご紹介します。
普通に変換する
Windows 10 で IME をお使いであれば普通に変換すると、候補として絵文字が出てきます。
例えば「かお」で変換すると顔の絵文字が、「らーめん」で変換するとラーメンの絵文字が候補として表示されます。
しかしこの方法ですと、あらかじめそういった絵文字があるということを知っておかなければ変換することができません。
タッチキーボードを使う
Windows 10 にはタッチキーボードという機能があり、それを使うことで一覧から選択して簡単に絵文字を入力できます。
タスクトレイ (タスクバーの右端) にタッチキーボードのアイコン が表示されていない場合は、タスクバーを右クリックして [タッチキーボードボタンを表示] にチェックを入れます。
これでタスクトレイにタッチキーボードのアイコンが表示されるようになります。
テキストエディターなどで絵文字を入力したい位置にカーソルを移動し、文字を入力できる状態にしておきます。
タスクトレイの中のタッチキーボードのアイコン をクリックするとタッチキーボードの画面が表示されます。
タッチキーボードの画面の下のほうにある顔のアイコン をクリックすると、絵文字の一覧が表示されます。
あとはお好きな絵文字を選んでクリックすると、テキストエディターに絵文字が入力されます。
タッチキーボードの下のほうにあるボタンで、絵文字のカテゴリを切り替えることもできます。
カラー絵文字の注意事項
フォントによっては一部の絵文字が正しく描画されないことがあります。
例えば、「MS ゴシック」を使用しているとして、通常、絵文字など「MS ゴシック」で描画できない文字は Windows が自動的に代わりのフォント (Segoe UI Emoji) を使用してくれますが、絵文字の中でも「♀」や「♂」のように一部の文字は「MS ゴシック」で描画できてしまうため、Segoe UI Emoji が使用されず接合されなくなってしまいます。
また、フォントにすでに絵文字 (Noto Emoji など) が組み込まれている場合も、そちらが優先されてしまいます。これらを回避し、より正確に絵文字を描画するためにはフォントの設定で「Segoe UI Emoji」を指定する必要があります。
こんな感じの、とっても可愛いユニコード絵文字。気になるあの子へのメッセージなんかにさりげなく入れておけば、「まぁ、素敵な殿方…!」なんつってね、20 年ぐらい時代が違いました。
多用するとウザがられます。これが最大の注意事項です。
行の右をすべて強調できるようになりました
[表示] メニューの [編集モード] から [編集モードの設定] の [プロパティ] 画面を開き、[強調] タブの中の項目に [行の右をすべて強調] を追加しました。
すぐ上にある項目の [行の右を強調] と何が違うの?と思われるかもしれませんね。
[行の右を強調] は文字がある部分にしか背景色をつけられませんでしたが、[行の右をすべて強調] は図のように、文字がない部分に対しても右端まですべて背景色をつけることができます。
文字の少ない行を目立たせたいときや、特定の行をより目立たせたいときなどに役立つのではないでしょうか。
更新内容
本バージョンではいくつかの不具合修正や改善および仕様変更が含まれています。現在、お使いのバージョンで問題がある場合はバージョンアップで改善されるかもしれません。
行間の設定をピクセル単位から 10 分の 1 行単位に仕様変更
人によってはビックリする仕様変更かもしれないので、一番最初にお知らせしておきます。
[ツール] メニューの [オプション] から [基本] タブの中の [行間] の部分ですが、従来はピクセル単位での指定となっていました。
本バージョンから、[行間] はピクセル単位ではなく、行の高さの 10 分の 1 単位となり、0 ~ 30 までの値を設定する形式になりました。
5 を指定すると 1 行の半分の行間、10 を指定すると 1 行と同じ高さの行間になります。
この仕様変更に伴い、従来はフォントサイズに応じて行間をピクセル単位で設定しなおす必要がありましたが、フォントサイズにかかわらず相対的に行間を設定できるようになりました。
仕様変更ですから、今まで設定されていた値はそのまま引き継がれます。デフォルト値 (2) で使用されているとそれほど影響はないかもしれませんが、単位が変わっていますので場合によっては行間が大きく変わってしまうこともあります。
お手数をおかけしますが、再度、設定しなおしてください。
ステータスバーに表示されている文字コード値をサロゲートペアに対応させた
ステータスバーに表示される文字コード値ですが、サロゲートペアでも正しくコードポイントを表示できるようになりました。
ファイルのエンコードがユニコードではない場合は従来通りの文字コード表示となります。
DirectWrite 有効時のサロゲートペアの文字幅の計算を改善
従来は DirectWrite 有効時のサロゲートペアの文字幅を DWRITE_TEXT_METRICS から取得していましたが、できるだけ DWRITE_GLYPH_METRICS から取得するようにしました。
"できるだけ" というのは、そもそもサロゲートペアのグリフが含まれていないフォントを使用した場合は DWRITE_GLYPH_METRICS では取得できないからです。
結合文字の文字幅の計算を改善
結合文字の扱いは非常に難しく、メモ帳には遠く及びませんが、結合文字の文字幅とベース文字の区切り方を改善しました。
かなり大幅な修正を行ったので、もしかすると以前のバグが再発することがあるかもしれません。
動作検証は行っていますが、お気づきの点などがございましたらご報告いただけると助かります。
半角空白 (U+0020) を含む結合文字を描画できるようにした
世の中には半角空白を含むことで結合文字のように描画される文字があるようで、Mery では半角空白は色付けや記号表示のためにそこで描画を分断していたため、どこかの国のなにかの文字が描画できなくなっていました。
当然のことですが、半角空白を [記号] 表示したり、背景色を設定したりすると描画が分断されるので描画できなくなるんですけどね。
縦書きで DirectWrite 有効時、行間の計算に DWRITE_FONT_METRICS の lineGap を使うようにした
GDI でフォントを描画するときの行間は、TEXTMETRIC (文字情報) の中に tmExternalLeading (行間の推奨値) というものがあり、行の高さとしては tmHeight (文字の高さ) と tmExternalLeading の合計になります。
DirectWrite でフォントを描画するときの行間は、DWRITE_FONT_METRICS (フォント情報) の中に lineGap (行の高さに追加する空白の推奨値) というものがあり、行の高さとしては ascent (アセント値) と descent (ディセント値) と lineGap の合計になります。
従来は縦書きで DirectWrite 有効時にも行間として tmExternalLeading を使用していましたが、本バージョンからは lineGap を使用するようにしました。
横書きのときは DirectWrite 有効時でも GDI と互換性を維持するため (というよりも、有名フォントで ascent や descent に変な値が入っているフォントがあるため)、GDI の TEXTMETRIC から取得した値 (tmHeight + tmExternalLeading) を使用しています。
プラグインイベント EVENT_CREATE と EVENT_CLOSE の仕様変更
HiWord (lParam) に Application.Handle を格納していましたが桁が溢れていたので仕様変更しました。
そもそも HiWord (lParam) に Application.Handle が入っているということを知ってる人は私しかいないはずなので影響は少ないと思います。
EVENT_CREATE と EVENT_CLOSE のときは OnEvents の hwnd に Application.Handle を格納するようにしましたので、Delphi でプラグインを開発するときに本体側と Application.Handle を合わせると親和性が高まります。
その他、ちょっとした隠し機能を追加
以前にコメント欄で話題になっていた「半ページ送り」なる機能を実装してみました。
正式にはどういう名前の機能なのか分かりませんが、PgDn キーやスクロールバーを使ってスクロールしたときに、最終行を上のほうまでスクロールできる仕組みです。
Mery.ini に直接書き込む必要があります。
[General] PageScroll=1
PageScroll の値はモードを指定します。0 がデフォルト、1 が半ページ、2 が全ページ (1 行残し) です。
イジワルで隠しているわけではなく、オプション画面が一杯で配置するスペースがないので、どうしてもオプション画面内に必要かどうかを検証したいと考えています。
その他
-
縦書きで DirectWrite 有効時の文字幅の計算を改善
→ 代替フォントが使用されたときの文字幅の計算を改善しました -
縦書きで DirectWrite 有効時、縦中横が切れないように改善
→ 横に並べたときに全角の幅を超えた場合でも描画できるようになりました - 縦書きで [全画面表示] かつ [ウィンドウの右端で折り返し] かつ [ルーラ] 非表示のときに右端でマウスドラッグによるスクロールが動作しなかったのを修正
- ウィンドウ分割のときサブエディターでマクロイベントの [スクロールしたとき] が動作していなかったのを修正
- ウィンドウ分割のときサブエディターで [ファイルから検索] の結果をダブルクリックしてもジャンプできなかったのを修正
- DirectWrite で U+007F, U+200B, U+2060 .. U+2064 の描画を修正
- 外部ツールの [アイコン] のパスを Mery.exe からの相対パスでいけるようにした
- プラグインメソッド Editor_GetLine の FLAG_GET_CRLF_BYTE フラグの動作を修正
- プラグインメソッド Editor_GetLines の動作を高速化
- Per-Monitor DPI 環境下での動作を修正
-
その他、細かい修正
→ DirectWrite の描画速度を少し高速化したり、リファクタリングしたり…
2018/09/03 更新
-
絵文字の描画位置を修正
→ 横書きのときに絵文字の位置がズレることがあったので修正しました - マーカーで正規表現を有効にしたときに文字色の [透明] 設定が反映されなかったのを修正
ダウンロード
Mery Ver 2.6.11 (32 ビット版) ZIP- 2,904,931 バイト 2018/09/03
- SHA256: 4b4112991e30c2acfa0d94604a285902578c880971d18c5513c0e494cd9ce091
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 2,474,841 バイト 2018/09/03
- SHA256: 2fc83d8421e30e0a41f1f8084f09134b0754ddd186aa2505fb34a39776f3ab33
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,576,899 バイト 2018/09/03
- SHA256: 8eeab8664b893781dfd1b7fbfaef34ce757c861cb2be153981d802b030a8bc6f
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
- 2,917,112 バイト 2018/09/03
- SHA256: dff6e4fa4848f0c3317080c707a5291de61bc20e4935037580841dbe062129f3
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
おわりに
ユニコード絵文字の「Emoji」ってその名の通り、日本発祥で世界に広まった文化なんですってね。私はケータイ時代から絵文字を使うのが苦手で「なんでこんなもん使わにゃならんの?」と、頑なに絵文字を使うことを拒んでいました。
女性からハートマークの絵文字が入ったメールを頂いたりすると、すぐに勘違いしてぬか喜びしてしまいますし。
ところで、当然のことながら Windows の標準的な部品はカラー絵文字に対応していません。
例えば [検索する文字列] の入力欄などに絵文字を入力すると白黒ですし、接合された絵文字も分離されてしまいます。
こんな感じで、[検索する文字列] は「女性」の絵文字、[置換後の文字列] は「男性」の絵文字を入力していますが、なかなか判別が難しいです。
ちなみに、これでこの家族を [置換] すると…。
この記事をきっかけにゼロ幅接合子を使ったユニコード絵文字に興味をもっていただけたなら幸いです。
最後になりましたが、開発支援・寄付にご協力くださったみなさん、当サイトの右端にあるドクペを送るから贈り物をしてくださったみなさん、応援コメントをくださったみなさん、ありがとうございます。
おかげさまで、テキストエディター「Mery」の新しいバージョンをリリースするまでモチベーションを維持することができました。心よりお礼を申し上げます。
Steins/Gate 0 - Part One [Blu-ray]
Funimation Prod
🍌まゆしぃの。
Amazon で探す
楽天市場で探す
おすすめ シュタインズ・ゲートゼロも見放題!Amazon プライムの無料体験登録はこちら。
半ページ送り? なる機能を使っています。最高です。どうもありがとうございました!
連投済みません。
選択しながら右側にスクロールすることも出来ました! 重ね重ねありがとうございます!
Bravo! 新機能が興味深いです。
タッチキーボードを無効にしていましたが、復活させようかな^^
記事の文章も面白くて最後まで読んじゃいますね~。
更新お疲れさまです&ありがとうございます。
> 外部ツールの[アイコン]のパスをMery.exeからの相対パスでいけるようにした。
相対パスがとおるようになってコピペがしやすくなりました。これで登録済みアイテムのプロパティからコピーするときに「OK」押しちゃってアイコンが化けちゃうミスもなくなります。ありがとうございました。
自分で作っておいてアレですがあのアイコンライブラリの名前が長くてコピペじゃないと入力しづらいのがいけないんでしょうし、ふつうはEXEの実行ファイルのフルパスとかから拾うでしょうから地味な部分ですよね。
> 編集モードの[強調文字列]に[行の右をすべて強調]を追加。
この機能は「表示設定の"コメント"」と「編集モードの構文タブの"行コメント"」とのかけあわせには対応していないようですね。「記号」タブにオプションを追加できそうな余地があるとおもうのですがいかがでしょう? :)
バージョンアップ作業、お疲れさまです。
インストーラ版を使っていますので、インストールする度にツールバーアイコンが標準のに戻ってしまいますが、
リソースライブラリ(meryres.dll)を読み取り専用にしておいても問題ないですよね?
お疲れ様です。
キーボードショートカットの設定で Pause/Break キーが入力できず、
Ctrl キーを押しながら入力すると Ctrl+Scroll Lock と表示されます。
これは意図した挙動でしょうか。
更新お疲れ様です。
よし、これでまったり使っていくぞっ!
毎回のごとく愛用しています。
こっそり見てますよ!
>行の右をすべて強調できるようになりました
これは、Mery.txt の
● はじめに
● 動作環境
● インストール
などの場合に利用させて頂く事にしました。
(正規表現で指定するようにしました。)
後、Markdown の見出し(#)にも良いみたいです。
>カラー絵文字
>多用するとウザがられます。これが最大の注意事項です。
テキストエディタで「カラーの表示」が出来るなんてすごいです!!
絵文字対応の件など、記事読ませて頂きました。
開発の方って、一般の者が思いもかけないところで
物凄い仕事されてるんですね。
ありがとうございます。
ゼロ幅接合子を使ったユニコード絵文字、面白かったです!ありがとうございました。
いろいろ考えるなぁと思ったけど、そもそもはアラビア文字などが前後の文字によって形を変えたりするためなんですね。文字ってすごく面白い。面白いこと教えていただきました。
でも、実装するのは大変そうですね。お疲れ様です。
ただ、絵文字って、相手がちゃんと見えているかどうか不安でなかなか使えなかったりしますよね。逆にこの変な文字なんだ?と思うこともありますし。
では、また、開発&こういう記事も、頑張ってください。
>> 和七郎 さん
コメントありがとうございます。
> 選択しながら右側にスクロール
動作のご確認ありがとうございました!無事、動作したようで安心しました。
今後とも応援よろしくお願いいたします。
>> エディタはSよりM さん
コメントありがとうございます。
新機能は、絵的にはけっこうインパクトがあるのですが、実用性としては「?」な感じもしますので、そう言っていただけると嬉しいです。
タッチキーボードで絵文字を入力する方法は絵文字対応の開発をしていて初めて知ったのですが、意外と簡単に使えるのでぜひお試しください ^^
>> ぽい さん
コメントありがとうございます。
> 相対パスがとおるようになってコピペがしやすくなりました。
動作のご確認ありがとうございました。絵文字機能の開発などに時間がかかってしまい、更新がけっこう遅くなってしまってすみませんでした ^^;
> この機能は「表示設定の"コメント"」と「編集モードの構文タブの"行コメント"」とのかけあわせには対応していないようですね。
そうですね。コメントのなかでは強調表示は有効になりません。残念ながら仕様上、一部の機能をのぞいて、複数の属性のかけあわせはできないんです。ご不便をおかけして申し訳ございませんが、仕様上の制限事項ということでご了承ください。
>> 名無し さん
コメントありがとうございます。
以前に特典で配布していたマテリアルアイコンですね。今のところあれ以来ツールバーアイコンの追加はないのでまだ使用できるとは思います。
でも、リソースライブラリ(meryres.dll)を読み取り専用にしてしまうと今後の更新でツールバーアイコンの追加が発生した場合に正常に動作しなくなる可能性がありますね。
>> Toru さん
コメントありがとうございます。
> Ctrl キーを押しながら入力すると Ctrl+Scroll Lock と表示されます。
> これは意図した挙動でしょうか。
これは私の意図ではなく、キーボードの仕様で、Pause/Break と CTRL + Scroll Lock は同じだそうです。(Mery に限らず他のソフトでも同じです)
また、Pause はキーを離すまでスキャンコードを送信しないので、このキーが押しっぱなしになっているかどうかをソフトウェアが知ることはできない、とのことです。(Wikipedia の「現代のキーボード」のセクションに書いてありました: https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AC%E3%83%BC%E3%82%AF%E3%82%AD%E3%83%BC)
>> 荒野炎神 さん
ご愛用ありがとうございます!
私も、まったり開発していきたいです ^^
今後とも応援、よろしくお願いいたします。
>> いっち さん
早速、機能を使ってくれてありがとうございます。
地味な機能ですがお役に立てれば幸いです。
> テキストエディタで「カラーの表示」が出来るなんてすごいです!!
そう言っていただけると嬉しいです!秀〇さんなどでもカラー絵文字の表示はできますが、まだ接合絵文字には対応されていないようですね。がんばりました!
絵文字の時代、来るかなぁ… (遠い目
>> ファイ太 さん
ちょっと長い記事でしたが最後まで読んでくださりありがとうございました。
私の場合はプログラミングの趣味でやっているだけなので、絵文字の開発のような新しい (そんなに新しいわけでもないですが) 技術に触れるのは楽しいですね。
(逆に、興味のない機能の開発は非常につらいですが… ^^;)
今後とも応援よろしくお願いいたします。
>> kapi さん
読んでくれてありがとうございました!そう言っていただけると嬉しいです。
ほんとユニコードって色んなことやってますね。知れば知るほどオィオィ…って感じです。
アラビア文字、形が変わるだけならまだなんとかなりそうですが、文字の方向 (キャレットの移動順) まで変わるんですからとてもじゃないけど対応できそうにありません… ^^;
> 絵文字って、相手がちゃんと見えているかどうか不安でなかなか使えなかったりしますよね。
そうですね。同じ絵文字でも機種によって違って見えたりしますし、そもそも表示できないっていう経験が結構ありますね。
最近ではこれらを統一する動きのようですが、Ninja Cat みたいな独自の絵文字を作っちゃったらまたおかしな方向に行きそうな気もします… ^^;
応援ありがとうございます、今後ともよろしくお願いいたします。
> 残念ながら仕様上、一部の機能をのぞいて、複数の属性のかけあわせはできないんです。
> 仕様上の制限事項ということでご了承ください。
了解いたしました。丁寧にご説明いただき、ありがとうございます。
つねづねユーザーの期待や要望ををうわまわるかたちで更新をかさねているのを見てると、つい「KuroさんのMeryにかぎってできないことなんてあるはずないよね!」という気がしまして…。 :)
あと表示設定がらみなんですが、表示設定の "マーカー(1)-(8)" の設定で文字色を "透明" に設定していても、「マーカーの設定」側で"正規表現"オプションを有効にしたばあい "透明" にならないようです。ご確認をおねがいします。
(すぐ上に「複数の属性のかけあわせ」とありますので、もしかして…)
もう1点、要望ですが表示設定のフォント装飾に「打ち消し線」の追加はできないでしょうか? 使い慣れているフォントが"スラッシュドゼロ"ではないのでゼロを見分ける方法の代替策に… という個人的願望です。マーカーの下線や太字、斜体などでは半角ゼロひとつひとつに付いてしまうと逆に目立ちすぎて全体が見づらくなってしまいがちでして(現状では背景色を透明にして波線で装飾しています)。よろしければご検討ください。
更新お疲れ様です!
絵文字は奥が深いのですねぇ…。ユニコードの規格団体はよく考えるなぁと思ってしまいました。
使う場面と相手に恵まれず (泣) 、なかなか自分は使うことがないのが残念ですが😂
ところで、この絵文字の表示はプロポーショナルフォントを想定したものですか?というのも、Ricty を始めとした固定幅のフォントで表示すると、絵文字が隣接する文字に食い込むような形で表示されます。
この幅が全角文字と同じ幅になればより良いですが、絵文字では別のフォントが表示されているとのことで、この辺の調整は難しそうですね…。
>> ぽい さん
ご報告ありがとうございます。
> KuroさんのMeryにかぎってできないことなんてあるはずないよね!」
あはは…。開発環境が Delphi なので開発が簡単にできるぶん、C++ と比べるとどうしても細かいところに手が届かなかったり Delphi の限界があったりして、できないことも結構あります ^^;
> 「マーカーの設定」側で"正規表現"オプションを有効にしたばあい "透明" にならないようです。
これはプログラムミスですね。次のバージョンでは修正しておきます。
> もう1点、要望ですが表示設定のフォント装飾に「打ち消し線」の追加はできないでしょうか?
これはちょっと厳しいです。というのが、現状の「波線」というやつが「打消し線」なので…。(打消し線を改造して無理やり波線に見せてます)
> 使い慣れているフォントが"スラッシュドゼロ"ではないのでゼロを見分ける方法の代替策に…
ええっ…。それはフォントの作者さんにゼロにスラッシュを入れてもらうご要望を出されたほうが良いのではないでしょうか… ^^; それか FontForge というフリーソフトを使えば割と簡単にフォントをいじれますよー
>> yuko さん
コメントありがとうございます。
私も Ninja Cat で初めてこんな世界に触れてしまい、ついテンションがあがって実装してしまいました。
> 使う場面と相手に恵まれず (泣)
はうっ!私もです。
> ところで、この絵文字の表示はプロポーショナルフォントを想定したものですか?
はい、プロポーショナルフォントに対応しているつもりです。(Segoe UI Emoji がプロポーショナルフォントなので)
> この幅が全角文字と同じ幅になればより良いですが、絵文字では別のフォントが表示されているとのことで、この辺の調整は難しそうですね…。
確かに、固定ピッチフォントと混在すると、後ろに続く文字にズレが出てきますが、こればっかりはどうしょうもないですね…。
無理やり全角文字幅にできないこともないですが、記事中の家族の絵文字なんかは平気で全角の文字幅を超えてきますからねぇ (w
> 絵文字が隣接する文字に食い込むような形で表示されます。
ご報告ありがとうございます。
あわわ…、検証のときにコメントにしてた部分を解除し忘れてて、横書きのときでも縦書きで表示位置を微調整した部分のロジックを通ってました…。
凡ミスです…。うはー、絵文字機能を前面に押し出した記事なのに横書きの絵文字に凡ミス仕込んじゃってたとは!
前回、凡ミスでこっそり差し替えてお叱りを受けましたし…、でも、このバージョンが普及するまえに修正したいですし…、どうしましょう (ノД`)・゜・。
→やはり、お叱り覚悟でこっそり差し替える作戦でいきます。(バージョンあげると記事の修正と URL 変更が発生して SEO 的に最悪なので勘弁してください)
> やはり、お叱り覚悟でこっそり差し替える作戦でいきます。(バージョンあげると記事の修正と URL 変更が発生して SEO 的に最悪なので勘弁してください)
いきましょう!最強の免罪符「ベータ版」が付いていますので!w
>> yuko さん
絵文字が隣接する文字に食い込む現象、修正完了しました。
修正後、Ricty などの等幅フォントでも動作確認しましたが、これで直ってなければ別の問題かもしれませんので、お手数をおかけして大変恐縮ですが、もう一度動作確認にご協力いただけませんでしょうか?
>> ぽい さん
マーカーで正規表現を使った場合に [透明] にならない件も修正しておきました。Ver 2.6.11 を差し替えましたのでお時間のある時にでもお試しくださいませ。
半ページ送り、と言いますか、これのおかげで、いつもページの真ん中辺りで執筆出来るようになり、更に書きやすくなりました。
下に余白がある状態で書きたいタイプなので、いつも半ページ分くらい空改行していました。
どうもありがとうございます。
アウトライン付き縦書きエディターを求めて辿り着きました
特にその方面の編集に重宝させていただいています
まめに更新なさっているようなので、環境限定エラーの報告とついでに個人要望を
エラー:環境 win7-64, Microsoft Office IME 2010
関連 詳細なテキストサービスを常時無効
症状 ①通常領域に日本語入力すると未確定文字が二重?に表示(確定後は問題なし)
②その際 変換窓が出ない
確認 使用時Microsoft Office IMに切り替え → 問題なし
要望 : 縦書きモードでのルビ変換表示
例 お|疲《つか》れさま、と記述 ⇒『疲』に『つか』とルビ
ご覧の通りどちらも「改善、導入が面倒そうな割に、…」
こんな話もある程度に受け止めていただければ幸いです
U+1F469 U+200D U+1F466 U+200D U+1F468 U+200D U+1F469 U+1F3FB U+200D U+1F467 U+200D U+1F466 U+1F3FF
複雑な家族関係も表現できるMeryすごい
>> きゆ さん
ご愛用ありがとうございます。
半ページ送り(?)は、隠し機能なのに使ってくださりありがとうございます。
この機能、オプション画面に搭載するか、それとも標準の動作を半分までスクロールできるようにするか、それとも今のまま隠し機能にしておくか迷っていましたが、なんだか評判が良いようなのでオプション画面のほうになんとかスペースを作り出して配置したいところですね。
>> outate さん
Mery をお試しくださりありがとうございます。
縦書き機能は簡易的なものなので、本格的な使用に耐えられるかどうかわかりませんが… ^^;
ご報告ありがとうございます。
IME2010 って「詳細なテキストサービス」を無効にできたのですね。
動作検証で用意している環境の中に Windows 7 + Microsoft Office IME 2007 ならあるのですが、2007 では「詳細なテキストサービス」の項目が存在しないので、そもそも IME ではテキストサービスを無効にできないものだと思い込んでおりました。
IME2010 をインストールして確認してみましたところ現象を再現することができました。
一応、Google 日本語入力と、ATOK の場合は「詳細なテキストサービス」を無効にしても動作するように特殊な処理を組み込んでいます。たぶん IME2010 でも何らかの対策があると思いますので調査してみますね。
> 縦書きモードでのルビ変換表示
これはきっとご要望があるだろうなと思っていましたが、Mery の縦書き機能は縦中横やルビ、圏点など縦書き独特の装飾は不要で、軽快でシンプルに縦書きできるエディタとして、Word などで本文を入力する前の下書きとして使いたいという方のご要望から成り立っておりますゆえ、この辺りはご容赦いただければなと思います。
(とか言いつつ、私の技術的好奇心で「縦中横」機能は付けちゃいましたが… ^^;)
気まぐれなので、ルビ作りてぇ!っていう衝動が沸いてきたら作ってしまうかもしれませんけどね。
>> foo さん
寝ようと思ってたのに、気になって「特殊文字を入力」マクロでがんばって入力してしまったじゃないですか!(w
複雑…。
しかし、左の「ママと少年」と右の「4 人」の間に空白があいちゃいますね。これはちょっと変ですから、調査してみたいと思います。
その空白は本妻と2号さんの差が出ていて、いいとおもうけど。
Kuro さん
ありがとうございます!
早速試してみたところ、若干具合は変わったものの、やはり食い込んでいるような表示状態でした。
少し調べてみたところ、隠しオプション「GdiCompatible=1」と相性が悪いらしく、これを On にしていると食い込むような表示になるようでした。この設定を Off にして、正常に絵文字表示がされるようになったことを確認しています。
> マーカーで正規表現を使った場合に [透明] にならない件も修正しておきました。
> 現状の「波線」というやつが「打消し線」なので…。(打消し線を改造して無理やり波線に見せてます)
ありがとうございます。確認&了解いたしました。"透明" オプションが有効に機能してくれて「ワル目立ち」しすぎにはならなくなりました。
波線を表示するソフトって珍しいなぁとはおもっていましたが、そんな力技で成しとげていたとは! 裏話を聞けて得した気分です。 :)
> FontForge というフリーソフト
かさねてありがとうございます。調べてみます。
> 半ページ送り
横からですが、このオプションとてもいいですね。
使っていなかった "ScrollMargin" もあわせて使ってみて中央固定するといい感じで、いままでコマンドラインオプション /l n でファイルを開いたときに指定した行がエディターの下端になっていたのも中央にくるようになりました。 :o
細かい部分ですが "透明" オプションについてべつのところでも気になるところがありまして…
"強調文字列" や "マーカー" 、"不正なスペル" などのフォント装飾での "太字" や "斜体" についてですが、☑チェックボックスに "半チェック" のオプションを組みこむことはできますでしょうか? (※文字色や背景色の "斜体" とおなじように、"太字" や "斜体" にたいして "透明" を選択できるようにしていただきたい という意味です)
その単語や文字をふくむ行や文字列が "強調文字列" や "コメント" 、"文字列" (クオートつき)などの設定ですでに "太字" や "斜体" で装飾されているときを想定しています。
e.g.
・表示設定の "文字列" (←クオートつき)で "斜体" オプション ON。
・編集モードで "引用符に囲まれた文字列" オプション ON。
・表示設定の "マーカー(n)" の装飾オプションは "波線" のみ ON、対象文字列は 「0」。
→ エディターにダブルクオートつきで 「"1000"」 と入力すると、 「"1」 は斜体、 「000」は斜体解除で波線つき、さいごの 「"」 は斜体で表示されます。
同様のかけあわせの強調部分が色々あると、強調箇所が意図した以上に目立ちすぎ、エディター全体の体裁も必要以上にくずれてしまいます。
これを マーカー(n) の装飾オプションで "波線" に黒チェック、 "太字" と "斜体" にはグレーのチェック(半チェック)をつけて
→ 「"1000"」 全体はすべて斜体のままで、 「000」 に波線を追加(斜体を解除せずに) …ということです。
この 0 をふくむ 「1000」 は、コメント行("斜体" ON)や、"強調文字列(n)" ("斜体" OFF、 "太字" ON)に割りあてた文字列内にある場合も考えられます。英文で全文スペルチェックをすると辞書にない固有名詞や "テクニカルターム" 、 "スペースを省略したプログラム用語など" などがことごとく "太字" "斜体" 解除になるのも… (←これについてはスペルチェック対象を絞れば済みますが)。
あるいは "太字" "斜体" ←→ "下線" "波線" については逆パターンの半チェックがよい場面もあるかもしれません。
よろしければご検討をお願いします。
>> foo さん
家族の空白、調査してみましたところ空白があいて正解みたいです。
昨夜は Google Chrome に入力してみて空白があかなかったので、やっちまったか!と思いましたが、メモ帳や Microsoft Edge や Cortana さんの入力欄に入力すると空白があきました。
Chrome だと空白があかないのですが、左から二人目の子供がオッサンの後ろに隠れてしまいますし、キャレットを右に移動させると変な位置にキャレットが挟まったりするので、Chrome のほうが対応していなかったようです。
>> yuko さん
ご確認ありがとうございました。
なるほど、「GdiCompatible=1」を使われていましたか。とりあえず GdiCompatible Off で問題なさそうということで安心しました。
「GdiCompatible=1」は、描画は DirectWrite オン、文字幅は DirectWrite オフで計算するというオプションですから、オプションで一度 DirectWrite をオフにしていただくとわかりやすいと思いますが、Ricty だと DirectWrite オンとオフで絵文字が全然違いますからね ^^; (接合絵文字すら使用できないですね)
フォントリンクを使って Ricty の代替フォントに Segoe UI Emoji を指定すれば… (無理かな…)
>> ぽい さん
ご確認ありがとうございました。
> そんな力技で成しとげていたとは!
Delphi だとこれぐらいは日常茶飯事です ^^;
> 半ページ送り
そんな用途にも使えるのですね。私はまったく使わない機能なので、メジャー機能への昇格はみなさんのご意見次第ということで… (w
> ☑チェックボックスに "半チェック" のオプションを組みこむことはできますでしょうか?
ご意見ありがとうございます、意図はわかりました。
前提として、以前に回答させていただきましたとおり、Mery の色分けは複数の属性をかけあわせることができませんので、すでに "文字列" や "コメント" などで強調されている文字に対して、別の属性を上乗せすることはできません。
例) "コメント" ですでに強調されている部分に対して "強調文字列" は掛け合わせられません
ただし、回答のなかで「一部の機能を除いて」と申しましたとおり、以下の属性に限って "掛け合わせ" することが可能です。(マーカーで、「透明」が使えるのはこのためです)
・検索文字列
・マーカー(1)~(8)
・自動マーカー
・不正なスペル
上記の 4 つだけなら、ご指摘のように "太字" や "斜体" などのスタイルに対しても "透明" のようなふるまいを実装することは技術的に可能です。
ただ、実装として「半チェック」は、普通の人には何の機能なのか分かりづらいと思いますし、そもそも上記の 4 つに限っては、文章に目印をつけるという性質上、属性の上書きが前提みたいなものですから、、標準的な動作として "透明" なふるまいにするのはいかがでしょう?
…でも、あえて属性を掛け合わせたくないという人もいるのかな ^^;
丁寧な回答をいただきありがとうございます。
> 上記の 4 つに限っては、文章に目印をつけるという性質上、属性の上書きが前提みたいなものですから、、標準的な動作として "透明" なふるまいにするのはいかがでしょう?
わたしとしましては半チェック(透明)が実装されればまっ先に手をつけるであろう項目ですので大賛成です(動作仕様の「変更」となるとほかの方の意見とのすりあわせも必要かとおもい、半チェック「追加」の方向で提案させていただきました)。
実際にいろいろなかけあわせの関係を調べてみたところ、"文字列"(引用符に囲まれた文字列)は通常の "強調文字列" よりも優先度が高いようですが、文字色や背景色の "透明" が通常色になってしまうようでした。後出しの追加でもうしわけありませんが、ご確認お願いします。
"コメント" の装飾が "強調文字列"、"文字列" よりも優先度が高いのは、運用していて気がついていました。
"コメント" はなるべく使わないようにして "行の右を強調" で正規表現を書いていますが、 "強調文字列(n)" 同士の優先度の上下関係がわからずモヤモヤとすることも…(某掲示板のほうでは優先度を指定できるようにしてほしいという意見もありました)。"正規表現" ON のアイテムのほうが多少優先度があがるような気がするのは錯覚でしょうか?
エクスポートしたMSYファイルの構成をみると、これって「上へ」/「下へ」のボタンを追加すればよいというものでもなさそうですね。
強調がらみ(文字装飾)の優先度について wiki のヘルプで解説していただければとおもうのですが、wiki に手をつけるとなるとアレもコレもということになったり… :)
いじっていて気がついたのですが、ホイールやスクロールバーでキャレットが表示範囲から消えるまで送ってから ↑/↓ キーを押すとキャレットがワープしてくるんですね。「なんじゃこりゃ?!」とおもったら win のメモ帳が同じような仕様でした。LOL
だったら「スクロールしてからキャレット位置に戻るにはどうすりゃいいのさ?」とおもったら ←/→ キーでちゃんと戻れました。
XP使いなのでMeryを最大限に活用できていないのですが、それでも Mery 楽しすぎ。 XD
ぽいさんの書かれてる
> 半ページ送り&"ScrollMargin" もあわせて使ってみて中央固定
とてもいいですね。メジャー機能への昇格希望です
今回のはたまたまバージョンアップついでにコメント見てて使ってみたのいですが
隠し機能一覧とかどこかに書かれてますか?
開発お疲れ様です。
最新版が出たばかりで厚かましいのですが、
現状では「ツール」→「オプション」→「表示」→「選択範囲」では背景色は
選べますが、文字色は選択出来ないようになっています。
背景色:青、文字色:白
といった具合にカスタマイズする機能は難しいでしょうか?
>> ぽい さん
ご返信ありがとうございます。
そうなんですよね、ほかの人に影響を与えずにとなると、ぽいさんのおっしゃる通り「半チェック」のような状態を新設するのが妥当ですね。
なるべく複雑なオプションは設けたくないので、次のベータ版で標準仕様として採用してみて、「アカン!」っていうご意見が来たら考え直すことにしてみます ^^
> "文字列"(引用符に囲まれた文字列)は通常の "強調文字列" よりも優先度が高いようですが、文字色や背景色の "透明" が通常色になってしまうようでした。
そうですね、これは前回、説明させていただきましたとおり、複数の属性のかけ合わせができないという仕様上の制限事項です。
仕様がうまく伝わっていない気がするので補足させていただきますと、Mery では 1 つの文字ごとに "強調文字列 (1)"、"文字列"、"コメント" などの属性をどれか 1 つしかひもづけることができません。
つまり、1 つの文字に "強調文字列 (1)" と "文字列" の両方の属性をもつことはできませんから、文字色や背景色の "透明" という概念も存在しません。"透明" は下の色が透過するわけではなく、そもそも下の色なんてありません。
"透明" は「通常」の色を採用する、という仕様です。
> "強調文字列(n)" 同士の優先度の上下関係がわからずモヤモヤとすることも…
するどいですね ^^;
文字の色分けって一見、簡単そうに見えるかもしれませんが、内部では 1 文字ずつマッチングさせていってるだけなんですよね。これをいかに高速化させるかがテキストエディタの肝といっても良いと思います。
例えば、マーカー機能では「上へ」「下へ」がありますよね。マーカー機能はその性質上、多くても登録数は 100 個ぐらいかなって感じなので 100 個を上から順にマッチングさせていってもまぁ実用に耐えるぐらいの速度は出ます。
でも、強調文字列のほうは 1,000 や、多いものでは 5,000 を超えたりします。これを 1 文字ずつマッチングさせていくわけですから普通に上から順にやっちゃうとどうしても動作速度が遅くなってしまいます。
そういうわけで強調文字列の優先度は動作速度を優先したものであり、独自のアルゴリズムによって優先度を決定していますから、ちょっと言葉で説明できるような規則はありません ^^;
> ホイールやスクロールバーでキャレットが表示範囲から消えるまで送ってから ↑/↓ キーを押すとキャレットがワープしてくるんですね。
便利でしょ?(w
これ、秀〇エディタさんや E〇Editor さんはスクロールするとキャレットも強制的に追従しちゃいますし、サク〇エディタさんはキャレットは追従しないのですが↑・↓を押したら元の位置まで強制送還ですから、Mery はその点を地味に改善してます ^^
> XP使いなのでMeryを最大限に活用できていないのですが、それでも Mery 楽しすぎ。
ありがとうございます。って、XP!おぉ…、XP のユーザさんは少ないので貴重 (なサンプル) です ^^
>> o さん
コメントありがとうございます。
半ページ送り、人気が高いですね、驚きました。
オプション画面に余裕がないことも踏まえて、もう標準で半ページ送りの状態にしちゃったほうが良いのかも?(秀〇エディタさんは標準で半ページ送り状態でした)
> 隠し機能一覧とかどこかに書かれてますか?
どこにも書いてないですし、私も把握しておりません ^^;
以前に Mery に詳しい方がフォーラムに一覧を投稿されていたような記憶がありますが…。(ツイッターで 1 回だけつぶやいた機能も含まれててスゲー!って思いました)
隠し機能は、メジャー機能に昇格しなかった機能もありますが、動作に自信のない機能や、あまり使ってほしくないけどご要望が強すぎてしぶしぶ対応した機能なんかもあって、公式で掲載するには一度精査しないとだめですね。
>> tisi さん
コメントありがとうございます。
> 最新版が出たばかりで厚かましいのですが、
いいえー、こうしてフィードバックを頂けることが何よりの支えです ^^
> 背景色:青、文字色:白
分かります、Windows 標準っぽいですもんね。これは以前に開発に挑戦してみたことがあるのですが、技術的にはできなくはないけど動作速度に若干影響があります。
現状ですと文字の色分けが終わったあとの画像に上から半透明の青色を重ねて選択範囲に見せているのですが、文字色を白、となると文字の色分けの段階から選択範囲を考慮したものに作り替える必要があり、開発的にもなかなか手間のかかるものでもあります ^^;
また、「文字色:白」にしてしまうと、強調文字列などで色分けされている文字も選択するとすべて白になってしまいますので視認性が良くない気がします。(最近は MS Office 製品でも選択範囲は青やグレーの半透明で文字色はそのままというものが多いですね)
ちょっと裏技っぽいですが「選択範囲」の「背景色」を「透明」にすると反転色 (黒文字なら白文字に) なりますが、ダメですかね…?
kuroさん
ご回答有り難うございます。了解しました。
>技術的にはできなくはないけど動作速度に若干影響があります。
そこまで無理する必要も無いかと。
>(最近は MS Office 製品でも選択範囲は青やグレーの半透明で文字色はそのままという
ものが多いですね)
手元の一太郎も同じでした。「文字色:白」を選んで選択すると、背景が真っ白になっ
て文字が消えてしまいます。普通に選択しても文字は黒のままです。
半/全ページ送り機能、使う場面をイマイチ想像できずノーチェックでした(汗)
コメントで評判がいいので試してみましたが、確かに良いかもしれません。
私は全ページ送りで使ってみましたが、同じテキストファイル内の末尾で、一度画面をまっさらにして書き出すことができるのは頭がスッキリしていいですね。(ちょうど、 bash で Ctrl + L を押して画面リセットをしたかのような感じで◎)
VS Code の「"editor.scrollBeyondLastLine": true」の設定 (これがデフォルト) も似たような動作ですね。
> 半ページ送り&"ScrollMargin" もあわせて使ってみて中央固定
これ、ウケる人にはすごいウケる機能な気がします。
以前、何かの markdown エディタで「執筆モード」という名称で似た機能が実装されていたのを見たことがあります。
この執筆モードにするとキャレット行が常に画面中央にある状態になります。(1行目から中央に表示)
「"視線を動かす"というノイズを排除し、執筆に集中できる」という意図なのだと思います。
好き不好きの出る機能ですが、搭載されていたら面白いですね。
縦書き機能と相まって、執筆者御用達エディタも狙えるかもしれませんw
ありがとうございます。
> 次のベータ版で標準仕様として採用してみて、「アカン!」っていうご意見が来たら考え直すことにしてみます ^^
むしろ v2.7 (Beta?) で「バージョンアップにともなう仕様変更」とするとか、INIにスイッチ用パラメーターを入れるとかも考えられますね。 :)
> 複数の属性のかけ合わせができないという仕様上の制限事項
> 強調文字列の優先度は動作速度を優先したものであり、独自のアルゴリズムによって優先度を決定していますから、ちょっと言葉で説明できるような規則はありません ^^;
了解いたしました。
独自のアルゴリズムですか…。ユーザーとして弄りまわしているかぎりでは「はっきりしたルール」を見つけるのは難しそうですね。
> 便利でしょ?(w
PgUp/PgDn や ↑/↓ キー(あるいは特殊なスクロール系マクロ)ではなく、マウスを使用したスクロールのあとでの ↑/↓ キー操作なので便利さを実感できる機会は少ないかもしれませんが、コレを考えたり実装したりした開発者の遊び心に声をあげて笑ってしまいました。 :D
隠し機能一覧というか INI オプションの説明は某掲示板で有志の方がまとめていました( https://egg.5ch.net/test/read.cgi/software/1470539869/30- )が、Kuroさんの秘密機能はまだまだありそうですね。
> XP のユーザさんは少ないので貴重 (なサンプル) です ^^
そう言っていただけて嬉しいです。海外のフリーソフト(XPも一応サポート中)のベータテストと翻訳をしていて、気になる挙動を報告したら「いまだに十数年前のOSかよ!」と叱られて…。 :(
DirectWrite や Unicode 絵文字など最新の目玉機能の恩恵にあずかることができず、それらのフィードバックも持ってこれないので申し訳なくおもっています。wiki とアイコンぐらいしか役に立つことできていませんよね。(昨日、MSY用構文ファイルも投稿してみました ← Jane正規表現用のライトバージョン)。
INI オプションの説明のあった場所を某掲示板のMeryスレッドでさがしていたら、「マクロの実行時に Shift キーの押し下げ状態を取得して条件分けしたい」という趣旨の発言がありました(上掲リンク先のレス番47)。これができると一つのマクロにふたつ詰めこめるようになったりして…、わたしも少しばかりマクロを弄れるようになってきたので便乗して欲がでてきてしまいます。
先日の "Shift+メニュー" や "Shift+クリック" などとあわせて修飾キーの追加機能の案件として、よろしくご検討くださいませ。 :)
>> tisi さん
ご返信ありがとうございます。
> そこまで無理する必要も無いかと。
そうですか ^^;
了解いたしました。ご意見は今後の開発の参考にさせていただきたいと思います。
>> yuko さん
半ページ送り?なる機能をお試しくださりありがとうございます。
ここまで評判が良いと、何らかの形で表に出したいところですね。
VS Code、使ってみました。ほんとだ、デフォルトで全ページ送り?なる状態ですね。MS 公式アプリが標準で採用している仕様なら、Mery も標準で採用しようかしら…。(でも標準で半か全かの派閥争いが!?)
ScrollMargin をでっかくして中央固定させる機能は、以前にご要望があって実装したものの、実際に使ってみると使いづらいから不要とのご意見をいただき、そっと Delphi を閉じました。
> 好き不好きの出る機能ですが、搭載されていたら面白いですね。
そうですね。集中執筆モード (画面上の余計なものを非表示にしてエディタだけを全画面で中央付近に表示する) という機能を実装したいなーと思っていたので、その時に使えそうなネタですね。
(まぁ、小説家になろう!っていうサイトに登録するで!と気合を入れて執筆して 2 日で飽きたので、集中執筆モードもお蔵入り中ですが…)
>> ぽい さん
ご返信ありがとうございます。
> 「はっきりしたルール」を見つけるのは難しそうですね。
そうですね。頭が冴えているときに開発した部分なので、今ソースを読み返してみてもサパーリです。
> Kuroさんの秘密機能はまだまだありそうですね。
いずれ、フル機能版として売り出そうと企んだりしたり、してなかったり… (ニヤリ
>「いまだに十数年前のOSかよ!」と叱られて…。
ははは…、そろそろ買い替えてあげてください (w
> 昨日、MSY用構文ファイルも投稿してみました
ご投稿ありがとうございます!私は豆腐のようなメンタルなので某巨大掲示板は見ませんから、Jane のお世話になることもないですが… ^^;
> Shift キーの押し下げ状態を取得して条件分けしたい
JavaScript でやればいいじゃない?と思いましたが JavaScript ってキーを取得できないんでしたっけ… ^^;
でも、できたとしてもマクロってショートカットキーから呼び出すことが多いと思うのですが、Shift と合わせたショートカットキーが全滅しちゃいますから実用性は低いかもしれませんね。
って、コメント欄ながっ…。
みなさん、コメントありがとうございます!
当記事に関するコメント以外の Mery へのご質問・ご要望などはコメント欄ではなくフォーラムのほうに投稿していただけると、文字も大きくて読みやすいですし、個人宛に返信しやすいですし、ページ検索で情報を見つけやすくなりますので、ご活用・ご協力いただけると幸いです。フォーラムといってもそんな大げさなものではないので、お気軽にどうぞ。
遅くなりましたが、返信ありがとうございます。
> でも、リソースライブラリ(meryres.dll)を読み取り専用にしてしまうと今後の更新でツールバーアイコンの追加が発生した場合に正常に動作しなくなる可能性がありますね。
それはそうですが、逆に言うとアイコンが追加されない限りは読み取り専用にしておいても問題はないということですね。
インストールする度に、1ファイルコピーするだけだろ、とか ZIP 版を使えば良いだろと言われればその通りですが。^^;
ところで、ここが開けないなーと思っていましたが、IE11では表示できなくなってしまったのですね。
別の問題かもしれませんが。
>> 名無し さん
コメントありがとうございます。
> 逆に言うとアイコンが追加されない限りは読み取り専用にしておいても問題はないということですね。
meryres.dll は毎回ビルドしなおしているだけで、アイコンの追加がない限り (ほぼ) 中身は変わっていませんから、読み取り専用にした状態でも上書きインストールできるのであれば問題ないと思います。想定外の使用方法なので動作保証はできませんが… ^^;
> IE11では表示できなくなってしまったのですね。
ご報告ありがとうございます。Windows 10 (64bit) + IE11 (11.228.17134.0) では表示できてますが、Windows 7 + IE11 (11.0.9600.19080) だと表示できなくなっているようですね。
MeryWiki の負荷が高くてときどきサーバが落ちていたのでサーバーを思い切ってハイスペックなところに移転したのですが、その影響のようです。昨日、1 年契約してしまいました…、どうしましょ…。とりあえずサポセンに問い合わせてみるしかなさそうです。
了解しました。
自分は Windows 7 でした。
Chrome では表示されますし、今どき Windows 7 + IE11 の組み合わせは少ないような気もします(知りませんが^^;)ので、大きな問題はないのでは?と思います。
>> 名無し さん
ご返信ありがとうございます。
そうですね、確かに一般ユーザさんで Windows 7 + IE11 は少なそうですが、会社とかだと普通に使ってそうな気もします。
色々と調査してみたのですがどうも私の手に負える範囲ではなさそうなので、サポートセンターに問い合わせしておきました。対応してくれれば良いのですが…。
はぁ~、もう少し無料体験期間が残っていたので、本契約を遅くしておけば良かったです。価格も倍以上するのにこんなのヒドすぎますー…。(ノД`)・゜・。
ご返信、ありがとうございます。
確かにちょっと前だと少しほったらかしておくと無反応になっていることが多々ありました。
自分みたいにネットに疎いと、ブラウザで表示されるエラーはよく読みもせずサーバーの不具合かな?と思ってそこで諦めてしまいます。
ちゃんと読めば、エラーメッセージで、
> サポートされていないプロトコル、または安全と見なされない RC4 などの暗号スイートがサイトで使われている可能性があります。
と書いてあったのに。^^;
> はぁ~、もう少し無料体験期間が残っていたので、本契約を遅くしておけば良かったです。
それは悔しいですね。
>> 名無し さん
コメントありがとうございます。
> 確かにちょっと前だと少しほったらかしておくと無反応になっていることが多々ありました。
今までは最安のプラン (メモリ 512MB) だったので MeryWiki の運用もちょっと厳しかったですね。あと、誰かさんが作成された Mery のアップデートをチェックするマクロがあるようで、ちょくちょくサーバが落ちてました。
問い合わせをしたものの、サポートセンターは土日休業とのことで今のところ何の進捗もありません… ^^;
> サポートされていないプロトコル、または安全と見なされない RC4 などの暗号スイートがサイトで使われている可能性があります。
私のほうでも調査しましたが、↑ このメッセージは間違い (というか別の原因) で発生している模様です。海外のフォーラムに対策が載っていましたが、レンタルサーバの管理者のほうでしか変更できないパラメータが関係しているようなので、サポートセンターからの連絡待ちですね。
ちなみにさっき試してみたのですが Windows 8.1 + IE11 でもダメでした。一応 IE11 は 2025 年まで (Win 7 は 2020 年ですが) サポートがあるので、サポートセンターも見捨てたりはしないと思いますが…。
> それは悔しいですね。
価格の割にはすごいハイスペックなレンタルサーバーなので、この問題さえ解決すれば快適に違いないのですけどね ^^
テキストファイルを開いた後、Meryは閉じずにテキストを閉じたあと、そのテキストを置いてあったフォルダを移動すると、ファイルがロックされているのか移動ができません。Meryを閉じると移動ができます。
>> TM さん
ご愛用ありがとうございます。
Windows の仕様上、「作業フォルダ」に設定されているフォルダは移動および削除できません。
デスクトップの Mery のショートカットから起動すると "C:\Program Files\Mery" が作業フォルダになりますが、Mery が起動していない状態でテキストファイルなどをダブルクリックして関連付けから起動したりすると、そのファイルが存在するフォルダが作業フォルダとして設定されます。
これは Windows の標準的な動作で、例えばメモ帳や秀〇エディタさん、サク〇エディタさんなどでも同様です。
お手数をおかけしますが、このような場合は一度 Mery を終了してからフォルダを削除していただく必要がありますのでご了承ください。
TeraPa○風味が忘れられない者です。
一年程前にユーザさんの要望でファイル名自動付加機能が
付きました。以下のようになりますが、どうも慣れない者です。
ファイルプレビュー機能で中身を見ることは出来ますが、
ファイルヒストリでは、無題が並ぶ状態ですし、同じフォルダだと、
常に上書きの危険があります。
一行目の文字列をそのままファイル名に付けるのは難しいでしょうか?
TeraPa○を試すと、改行、タブ、空白は無視して、文字列のある行が
ファイル名になるようです。
J:\TEXT\015\無題-1.txt
J:\TEXT\015\無題-2.txt
>> tisi さん
ご愛用ありがとうございます。
Ter〇Pad さんはシンプルで軽快、まさに Mery が目指しているエディタですね。Ter〇Pad さんがユニコードに対応されていたら、Mery を開発することもなかったと思います ^^;
> 一行目の文字列をそのままファイル名に付けるのは難しいでしょうか?
Mery でも同様の機能があることはあるのですが、需要が少ないのでオプション画面などには表示していません。
隠し設定ですが、Mery.ini の [General] セクションに NameUntitled=0 という項目があるので、これを NameUntitled=1 に書き換えるだけです。
Mery.ini は通常、C:\Users\<ユーザ名>\AppData\Roaming\Mery 配下にありますので、Mery を閉じている状態で、メモ帳など Mery 以外のエディタで編集する必要があります。(Mery で編集してしまうと終了時に Mery.ini が上書きされてしまいますので)
隠し機能になっているのは、なるべく余計なオプションを少なくして初心者でもわかりやすいソフトにしたいというのと、そもそもオプション画面にもうスペースがないというのと、とりあえず隠し機能だけどご要望が多ければメイン機能に昇格するよ。というスタイルで開発しているためですので、ご了承ください。
以下の点について質問させていただきます
1メニューバーやタイトルバーの色などはカスタマイズできるでしょうか
2ツリーの文字サイズと編集画面の文字サイズを別々に設定できるでしょうか
見た目をbracket風にしたいと思っています
メニューが黒で、編集画面は白と言った具合です
>需要が少ないのでオプション画面などには表示していません。
「無題」と付くより、文章一行目がファイル名になった方が
初心者には敷居が低く感じらるように思います。
>隠し設定ですが、Mery.ini の [General] セクションに NameUntitled=0 という項目が
>あるので、これを NameUntitled=1 に書き換えるだけです。
希望通りに出来ました。 もっと早く質問すれば良かったです。
ファイル名を自分で考えるのが億劫な者で……。有り難うございました。
以前、kuroさんが〝Ter〇Padを超えるエディタを作りたい〟と書いていたのを
覚えています。Ter〇Pad作者さんも当然、Meryを入手して研究しているでしょうね。
どうも有り難うございました。
>> bgeg さん
ご愛用ありがとうございます。
> 1メニューバーやタイトルバーの色などはカスタマイズできるでしょうか
申し訳ございませんが、メニューバーなどアプリケーションの外観自体を変更する機能はありません。
> 2ツリーの文字サイズと編集画面の文字サイズを別々に設定できるでしょうか
通常、ツリー (アウトラインプラグイン) のフォントは、エディタ画面のフォントと連動しています。
隠しオプションになりますが、一応、変更することは可能です。フォントサイズの変更は、Mery.ini の [Outline] セクションに FontSize=9 のように追記します。
例)
[Outline]
FontName=Segoe UI
FontSize=9
↑ こんな感じで追記すれば、フォントとフォントサイズをエディタ部分とは別に指定することができます。
Mery.ini は C:\Users\<ユーザ名>\AppData\Roaming\Mery 配下にありますので、Mery を閉じている状態で、メモ帳など Mery 以外のエディタで編集する必要があります。(Mery で編集してしまうと終了時に Mery.ini が上書きされてしまいますので)
> 見た目をbracket風にしたいと思っています
確かに、今風のエディタって感じでオシャレですよね。
アプリケーションの外観を変更する機能自体は、Mery を開発している開発ツール (Delphi) でもそういった機能を簡単に実装できるのですが、これが完成度が非常に低く、残念な見た目になってしまいますので Mery では採用していません。(他社製のライブラリを購入すれば美しい外観のテーマ機能を搭載できるのですが高いです…)
>> tisi さん
ご返信ありがとうございます。
ご希望通りの動作になったとのことで安心しました。
> 初心者には敷居が低く感じらるように思います。
確かに、初心者のかたには優しい機能な気がします。Word などのワープロソフトだとこの方式が採用されていますが、テキストエディタだとなぜか「無題」方式が多いんですよね。
私自身はファイル名を自分で考えるのが億劫だし、隠しオプションを設定するのも億劫なので、覚え書きフォルダは 無題-1、無題-2 … 無題-15 ぐらいまであって残念なことになってますね。
> Ter〇Pad作者さんも当然、Meryを入手して研究しているでしょうね。
Ter〇Pad さん、2012 年で更新が途絶えてますからねー。でもいまだに Vector のダウンロードランキングでは上位なので、本当に良くできているソフトでファンが多いんだなって思います。
ありがとうございました。見た目は諦めます。
度々失礼します。
文字背景の色付けなのですが、このように行全体を色付け出来ますか?
http://k2top.jpn.org/k2soft//image/k2editor_html.gif
こちらはk2エディタというフリーソフトのようです。
アウトライン解析をよく使うので、見出しを目立たせたいです。
テキストファイルなので、リッチテキストのような見た目にはならないと思いますが、できるだけわかりやすい色付けをしたいです。
>> bgeg さん
コメントありがとうございます。
K2Editor さん、Mery と同じ Delphi 製のソフトですが非常に完成度が高くて素晴らしいテキストエディタですよね。
行全体の色付けですが、Mery では本バージョン Ver 2.6.11 で実装しました。当記事の目次から「行の右をすべて強調できるようになりました」というリンクをたどっていただけると解説していますが、[編集モード] の強調表示の機能を使用することで行の背景全体に色付けすることができます。
アウトライン解析をご利用いただいているとのことですので、正規表現を使えばアウトラインと同じような条件を付けることも可能です。
また、見出しなどを簡単に目立たせたいときなどはマーカー機能も便利です。
https://www.haijin-boys.com/software/mery/mery-tips#9
↑ こちらにマーカー機能の解説記事がありますので良かったらどうぞ。
ありがとうございました。無事いけました。
このページにファイルがおいてあったんですね。
wikiのほうに最新のものがあると思っていました。
>> bgeg さん
ご返信ありがとうございます。設定、うまくいったようで安心しました。
> このページにファイルがおいてあったんですね。
そうなんです。MeryWiki のほうは Vector さんや窓の杜さんなどでも公開されている正式版ですが、このブログで公開しているのは皆さんのご意見・ご要望をもとに新たな機能を盛り込んだベータ版という位置づけになっています。
正式版だからといって動作保証があるわけでもありませんし、ベータ版だからといってバグだらけなわけでもありませんが、リリースするたびに MeryWiki を更新して Vector さんに公開して窓の杜さんに更新してもらって、となると大変なので、こんな辺境のブログでひっそりと最新版を公開させてもらってます ^^;
あらっ Win7 IE11 で表示された
そういえば、Emmet LiveStyle と HSP コンパイル 以外のプラグインが、日付が変わっていて Ver 2.3.2 のままですが中身は同じですよね?
>> 名無し さん
> あらっ Win7 IE11 で表示された
サーバー側の不具合を指摘して修正方法を送っておいたのですが、しれーっと修正された模様です。
6 日経過した現在もまだ何の連絡も来ないんですけどね… ^^;
> そういえば、Emmet LiveStyle と HSP コンパイル 以外のプラグインが、日付が変わっていて Ver 2.3.2 のままですが中身は同じですよね?
ソフトウェア利用許諾契約 (eula) を含めるようにしたので、すべてのプラグインを更新しました。
プラグイン自体に手は加えていませんが、最新の SDK でビルドしなおしましたので日付やファイルサイズが変わっちゃってますね。プラグインの動作には影響しないはずです、たぶん…。
> サーバー側の不具合を指摘して修正方法を送っておいたのですが、しれーっと修正された模様です。
ほぉー、そっち方面の解析もできるのですか。さすがです。
> 6 日経過した現在もまだ何の連絡も来ないんですけどね… ^^;
無料のとこならまだしも、お金を取っているのならきちんと回答して欲しいですね。
でも、対応してくれただけマシか。
> プラグイン自体に手は加えていませんが、最新の SDK でビルドしなおしましたので日付やファイルサイズが変わっちゃってますね。プラグインの動作には影響しないはずです、たぶん…。
了解しました。
素晴らしいエディタ、いつもご利用させていただいています。
新しくパソコンを新調し、利用させていただこうとダウンロードさせていただいたMerySetup-x64-2.6.11.exe を実行しようとダブクリックしたところ、下記の表示が出ました。
※Windows10環境です。
-------------------------------------------------------------------
WindowsによってPCが保護されました。
Windows Defender SmartScreen は認識されないアプリの起動を停止しました。このアプリを実行すると、PC に問題が起こる可能性があります。
アプリ:
MerySetup-x64-2.6.11.exe
発行元:
不明な発行元
-------------------------------------------------------------------
こちらは、下の方に「実行」「実行しない」とあるのですが、Windows Defenderのご認識でそのまま「実行」でいいでしょうか。
よろしくお願いいたします。
一ユーザです。横から失礼します。
最近のWindowsのセキュリティの関係で電子署名が付いていない
ソフト全般にそのような警告メッセージが出ます。電子署名付加は
高額な料金が必要でフリーソフトではサポート出来ない金額です。
Meryは何年も使っていますが、おかしな事は起きませんので、安心して
インストール出来ますよ。
私の使っているセキュソフトでは、Meryを「除外リスト」に登録して
検査対象から外しています。
お世話になっております。
ScrollMarginを大きくしてカーソル行を中心に固定した場合、アウトラインで移動するとその行数分下にズレてしまうのですが、中心に設定できるでしょうか(ウィンドウや文字のサイズを変えなければ、表示されている行÷2を指定で良いかと思いますが…)。
すみませんが、よろしくお願いいたします。
>> 名無し さん
コメントありがとうございます。
> ほぉー、そっち方面の解析もできるのですか。さすがです。
mixhost (レンタルサーバー) から連絡こねぇぇぇ!とか、改善されましたー、とかは主に Twitter のほうでやってました、すみません。
> 無料のとこならまだしも、お金を取っているのならきちんと回答して欲しいですね。
> でも、対応してくれただけマシか。
ほんと、そう思います。ちなみに、いまだに回答来ません。
調査したところ、8 月以降ぐらいにレンタルした人のサーバーは全部同じ問題を抱えていたので、「助言ありがとうございました!」ぐらい言ってくれてもいいものですが…。
最初に問い合わせたときに来た回答なんて「IE11 の仕様です。SSL 証明書発行元も IE11 には対応しません」とかいう無茶苦茶な内容でしたからねぇ。思い出しても腹が立ちます ^^; (こりゃぁ、頼りにならんわーと思って自分で原因を探しました)
>> tisi さん
ウイルスとか SmartScreen の問い合わせ、胃の腑に穴が開きそうな悩みの種なので、サポートにご協力いただき感謝です。
デジタル署名を取れれば Windows Defender にも認められるし、Windows ストアにも出品できるので、とても楽しそうな世界が広がっていますが、高いですねー。
野良デスクトップアプリが撲滅される日が、近いうちにやってくるのかもしれません…。
>> 田宮 さん
ご愛用ありがとうございます。
パソコン新調、おめでとうございます ^^
確かに、新品のパソコンでそんな画面が出てくると、ちょっと怖くなりますよね。
tisi さんがコメントしてくださっている通り、Mery にデジタル署名がついていないので Windows の SmartScreen という機能によってそんな画面が出てしまいます。
こればっかりは、確実に安全です、と言い切ることもできません。もちろんウイルスを配布しているわけではありませんが、マイクロソフトからすると署名のないアプリはウイルスだと見なされているようなものなので…。
セキュリティ的な問題ですので、形式的な回答しかできず心苦しい限りですが、ご自身でウイルスチェックをされるか、ご心配であれば Mery の使用を中止していただくしか今のところ対策はありませんので、ご了承ください。
>> jacklegdoc さん
ご愛用ありがとうございます。
ScrollMargin の設定は隠し機能なので、今のところアウトラインプラグインはその隠し設定を読む仕様にはなっていませんね。
そもそもカーソル行を中心に固定する仕組みの需要があるかどうか (ScrollMargin などの機能を隠しじゃなく、表に出すかどうか) という点が非常に悩ましい問題で、私個人的には全然使えないやんけ!って思っていたので、今回、コメント欄にて数名の方にご好評をいただいて戸惑っている次第です ^^;
中央固定モードみたいなやつの需要がありそうなら、アウトラインプラグインもそれを考慮したものにする必要がありますね。
Kuro様
ご回答ありがとうございます。
個人的には論文執筆にMeryを利用させていただいてますが、草案をひたすら入力する際、黒背景で余計な情報がなく入力行が中心から動かないソフトが理想的だと思います(Macを使っていた時はscrivenerのタイプライターモードを使っていました)。
他にもMeryで書いた「μ」や「°」を半角でコピペできるので論文投稿時に文字化けしなかったり、置換が強力なので実験データを整えたり、専門用語を統一したりと重宝しています。
スクリプトを書く際は前後を参照しながら作業しますが、一部の執筆作業では目線を集中して入力できるモードの需要もあるように思います。
>そもそもカーソル行を中心に固定する仕組みの需要があるかどうか (ScrollMargin などの機能を隠しじゃなく、表に出すかどうか)
横書き、縦書きを含めてそんな需要は 1% 程度しか無いと思います。
そもそも論になりますが、PCでものを書く利便性は「推敲のしやすさ」にあると思います。
書いたものを読み返し、「これは不必要だから消そう」とか「この部分を書き足そう」という
行為は誰もがやっていると思います。「カーソルを中央に」じゃテキストの半分しか見えず、
推敲に不便を来すので、オプションや隠し機能を含めて必要ないです。
>> jacklegdoc さん
ご返信ありがとうございます。
なるほど、そういった用途があるのですね。スクロールマージンにでっかい値を指定したときの動作は、そもそもは中央固定を想定していたものではなかったので、現状では厳密に中央固定ではなくて、画面内に表示されている行数によっては中央の 2 行分ぐらい可動域ができてしまうときがあります。
スクリプトを書くときと執筆のときに応じて気軽に切り替えられると便利そうだと思いますが、集中執筆モードをいずれ搭載したいなーと夢見ていますので、その時に。
取り急ぎ、スクロールマージンにでっかい値を指定したときは完全に中央固定化と、アウトラインプラグインのスクロールマージン考慮の対応を次のバージョンで搭載しておきますね。
>> tisi さん
コメントありがとうございます。
> 横書き、縦書きを含めてそんな需要は 1% 程度しか無いと思います。
あはは…、ぶった切りますね! (w
中央固定は開発してみたものの、私も、これは使いづらいからボツだなと思っていたものですが、どうもカーソル中央固定で人気の高いエディタ (有料ソフトだったと思います) があるらしくって、そういう需要があるものなんだなーと思った次第です。
需要の少ない機能は排除してシンプルを目指すのが Mery のコンセプトなので、ほいほい!っと搭載することはないと思いますのでご安心ください。
教えて下さい。
普段は80文字/1行で使っています。
出来れば書式の横幅を90文字くらいに固定する方法を教えて下さい。
>> ひろ さん
ご愛用ありがとうございます。
折り返し位置の設定は、ルーラー (上部の定規の部分) をマウスでドラッグするか、[ツール] メニューの [オプション] から [基本] タブの中にある [文字数] の値を変更すれば設定できます。(どちらから設定しても同じです)
ただし、折り返しの文字数は等幅フォント (MS ゴシックなど) を使用した際の目安なので、可変ピッチフォント (MS P ゴシックのように P が付くフォントなど) を使用した場合は正しい文字数を測れませんのでご注意ください。
ありがとうございます。
文字数80の設定は出来ています。
書く書式(紙の大きさ)ルーラ値で170文字が書ける大きさで開いてしまうので
毎回横幅を縮小して使っています。
Meryを立ち上げた時の文字を入れられる書式(ページ)の横幅を90位に固定した状態で開く様にしたいのです。
写真を添付しないと理解出来ないかな?
ココは写真を添付出来ませんよね?
>> ひろ さん
ご返信ありがとうございます。
写真を添付することはできないんですよね、すみません。
もしかしてウィンドウのサイズを保存・復元したいということでしょうか?
それでしたら [ツール] メニューの [オプション] から [基本] タブのなかの右下のほうにある [ウィンドウの位置とサイズを復元] という項目にチェックを入れますと、次回起動時からウィンドウのサイズが復元されるようになりますのでお試しください。
出来ました
幅と高さを1000にしたら希望する状態になりました。
文字数90だから幅90と入れたら変な状態になったのでおかしいな~と思い聞いてしまいました。
幅1000 高さ1000にして希望の状態になりました^^
>> ひろ さん
うまく行ったようで良かったです ^^
[ウィンドウの位置とサイズを復元] のところで設定する数値は [文字数] 単位ではなく「ピクセル」単位ですが、どこにも記載していないのでわかりづらかったですね。次のバージョンでは [px] と明記しておきます。
幅 1000、高さ 1000 のような指定方法で大丈夫です。
小ネタですが、幅、高さなどをすべて 0 に設定すると、固定サイズではなく、前回終了したときのウィンドウ位置・サイズを記憶してくれるようにもできます。
前にも紹介したのか覚えてないですけど……><
何か名前が凄そう?なエディタ紹介します!><b
今後の開発参考にどうぞ!><
URL:https://www.ultraedit.com/
>> がちょぴん さん
情報ありがとうございます。
UltraEdit、ずいぶん昔に Mery の開発の参考にしようと色々なエディタを集めていたときに触ったことがあるような気がしますが、現在はこんなゴテゴテした感じになってるのですね ^^;
$99 ですが、売れているのかどうかが気になります (w
10年以上、TeraPadを愛用し続けていましたが、最近からはこの傑作テキストエディタMeryも併用して使わせていただいております。
自動バックアップそして、半ページ送りも追加されて、ありがたい。
また、絵文字が、複数のコードを合体させて表現するというタイプがあること、初めて知りました。
とにかく、素晴らしいソフトを、ありがとう。
パソコンを新規調達して最初にやる儀式
・USB に詰めた Ter〇Pad をインストールする事
・デスクトップ画面にアイコンが表示されるのをみてホッとします
・これで、人とPCの〝取っかかり〟が出来ました。(メモ帳は使わない)
・ネット接続なんて後回し。外付けハードディスクを調達するのが先
上の人と同じく、 Ter〇Pad でエディタ入門したひとり。当時はこれしかなかった。
grep も正規表現もマクロもないけど、当時はそんなの必要じゃなかった自分。
Mery と Ter〇Pad を交互に使っている日和見者はこの私です。
meryを5年ほど毎日のように使っています。
meryのない生活は考えられません。
心から感謝しています。
正規表現を用いた置換を行う際に
例えば、
$1
を含む文字列に置換したい場合、
置換後の文字列欄に何と打ち込めばいいんでしょうか
>> MrDr さん
Mery をお試しくださりありがとうございます。
Ter〇Pad さんはシンプルで完成度の高いテキストエディタですね。更新が終わってしまって残念です。
複数の絵文字を組み合わせた絵文字に対応しているエディタは現在のところ Mery だけ!(たぶん) なので、今後とも応援よろしくお願いいたします ^^
>> tisi さん
とりあえず、Mery もその儀式に参加させてあげてください (w
Ter〇Pad ユーザさん、多いですねー。私は秀〇派ですが、秀〇は機能が多すぎて設定画面を開いたら「うわー」ってなってそっと閉じちゃいますから、ユニコードに対応した Ter〇Pad があれば最強なんですけどね。
私はパソコンを新規、または OS リカバリしたあとに必ず入れるソフトとしては、Explzh と foobar2000 と Media Player Classic だけですね。Mery は入れません (w
>> uint8_t さん
ご愛用ありがとうございます。そして、最高の誉め言葉をありがとうございます。
執筆、またはコーディングのお役に立てていただければ幸いです。
お気づきの点などございましたら、お気軽にコメントよろしくお願いいたします。
>> 名無し さん
そう言われてみるとそうですね。
私は、正規表現はニワカなので質問されてもわかりません… ^^;
鬼雲という正規表現ライブラリの仕様なので、ググって何か見つかったら教えてください (ぉぃ
って、$1 とかでググってもヒットしないので全然わかりませんね…。鬼雲に詳しい人が降臨してくれるのを待つしかなさそうです…。
私は詳しくない人なので、「$$1」にすれば「$」がエスケープされるかとおもいましたが、エスケープされないみたいですね。
2ステップで置換する方法しかおもいつきません。
「aaabbbccc」の「bbb」を「$1」に正規表現オプション有効で置換するとして、
①検索する文字列「(bbb)」、置換後の文字列「$${1}1」で置換 (※置換後は「$bbb1」となる)
②検索する文字列「(bbb)」、置換後の文字列「」(Deleteで空欄にする) で置換 (※置換後は「$1」となる)
検索対象の範囲や検索条件の正規表現の内容によって「$${1}1」の部分が「$${2}1」とかになるかもしれません。①では「bbb」の捕獲式集合を返す「${n}」を $と1 で最初に囲っておいて「$」「${n}」「1」とします。捕獲式集合の数が10コ以下なら「$$11」でもです、多分。
正規表現エンジンは、正規表現と文字列を入力として受け取りマッチ結果を出力として返すプログラムに過ぎないので、結果の扱い方=置換については Mery 側次第の気がしますがどうでしょう。
この件に関して少し試した結果をまとめておきます。
検索対象の文章: aaaaa
検索文字列(正規表現): (a+)
置換文字列 → 実行結果(補足)
\ → (削除される=空文字に置換される)
\\ → \ (エスケープが効く)
$1 → aaaaa (問題なし)
$$1 → $aaaaa (エスケープが効かない。「$1」には置換できない)
\k<1> → aaaaa ($1の別表記。問題なし)
\\k<1> → aaaaa (エスケープが効かない。「\k<1>」には置換できない)
\\ は効くのに \\k<1> は効かないあたりが怪しい…。
ちなみに JavaScript では「$$」と重ねることでエスケープが効きます。
"aaaaa".replace(/(a+)/,"$1") //→ "aaaaa"
"aaaaa".replace(/(a+)/,"$$1") //→ "$1"
最近存在を知って便利に使っています。
ありがとうございます。
> 正規表現を用いた置換を行う際に
> 例えば、
> $1
> を含む文字列に置換したい場合、
> 置換後の文字列欄に何と打ち込めばいいんでしょうか
たぶん、
\$$11
かな。
ただし、$1にキャプチャーした文字列が入っていない
ことが条件です。
つまり、$1~$9までキャプチャーした文字列が入って
いなければどれを使っても良いことになります。
(\$$11 → \$, $1, 1 に分解)
ちなみに、バージョンの違いがあるのかもしれませんが、
同じ鬼雲を正規表現エンジンに持てるサクラエディタは
この方法では上手くいきませんでした。
童さんの
> ただし、$1にキャプチャーした文字列が入っていないことが条件です。
をヒントにして
"正規表現オプション有効" で「aaabbbccc」を「aaa$1ccc」に置換できました。 (※「bbb」→「$1」に)
○ 検索する文字列「()bbb」、置換後の文字列「$$11」 で置換
または
○ 検索する文字列「(()bbb)」、置換後の文字列「$$21」で置換
なぜか
× 置換後の文字列「$${1}1」 および 「$${2}1」 ではだめでした。
ベータ版と関係ない話なのでこの辺でオシマイにしませんか…?
面白い。
検索文字列内での後方参照が \1 ~ \9 しか使えないのに、置換文字列の後方参照が \1 ~ \9 に加えて $1 ~ $9 も使えてしまうのですね。で、置換文字列で \\n のエスケープは効くけど \$n も $$n もエスケープが効かないと。
とりあえず置換文字列での $n の後方参照を使えなくするのが乱暴だけど正解な感じ。
処理系によっては検索文字列内の後方参照が $1、置換文字列の後方参照が \1 みたいに不統一な物もあってよくハマります。
みなさん、コメントありがとうございます。
私がなげやりなコメントを投稿してしまったのでこんな方向に話が…!スミマセン ^^;
結論に至るまでいろいろあったのですが、中略。
結論から申しますと、masme さんのコメントが正解です。
置換の仕様は Mery 側の問題なので、$1 のエスケープの実装は Mery 側で対応する必要があります。
調査してみましたところ鬼雲搭載のエディタでも $1 のエスケープの実装はあまりされていないようで、E〇Editor さんはエスケープ効きませんし、童さんがご指摘の通り、サク〇エディタさんは $ が余計に返ってきたりしますね。
で、Mery で対応したいと思っている仕様につきましては JScript の replace メソッドに準拠して $$1 表記で $1 という文字列になる実装にしようと考えております。
現状の Mery の仕様で対応する場合は sukemaru さんの「$$11」という表記が正解ですね。
あと、masme さんのご指摘の \\k<1> のエスケープが効かない件は、\k<1> の実装は私がエディタエンジンを無理やり書き換えて実装した機能なので、エスケープに対応するのはちょっと難しそうなので、保留とさせてください。
通りすがりさんのコメントも一理ありますが、どちらかというと $ 系のほうが Mery のエディタエンジンの本来の実装になります ^^;
$ と \ はそれぞれ Ruby 系と Perl 系だった気がしますが、Mery のエディタエンジンの仕様ではどちらでもいけるようになっていますね。といっても、\1 ~ \9 までを $1 ~ $9 に内部で置き換えているだけなので、例えば \0 はダメだけど、$0 は OK みたいな違いはありますが…。
と、こんな感じでこのネタはクローズとさせていただいてよろしいでしょうか…? ^^;
賛成です。
できましたら、Mery.txt内に鬼雲のコピーライト/リンク以外にも、鬼雲のドキュメントへのリンクや、Meryが準拠しているところのJScript、JavaScriptのリファレンスへのリンクもほしいかも。迷ったときにどこの情報を参照すればよいのか明らかになっていれば、自力解決への近道になりますので。
e.g.
Onigmo/RE.ja at master · k-takata/Onigmo · GitHub
https://github.com/k-takata/Onigmo/blob/master/doc/RE.ja
JScript ランゲージ リファレンス - MSDN
https://msdn.microsoft.com/ja-jp/library/cc409859.aspx
JavaScript リファレンス - MSDN
https://msdn.microsoft.com/ja-jp/library/yek4tbz0(v=vs.94).aspx
,,, etc.
置換の問題がひとまず解決したところで追加の質問ですが、
置換の文字列で\b(バックスペース)が使えないのは仕様でしょうか?
> 置換の問題がひとまず解決したところで追加の質問ですが、
> 置換の文字列で\b(バックスペース)が使えないのは仕様でしょうか?
ちゃんと動いてるように見えるんだけど?
例として、
文字列:surrealist
検索する文字列:list\b
置換後の文字列:LIST
参考にしたのはRuby 2.5 リファレンスマニュアルの正規表現のアンカーの項
https://docs.ruby-lang.org/ja/2.5.0/doc/spec=2fregexp.html
動いてないように見えるのは日本語を検索しようとしてるからとか?
>>fooさん
onigmo(鬼雲 ←鬼車 ←Ruby/Perl)の仕様で、\b は文字集合 […] のなか以外では単語境界をあらわすアンカーです。
意図しているところはおそらく、特定の文字列(e.g. HOGE)を検索してマッチした場合に末尾を1文字削る(→ HOG に置換)というかんじだと思いますが、マクロのほうがよさそうな気が…
正規表現や置換についての質問は、フォーラムに新規スレッドを立てるとよろしいかと。
あるいは既存のスレッドを利用することもできますよ。
「正規表現での置換について」
https://www.haijin-boys.com/discussions/3297
>sukemaruさん
>onigmo(鬼雲 ←鬼車 ←Ruby/Perl)の仕様で、\b は文字集合 […] のなか以外では単語境界をあらわすアンカーです。
いや、それはわかっていますよ。
検索文字列ではなくて、置換文字列中で\bが使えないかということです。
検索文字列 「.」 ←とりあえず何でもいい。
置換文字列 「\b」 ←ここで使いたい。
テキスト中にバックスペースを入れることはほとんどないんで別にいいんだけどさ。
みなさん、コメントありがとうございます。
当記事に関するコメント以外の Mery へのご質問・ご要望などはコメント欄ではなくフォーラムのほうに投稿していただけると、文字も大きくて読みやすいですし、個人宛に返信しやすいですし、ページ検索で情報を見つけやすくなりますので、ご活用・ご協力いただけると幸いです。フォーラムといってもそんな大げさなものではないので、お気軽にどうぞ。
>> sukemaru さん
ご返信ありがとうございます。
> Meryが準拠しているところのJScript、JavaScriptのリファレンスへのリンク
今回はたまたま JScript の仕様が一番それっぽいかなと思って合わせようと思っただけで、Mery が JScript の仕様に準拠しているわけではありません。
また、鬼雲の仕様にも準拠しているわけではなく、正規表現のエンジンに鬼雲を使っているというだけなので、鬼雲で使用できる機能がすべて Mery でも使えるというわけではありません。
なので、ドキュメントには鬼雲を使ってますよーぐらいの記述でお茶を濁させていただけますと、私の気持ちが楽になります ^^;
>> foo さん
コメントありがとうございます。
調べてみましたところ置換の文字列で \b が使えないのはエディタエンジンの仕様ですが、私がわざとそういう仕様にしているわけではなく、エディタエンジンがそもそも実装していないだけですね。
\b の実装は可能ですが、置換文字列に \b を実装したとしても、1 文字削除されるわけではなく、制御コードの [BS] (ascii コードの 0x08) が入力されるだけですが、その意図で合っていますか?
>\b の実装は可能ですが、置換文字列に \b を実装したとしても、1 文字削除されるわけではなく、制御コードの [BS] (ascii コードの 0x08) が入力されるだけですが、その意図で合っていますか?
はい、合ってます。
どうしても実装してほしい機能というわけでもないのですが、検索文字列中では正規表現のアンカーと被るので文字クラス内([\b]とか)だけだけど使えるので、仕様としては合ったほうがよいかなぐらいの感じです。
>> Kuroさん
ありがとうございます、了解しました。
正規表現がらみはフォーラムに専用スレッドを用意して、継続的に疑問/意見/情報などを持ち寄れるかたちになるといいですね。
個人的意見として 「$1」 のエスケープについては、参照すべき特定のリファレンスがないのでしたら \ でエスケープするほうが良いかとおもいます(onigumo のドキュメントでは一般的にエスケープシーケンスとしてメタ文字 \ しか記載されていないようですので)。
マクロで記述する場合は記述するプログラム言語の仕様に、通常の置換ダイアログやアウトラインなどでの正規表現では onigumo のドキュメントに近いかたちがいいんじゃないかなあ…と。 :)
なにげに onigumo よりも bregonig のほうがヘルプドキュメントの説明が充実してたりするんですよね :(
Twitterやってないからここで。ちょっと古いつぶやきだけど。
> Mery の IP Messenger プラグイン、時代的にもう公開終了しようと思うのですが、まだ使ってる人います?
使っていないです。
> あと、諸事情により Mery のタブの閉じるボタンの絵を変えようと思いますが、気にする人います?
全く問題ないです。
>> foo さん
ご返信ありがとうございます。
なるほど、把握しました。確かに、\t\n\r\f\a\e\v は対応していますから、仕様として \b も対応しておいたほうが良いですね。次のバージョンでは改善しておきますね。
>> sukemaru さん
ご返信ありがとうございます。
そうなんですよね、フォーラムですとサイト内検索で情報として検索できるようになっていますし、記事から分離されていますので、某巨大掲示板みたいなノリでざっくばらんにやっていただけます (w
> 個人的意見として 「$1」 のエスケープについては、参照すべき特定のリファレンスがないのでしたら \ でエスケープするほうが良いかとおもいます
\ でエスケープも一理ありますね。
おそらく bregonig 系の仕様なのだと思いますが、bregonig って onigmo と名前は似ていますが、bregonig は Perl 互換のライブラリである bregexp との互換性を優先して開発されているものなので、Ruby 互換 (というか Ruby で使われている) の onigmo とは作法が異なる部分もあります。
bregonig は、若干、融通の利かない部分がありまして、Mery では onigmo を採用していますので、たぶん $$1 表記のほうが正解に近いのではないかなーと考えております。
> なにげに onigumo よりも bregonig のほうがヘルプドキュメントの説明が充実してたりするんですよね
そうですね。bregonig は昔から多くのテキストエディタで使われていた bregexp 互換ということで、そのまま採用されているエディタも多いため、情報もたくさんあるのだと思います。サク〇エディタさんなど、超有名なエディタでも採用されていますしね。
正規表現エンジンの好みは人それぞれだと思いますので、それを基準にエディタを選択されるという方もいらっしゃいますね。onigmo はマニアックなかたには評判が良いです (w
>> 名無し2 さん
コメントありがとうございます。
> 使っていないです。
ワーイ!貴重な 1 票、ありがとうございます!さっそく撤去します ^^
> 全く問題ないです。
ありがとうございます。前よりもちょっとダサい感じになってしまいますが、Google Chrome で使われている「×」ボタンみたいな感じになりますので、今より見やすく、押しやすくなります。
新しいエディタ発見したので共有します!><
今後の開発参考に見てもらえますと幸いです!><
URL:https://www.creatixbih.com/lines
「半ページ送り」なる機能について、Mery.ini の [General] に PageScroll=1 を追記してもデフォルト状態と動作に違いがありません。
これって、例えば、ScrollMargin=0 の場合で、表示できる行数が10行、行番号:1~10 が表示されているときに、
[PgDn]キー(私の場合は[Fn]キー+[↓]キーになりますが)を押したときに、
行番号:6~15 が表示されるということですよね?
でも、PageScroll=1 にしても行番号:11~20 が表示されます。
Windows 7 - Mery(x86) Version 2.6.11
オプションのキーボードタブの新しいキー欄で、[Fn]キー+[↓]キーを押すと、PgDn と表示されるので、押すキーは間違っていないと思います。
他の人は正常に動作しているみたいですので、たぶん他の外部的な要因だとは思いますが。
また、デフォルトのページ送りで特に問題ありませんし、他の人の環境では再現しないでしょうから、さらっと読み捨てていただいて構いません。
余談ですが、報告するときのために、バージョン情報ダイアログで Mery のバージョン(可能なら OS 等も)をコピーできたらちょっと便利だなと思いました。
まぁ、実際使用されることはほとんどないでしょうし、ちょこちょこっと書き込むだけのことですが。
>> がちょぴん さん
情報ありがとうございます。
このエディタは初めて知りました!
無料だったので早速インストールしてみましたが、非常にシンプルですね。なんか ToDo 機能っぽいやつとかカラーピッカーなどが搭載されていて斬新です ^^
>> 名無し2 さん
コメントありがとうございます。
> 行番号:6~15 が表示されるということですよね?
これが、違うんです。
『「半ページ送り」なる機能』と表記しているのは、どう呼べば良いのかわからない機能だからそう書いていますが、半ページスクロールするわけではありません。私も最初は半ページスクロールすることだと思って、そんなのマクロでやれば~とか回答していたのですが… ^^;
最近、知人に教えてもらったのですが英語圏では Overscroll と呼ばれている機能らしくて、スクロールの限界を超えてスクロールするようなイメージです。
PageScroll=0 (デフォルト) だと、[PgDn] やスクロールバーで一番下までスクロールしても、一番最後の行はあんまり上のほうに上がって来ませんよね?
PageScroll=1 に設定して、一番下までスクロールすると、最後の行が画面の真ん中あたりまで上がって来ます。
PageScroll=2 に設定して、一番下までスクロールすると、最後の行が画面の一番上に来るまでスクロールできるようになります。
> バージョン情報ダイアログで Mery のバージョン(可能なら OS 等も)をコピーできたらちょっと便利だなと思いました。
そうですね、考えておきます。コピーしたらフォーラムなどに貼ってもらえるようなテンプレ (バージョン、OS とか、ここに内容書いてね) みたいなヤツがクリップボードに貼りついたら、便利かも ^^
ご回答ありがとうございます。
なるほど!
ページの最終行の次ページでの表示位置ではなく、
[PgDn]キーやスクロールバーを使って一番下までスクロールしたときの
テキストの最終行の表示位置に関する設定だったのですね。
大きく勘違いしていました。失礼しました。
> PgDn キーやスクロールバーを使ってスクロールしたときに、最終行を上のほうまでスクロールできる仕組みです。
> 2 が全ページ (1 行残し)
この説明がこれでスッキリしました。
はじめましてシリルと申します。最近Meryと出会いました。夢中です。
□全ページ送りっぽい機能に、賛成一票です
昔、Cやアセンブラを少しかじったことがあります。あまり覚えてないですが最終行が一番上までスクロールできるのはしっくりします(今は最終三行ですよね)。
全角半角の空白、タブ、改行、EOFは見えてないと安心できない派です。さらにEOFは[EOF]と表示されるのが嬉しいので設定によって切り替えることが出来て満足です。
□メニューバーやタイトルバーの色設定にこっそり同意です
おそらくスクロールバーやステータスバー、タブ表示やその下地、ペイン(ウィンドウ?)の仕切りも含めてだと思いますが、費用のこともありますし無茶は言えません。
メインメニュー(ファイル、編集など)を隠すことは出来ないでしょうか?ゲームなどではそもそも無いか、ESCキーでトグル動作(隠れたり出てきたり)します。隠し機能として……
□アウトラインのフォントとサイズ早速変えました、嬉しいです
これが可能なら良かったらアウトプットバーも設定したいです。良かったら文字色も。
アウトラインの中の強調表示と言いますか「カレント行は今ここだよ」を示す機能なんですが、どのテーマを選んでいても白背景に黒文字になっています。意味合いとしては「選択範囲」かなと思い、iniファイルの[Outline]にSelectionForeColorなどを設定してみましたがやっぱり駄目でした。なんとかならないでしょうか
□マクロに感動しました。特に文字カウントと自動ルビ振り、大好物です
VBとJavaのスクリプトはさっぱりわからないんですがなんとかなるものですね、文字カウントで段落数や漢字率を表示したり、結果をダイアログではなくアウトプットバーに表示するようにしました。
自動ルビ振りは、驚愕しました。ふりがなまでちゃんと入力されるだと!PCの前で「えぇ!」って声が出ました。本当にありがとうございます。
実は私もマクロ作ったんですよ。|《》のルビ記号三文字を入力するだけのマクロ。一行で書けました。このレベルの違いは、言及し難いです。
□集中執筆モードに少し興味があります
こういうモードを使用した経験が無いのでいまいちピンと来ないのですが、私はMeryを執筆に特化して使用しようと考えていますので少し興味があります
このように私はMeryに夢中です。このトピックに関係ない事まで話してしまい申し訳ありません。今後もよろしくお願いします
>> シリル さん
Mery をお試しいただきありがとうございます。Mery を開発している者です。
> 一番上までスクロールできるのはしっくりします(今は最終三行ですよね)。
その 3 行はスクロールマージンという別の機能の影響です。
スクロールマージン機能は、スクロール時に常に画面の上下に次のページの 3 行 (設定で変更できます) を表示しておくためのオシャレな機能ですが、これを 0 にすれば 1 番上までスクロールできるようになります。
全ページ送りっぽい機能の設定ができたとのことなので、Mery.ini 直接編集は大丈夫だと思いますので方法を記載しておきます。
[General]
ScrollMargin=0
↑こんな感じで INI に追記すれば上下の 3 行をナシにできます。
> メニューバーやタイトルバーの色設定にこっそり同意です
メニューなども含め、全体のテーマ機能みたいな感じのヤツですよね。結論から申しますと、様子見です。詳しい事情は次のバージョンの記事にて。
> メインメニュー(ファイル、編集など)を隠すことは出来ないでしょうか?
それを隠してしまうと何もできなくなってしまいますから… ^^;
でも、集中執筆モードという、画面上に余計なものを一切表示させずに文字入力に集中できる仕組みを検討しております。
> これが可能なら良かったらアウトプットバーも設定したいです。
アウトプットバーはメイン画面と連動していますね。デザイン性重視ということで勘弁してください (w
> アウトラインの中の強調表示と言いますか「カレント行は今ここだよ」を示す機能なんですが、どのテーマを選んでいても白背景に黒文字になっています
はい。残念ながらアウトライン機能は Windows 標準のツリー部品を使用していますので選択中の色などは変更することはできません。
恐らく黒背景だと選択中の色が見づらいとかだと思うのですが、現状、Microsoft の動向次第といったところです。(詳しい事情は次のバージョンの記事にて)
> 自動ルビ振り
そのマクロは私が作ったものではありませんので、作者様にお礼を言ってあげると喜ばれるかもしれませんね ^^
> 実は私もマクロ作ったんですよ。
おお、私はほとんどマクロを使わないので、すぐにマクロを書ける人はスゴイなぁって思います。面白いマクロができたら、MeryWiki のほうにぜひ投稿してみてくださいね ^^
> 集中執筆モードに少し興味があります
これは、画面の不要なものをすべて排除して、完全に文字入力だけに特化したモードです。もちろんデスクトップとかも消えちゃいます。
英語圏では Zen Mode と呼ばれる機能ですね。
もちろんショートカットキーを覚えてさえいれば各種機能にはアクセスできますので、集中力を途切れさせることなく文字入力できる感じ (の予定) です。
今後とも、応援よろしくお願いいたします。
>Kuroさん
全ページ送りっぽい機能の最終三行の件教えて頂きありがとうございました
早速スクロールマージンを設定して理想通りになりました