【要望】文字数カウントをリアルタイム表示してもらいたい

  1. Windows11 Home 64bit 21H2 Mery 3.3.5 64bit

    いつも大変便利に使わせていただいています。
    就職活動中の学生です。

    入力文字数の常時表示のオプションを用意していただきたいです。

    就活のエントリーシートで「400文字以内」等の文字数調整の際に
    毎度Ctrl + Aで全選択して文字数を確認しています。

    文字数を常時ステータスバーに表示していただけると大変助かります。

    https://www.haijin-boys.com/discussions/2067
    2013年の投稿でも同様の要望があるのを拝見しましたが、
    ぜひ対応していただけると幸いです。

    どうぞよろしくお願いいたします。

     |  yasu  |  返信
  2. ご愛用いただきありがとうございます。

    > 就職活動中の学生です。

    お疲れ様です。大変な時期だと思いますが、健康に気を付けて就活がんばってください!

    > 就活のエントリーシートで「400文字以内」等の文字数調整の際に毎度Ctrl + Aで全選択して文字数を確認しています。

    エントリーシート、私は何も書くことがなくて本当に苦痛でした…。思い出すだけでウァァ…。てなってしまいます。

    > 2013年の投稿でも同様の要望があるのを拝見しましたが、ぜひ対応していただけると幸いです。

    自宅で使う用途であれば、リアルタイムに文字数をカウントできる「プロ生ちゃん」プラグイン (無料) がおすすめです。

    【プロ生ちゃんプラグイン】
    https://mery.booth.pm/items/1466284

    空白を含めた文字数、含めない文字数、行数や単語数が表示できたり、時計やタイマー、CPU やメモリの使用率なども表示できたりする便利なウィジェットです。

    プロ生ちゃんというのはプログラミングの勉強会を全国各地で開催しているコミュニティのキャラ (ゆるキャラみたいな感じ) で、萌えキャラですが真面目です。

    萌えキャラ好きならぜひ。萌えキャラ苦手でも、プログラミングがお好きでしたら一度、お試しくださいませ。

    【プロ生ちゃん】
    https://pronama.jp/

     |  Kuro  |  返信
  3. 迅速でご丁寧なご返信ありがとうございます!!

    プロ生ちゃんプラグインを使ってみました。
    たしかにカウント機能があり便利でした。

    しかし、正直萌え系キャラがあまり好きではありません……。
    常時表示されるのが気になってしまいました。
    (ほんとにすみません…!)

    もしも今後Meryでアップデートされる場合は、
    標準のMeryで普通のステータスバーに表示されると、
    大変うれしいです。

    わがままで大変申し訳ございませんが、
    ご検討いただければ幸いです。

    どうぞよろしくお願いいたします。

     |  yasu  |  返信
  4. バージョン 2.3.0 から対応しているマクロのイベント駆動を使って、ほぼリアルタイムで文字数をステータスバーに表示することができると思います。

    2013年の投稿に掲載されているマクロだとサロゲートペアの文字が複数あると正しくカウントできないようなので、そこを修正しつつ除外する文字を指定できるようにしたマクロを書いてみました。

    // 除外する文字
    var excludeChars = "";
    
    var str = document.Text;
    var reg = new RegExp("[\uD800-\uDBFF][\uDC00-\uDFFF]" + (excludeChars && "|[" + excludeChars + "]"), "g");
    Status = str.length - (str.match(reg) || []).length + " 文字";

    【使い方】
    1. 上記マクロをコピペして適当な名前を付けて拡張子 .js で保存
    2. [マクロ] メニューの [カスタマイズ] で [追加] ボタンを押して保存したファイルを選択して開く
    3. リストからマクロを選択し [イベントで実行] にチェックを入れる
    4. [イベント] ボタンを押して [テキストが変更された時] と [アクティブな文書が変更された時] にチェックを入れて [OK] ボタンを押して閉じる

    これで、テキスト編集が止まって1秒後にステータスバーに文字数が表示されます。遅延時間はイベント選択のところで変更できますが、あまり少なくしすぎないほうがいいと思います。

    除外する文字を指定するには2行目の変数の値を変更します。

    // (例) 改行を1文字としてカウントしたくない場合
    var excludeChars = "\n";
    
    // 列挙することで複数指定できます
    // (例) 半角空白・全角空白・タブ・改行をカウントしない
    var excludeChars = "  \t\n";
     |  ucky  |  返信
  5. ご返信ありがとうございます。

    > しかし、正直萌え系キャラがあまり好きではありません……。

    そうでしたか。お急ぎかと思いましてマクロではなく導入が簡単なプラグインをご提案させていただきましたが失礼いたしました。

    > もしも今後Meryでアップデートされる場合は、標準のMeryで普通のステータスバーに表示されると、大変うれしいです。

    簡単な機能はマクロで対応していただくというスタイルなもので、標準機能としての実装はご要望が多ければ将来的に検討してみたいと思います。

    マクロって使うのが面倒くさそうに思われるかもしれませんが、Mery のマクロははじめてでも簡単に使えるようになっているので、一度、お試しいただければと思います。

    すでにご一読いただいていると思いますが、2013 年の投稿で ks さんが投稿してくださった 1 行マクロで実現できます。
    https://www.haijin-boys.com/discussions/2067

    以下は、マクロを登録してリアルタイムに文字数を表示するまでの手順です。

    --------
    【マクロの登録手順】

    (1) Mery で [ファイル] メニューから [新規作成]
    (2) マクロをコピペ

    Status = (Document.Text.length - (Document.Text.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/)||[]).length) + " 文字";

    (3) [名前を付けて保存] で任意のファイル名と拡張子を .js にして適当なフォルダーに保存
    (4) [マクロ] メニューの [カスタマイズ] をクリック
    (5) [追加] ボタンでさっき保存したファイルを選択

    これでマクロが登録されます。[マクロ] メニューからそのファイルを実行すればステータスバーに文字数が表示されます。

    リアルタイムで文字数を表示したい場合は続けて以下の手順です。

    (6) [マクロ] の [カスタマイズ] ダイアログでマクロを選択して [イベントで実行] にチェック
    (7) [イベント] ボタンをクリックして [テキストが変更された時] にチェック
    (8) 任意で [テキストが変更された時] の [遅延時間] を設定できます (デフォルトは 1 秒)

    あとは [OK] ボタンですべてのダイアログを閉じれば完了です。

     |  Kuro  |  返信
  6. >> ucky さん

    ご協力ありがとうございます。

    マクロの登録が難しいのかなという点と、リアルタイムに表示する方法という点で考えてみたのですが、内容がかぶってしまいました。(私、書くのに 40 分以上かかってたってことになりますね…、お恥ずかしい)

    >> yasu さん

    すみません、ucky さんと内容がかぶってしまいました。

    ucky さんのマクロのほうがサロゲートペアにも対応されているし改行オプションもあるようなのでそちらをご利用ください。

    マクロの登録方法の説明についても ucky さんとほぼ同じなので、ucky さんの説明どおりで大丈夫です。

    [アクティブな文書が変更された時] もチェックしたほうが良いですね。タブを切り替えたときに再計算が必要でした。

     |  Kuro  |  返信
  7. >> ucky様
    ご丁寧にありがとうございます!!!
    マクロ初心者ですが、無事に文字数が表示されました!!
    最高です!本当にありがとうございます!!

     |  yasu  |  返信
  8. >> Kuro様

    ご丁寧にありがとうございます!
    無事にucky様の方法でできるようになりました!
    これを機に、色々とマクロに挑戦して、より使いやすいMeryに仕上げていきたいと思います!

    これからも愛用させていただきます!
    就活もがんばります!

     |  yasu  |  返信
  9. うまくいったようで良かったです。

    Mery のマクロは JavaScript なので Mery 以外でも Web 系などにも応用がききますから楽しんで使ってみてくださいね。

    就活、うまくいくことを祈っています。ファイトです!

     |  Kuro  |  返信
スポンサーリンク