3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

mew-search-with-builtin 1.4

Last updated at Posted at 2021-02-06

update 1.58 - 2022-02-19

  • Emacs "28.0.91", "29.0.50" だと、エラーで Mew が起動しないので回避策を入れる.
  • 管理法を変えたためソース区別用の Revision が大きく変わっています.

Mew の全文検索を Mew だけで行なう拡張です

今回はアップデートなので基本的なことは初期投稿の記事(2018/10/31)を御覧ください。

進捗状況をモードラインに表示

慣習的にグローバルな案件を表示する領域である末尾側(右端)の日付表示等を表示する箇所の手前に挿します。
なるたけ短かくできるよう % を区切代りにしてパーセンテージを先にしてあります。
モードラインの更新タイミングによっては表示は更に大味になり、表示幅もあまり取れないので今どこを検索しているのかも判らなくなりましたが、常に表示されている分ストレスは前のものより軽減されたと思います。

mew-search-mode-line3.png

目につくようにしてみる
(set-face-attribute 'mbs-mode-line nil :foreground "saddlebrown" :background "skyblue")

mew-search-mode-line4.png

モードラインはスクロール等すると更新されますが、 C-l で画面更新できるような場面ではそうするのがいいでしょう。

DL & Install

ようやく github の使い方が多少は判ってきて、デコーダとまとめて置けるよう置場をgithub.com/s-fubuki/mew-search-with-builtin.elに変更しました。

load-path の通ったディレクトリに DL した2つのファイルを置き require してください。

.mew.el
(require 'mew-search-with-builtin)

最近判った新たな問題点

今回のモードライン対応に関係なく、(マルチスレッドサーチ)実行中にツールチップ、いわゆるバルーンヘルプを表示すると
Emacs がフリーズすることが判明したので、フックで tooltip-mode をオン/オフしてください。
何か回避法が在りそれが判れば対応したいとは思っています。

.mew.el
;; マルチスレッド実行中相性の悪い tooltip / migemo サーチを切る.
(add-hook 'mbs-front-hook
          #'(lambda ()
              (tooltip-mode -1)
              (and migemo-isearch-enable-p (migemo-isearch-toggle-migemo))))
(add-hook 'mbs-after-hook
          #'(lambda ()
              (tooltip-mode 1)
              (or migemo-isearch-enable-p (migemo-isearch-toggle-migemo))))

その他の修正 & 変更点

除外するフォルダの指定でリストが使えなくなった

リストで指定していた場合正規表現でひとつにまとめてください。

変更した理由は正規表現が使えるなら list 指定できる意味は薄いし、非list の方が標準関数との親和性も高いと気づいたためです。

いくつかの設定法
(setq mbs-ignore-directory "\\(trash\\|draft\\|backup\\)")
(setq mbs-ignore-directory (regexp-opt '("trash" "draft" "backup")))

quoted-printable で出る邪魔なワーニング表示が出なくなった

エコーエリアに表示されないだけで *Messages* buffer には残ります。

エラー時の後始末にしくじっていたバグを修正

間違って空文字(空文字入り正規表現)などを入力した場合デフォルトではエラーで中止するが、その後始末がちゃんとできていなかった。

kill-emacs-hook でも後始末

マルチスレッドの後始末はエラー時 と mew 終了時だけに実行していたが Emacs 終了時にも実行するようにした。

変なタイミングでアボートしてしまいゴミが残ったとき

サーチ結果を集めたヴァーチャルバッファ生成のタイミングでキーボードをいじっていると、
バッファ生成にしくじってゴミスレッドができることがありますが(ごめんなさい今の処直せません)、
Mew のサマリのバッファに移動して Q で Mew を完全終了させると、
スレッドのクリナップ関数も実行するので、これが手っ取り早い正常化の方法です。

過去の Update

1.5 - Sat Feb 27 10:08:19 2021

BUG fix 主にマルチスレッド・モードでエンバグしていた箇所の修正です.

  • prefix 起動によるフォルダ指定のサーチがちゃんと動いなかったのを修正.
  • シングルスレッド・モードの動作がおかしくなっていた箇所を修正.

新しい変数

変数 mbs-laptimenon-nil にセットしておくとサーチにかかった時間をエコーエリアに出力します.
と言ってもすぐにかき消されるので C-h e 等で *Messages* buffer を覗かないと見れませんが.

multipart-decode

multipart-decode.el の方も正規表現を rx マクロにするなど、 主にメンテ性向上のために色々いじったのですが機能や速度的な違いは無いので、 常に新しくしていたい等なければこちらは前の版のままでいいかもしれません.

MIME ライブラリについて

Emacs にも標準で MIME ライブラリがあったと知り(infoにあった)、 ヘッダの展開は mail-decode-encoded-word-region で置き換えできると判り、 それも試したのですが速度な違いが出なかったので、とりあえず差替するなら次の機会にします.

mew でも同様に mew-decode-rfc822-header などで出来ると判ったのですが、 単に呼び出すだけだと途中でフリーズしてしまうことがあるので保留です.
こちらは face まで追加するので、Mew 用に特化したものになっているようです.

関連記事

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?