リリースノートは、公開時の本文のまま載せています(日本語と英語が混在します)。

MrEditor のリリース履歴

1.22.1 — 2026-10-12

1.22.0 — 2026-10-12

1.21.0 — 2026-10-08

1.20.1 — 2026-10-05

1.20.0 — 2026-10-01

1.19.1 — 2026-09-29

1.19.0 — 2026-09-28

1.18.0 — 2026-09-24

追加

修正

1.17.0 — 2026-09-18

クリップボードは、コピーした瞬間から次の1件に上書きされる

貼り付け先を間違えたとき、これまでは戻る方法がコピー元のアプリを開き直す以外にありませんでした。

編集メニュー→クリップボード履歴

直近のコピーを並べます。選べばそのまま貼り付きます。ツールバーにも任意で追加できます(既定では出ません)。

ディスクには残しません。 終了すれば消えます。1Password 等が付ける「見せない」の印(org.nspasteboard.ConcealedType)が立ったコピーは記録しません。

MrEditorCore に積んだので、Pro(MrkEditor)側も同じ動きを自動で引き継ぎます。


macOS 13+ / Apple Silicon・Intel 両対応(universal)/ MIT Developer ID 署名・公証済みなので、右クリックは要りません。

1.16.0 — 2026-09-16

閉じたファイルを、開き直す

ファイルを閉じてすぐ「しまった」と思っても、これまでは File ▸ 開く… でパスを記憶から打ち直すしかありませんでした。

⇧⌘T で直近の1件から

閉じたドキュメントは閉じた順にスタックで持ちます。押すたびに末尾から1件 pop して開くので、押し続ければどんどん前まで戻れます。

保存先が確定していない新規ドキュメント(まだ「名称未設定」のもの)は積みません —— ディスク上に開き直す先が無いためです。

MrEditorCore に積んだので、Pro(MrkEditor)側も同じ動きを自動で引き継ぎます。


macOS 13+ / Apple Silicon・Intel 両対応(universal)/ MIT Developer ID 署名・公証済みなので、右クリックは要りません。

1.15.0 — 2026-09-05

日本語の、大きいファイル

日本語の CSV は Shift-JIS・CRLF・引用符つきで届きます。これを検索するのに 1 行ずつ文字列へ変換していて、1GB で 26 秒かかっていました。しかも終わった合図がありませんでした。

1.06GB の CSV を絞り込んで、1 行編集して、保存する 24 秒

24 秒・カットなし・等倍。1.06GB・581万行の Shift-JIS CSV を絞り込んで、1 行編集して、保存するところまで。5 秒あたりで検索バーの「件数 · %」が動きます。

Shift-JIS の検索が 11 倍速くなりました

前 後
Shift-JIS 1.06GB・581万行 26.2 秒 2.40 秒
UTF-8 1.26GB 1.2 秒 1.23 秒

26 秒のほぼ全部が String(data:encoding:) を 581 万回呼ぶ費用でした。release ビルドにしても縮みません(自分のコードではなく Foundation 側の費用だからです)。

探す語のほうを Shift-JIS のバイト列にして、直接走査するようにしました。Shift-JIS は 2 バイト目が ASCII と重なるので(「ア」は 83 41、語 "A" は 41)、当たった位置が文字の切れ目に乗っているかを確かめて誤爆を弾いています。EUC-JP も同じ経路です。

検索が終わったことが画面に出ます

前は 1 件当たった瞬間に「13 件」へ切り替わり、まだ増え続けるのに確定したように見えていました。

走査中   208,887 件 · 25%
         1,365,744 件 · 56%
終わり   1,374,496 件中 2 件目

進み具合が消えたときが終わりです。

変わらないこと

保存したファイルは、編集した行の外が 1 バイトも変わりません。Shift-JIS も CRLF も引用符も BOM も、そのまま通り抜けます。形式を保持する処理は書いていません。


macOS 13+ / Apple Silicon・Intel 両対応(universal)/ MIT Developer ID 署名・公証済みなので、右クリックは要りません。

1.14.0 — 2026-08-30

見たいログはサーバーにある。落とさずに開く。

ssh host:/var/log/app.log を ファイル ▸ リモートを開く…(⌃⌘O) に入れると、そのまま開きます。

認証は /usr/bin/ssh 任せです ── ssh_config・ProxyJump・多段・ssh-agent がそのまま効きます(ターミナルで繋がるなら、繋がります)。秘密鍵は保存しません。

正直なところ

手元のビューアとは別の面です。 構造化表示・diff・しおりは、まだ遠隔では効きません。向こうのコマンド(head / wc / tail / grep)に依存するので、BusyBox などで欠けていればその機能だけを畳んで、畳んだ理由を出します。編集も、いまは狙っていません(/etc は root 所有で、sudo 経路は作らない方針です)。


macOS 13+ / Apple Silicon・Intel(universal)。Developer ID で署名・公証済みなので、ダウンロードしてそのまま起動できます。

1.13.0 — 2026-08-28

巨大なログを見るための道具なのに、そのログは素のファイルとして転がっていないことが多い。パイプの向こうにあるか、圧縮されている。中でどれだけ機能があっても、そこへ届かなければ意味がありません。

入口を開けました

kubectl logs -f pod/api | mreditor     # パイプでそのまま
mreditor app.log.gz                    # gzip は展開して開く
mreditor logs.zip                      # zip も。複数入っていれば選ばせる

mreditor コマンドは 1 行で入ります(アプリ本体への symlink なので、アプリを更新しても張り直しは要りません)。

ln -sf /Applications/MrEditor.app/Contents/MacOS/MrEditor /usr/local/bin/mreditor

コマンドを使わなくても、ダブルクリックや「このアプリケーションで開く」で .gz や .zip はそのまま開けます。

判定は拡張子ではなく中身で行います。 .log のまま gzip されたファイルも、.gz という名前なのに素のテキストのファイルも、実際に世の中にあります。先頭の数バイトを見て決めるので、どちらも正しく開きます。

末尾が欠けていても、出せたところまでは開きます。 落ちたログの尻尾が切れているのは日常で、「壊れているので何も見せません」は、この道具が一番してはいけない返事です。

zip に複数のファイルが入っていれば、名前を並べて訊きます。1 つしか入っていなければ黙って開きます —— 選択肢が 1 つのダイアログは、確認ではなく手間でしかないので。__MACOSX/ と .DS_Store は出しません(Finder で圧縮すると必ず入るもので、並べると選択肢が実際の倍になります)。

しおり

⌘B で今の行に印。⌘; で次のしおりへ、⇧⌘; で前のしおりへ。印は行番号の左に出ます。

調査は往復します。 絞り込んで見つけた行から本文へ飛び、周りを読み、また戻る。戻り先を頭に置いておけるのは 1 つか 2 つで、それを超えると行番号をメモに書き写すことになります。

検索で言い表せる戻り先なら、⌘G のほうが速い。しおりが埋めるのは検索語にできない戻り先です ——「4000 行を眺めていて引っかかった 5 行」のように、共通する文言も時刻も無いもの。

セッション内だけで、ファイルには何も書きません。

変わらないこと

⌘; を使わなければ、これまでと同じです。パイプも圧縮も、渡さなければ動きません。

1.12.6 — 2026-08-27

⌘F を押すと、検索バーはいつも素の検索で開きました。構造化されたものを読んでいる間、やりたいのは「一致行へ飛ぶ」ことより 「絞る」 ことなのに、毎回そこへ 1 手かけて漏斗を入れ直すことになります。

もっと静かに効いていたのは往復のほうです。漏斗を使えないペイン(構造化・JSON)へ移ると、トグルは降ります。それ自体は正しいのですが、降りた理由が「本人が消した」のと同じ扱いで記録されていました。構造化と素のテキストを行き来するたびに、絞りたいという意図そのものが消えていたということです。

前に絞っていたなら、その状態で開きます

⌘F は、漏斗を最後に自分で押した状態で開きます。いつも絞って読む人は、最初の一度だけ押せば済みます。

覚えているのは意図であって、絞り込みそのものではありません。漏斗を使えないペインでは何も起きず、使えるペインへ戻ったときに当て直します。検索バーを閉じている間は当てません —— 開いていないのに本文が絞られるのは、事故にしか見えないからです。

何も変わらない人もいます

既定は off です。漏斗を使っていない人の ⌘F は、これまでとまったく同じように開きます。

変わるのは、一度でも自分で漏斗を押した後だけです。押していない状態に戻したければ、もう一度押して降ろせば、次からはその状態で開きます。

1.12.5 — 2026-08-22

絞り込むと、一致行しか残りません。でも調査は往復します。何が起きたかは、たいてい直前の行にあります。

これまでは、そこでフィルタを解除して、行番号を頼りに元の位置へ戻るしかありませんでした。絞り込んだ瞬間に文脈を失う道具だったということです。

一致行の、前後も出す

grep -C と同じことを、絞り込んだ画面の上で伸び縮みさせられます。

   1481  │ INFO   opening connection to db-03
   1482  │ WARN   pool exhausted, waiting
   1483  │ ERROR  connection reset by peer     ← 一致行
   1484  │ INFO   retrying in 500ms
   1485  │ ERROR  connection reset by peer     ← 一致行

入口は 2 つです。

ボタンでもアイコンでもなく、文字と数字にしました。絞り込んだ画面に「±2」と出ていれば、いま何を見せられているのかがそこで読めます。記号だけの切り替えは、気づかれません。

打った値はアプリの設定として覚えます(上限 100 行)。次に開いたファイルでも同じ見え方になります。

決めたこと

画面に出して、初めて分かったこと

テストは緑のままでしたが、配布するものと同じ .app で触って 3 つ見つけて直しました。

出たこと 直し
構造化表示中、文脈行だけが con… と潰れた 列幅を一致行だけで測っていた。文脈行も同じ表に並ぶので、表示している行から測る
「18 件中 1 件目」の末尾が切れて何件目か読めない 詰まったときに縮むのは検索欄だけにした(打った語は自分で覚えている)
出したはずの直前の行が画面の上に隠れる 一致行を最上部に置いていた。前後を出しているぶんだけ上へ寄せる

確認したこと

配布するものと同じ .app で、4 経路とも通しています。

条件 結果
小さいファイル(編集ペイン) ± 欄・キーボードとも効く
10GB・8642 万行、1 件に ±3 7 行が 0.1 秒未満で出る
12.8MB・900,001 行の CSV、構造化+フィルタ+前後行 桁を保ったまま前後が出る
⌥⌘] / ⌥⌘[ 1 行ずつ伸び縮みする

641 のテストが緑。Apple Developer ID で署名し、公証を通しています——ダブルクリックで開きます(Apple Silicon / Intel 両対応・macOS 13+)。

1.12.4 — 2026-08-21

桁を揃えたまま grep できる——それが 1.11 からの看板でした。ところが絞り込んだ結果の、肝心の値が読めていませんでした。

絞り込んだら、絞り込んだ行に桁が合う

列幅は、ファイルの先頭 1000 行と末尾 1000 行から決めていました。だから、長い値が中間にしか無いファイルでは拾えません。

45MB・300 万行の CSV を CSV 表示にして ERROR で 59 行に絞ると、こうなっていました。

id      │ level │ note
50000   │ ERROR │ con…
100000  │ ERROR │ con…

note の中身は connection reset by peer - retrying で 34 桁。列幅は見出しの note と、先頭・末尾に並ぶ ok だけで決まって 4 桁でした。上限の 40 桁に当たっていたわけではありません。絞り込んだ後こそ読みたい列が、絞り込んだせいで読めない状態です。

いまは、フィルタが効いている間は一致行から列幅を決め直します。上の表示はこうなります。

id      │ level │ note
50000   │ ERROR │ connection reset by peer - retrying
100000  │ ERROR │ connection reset by peer - retrying

フィルタを解けば、元どおりファイル全体の桁に戻ります。

小さいファイルで、画面が食い違っていた

8MB 未満のファイルで、フィルタ ON のまま構造化表示へ切り替えると、画面の 3 箇所が別のことを言っていました。

見るところ 出ていたもの
本文 絞り込み前の生テキスト(整形もされない)
列名の帯 一致行の 1 本目
ステータス 絞り込み後の行数

順番の問題でした。整形を組んだ直後に検索バーを閉じる処理が走り、退避してあった元の全文で本文を上書きしていました。整形結果だけが消えて、帯と行数が残る。整形の前にフィルタを畳むようにしました。

小さいファイルでは、絞り込みは維持されません。 本文そのものを整形後のテキストへ差し替える作りなので、両立できません(「桁を揃えたまま grep」は 8MB 以上のファイルの機能です)。

確認したこと

配布するものと同じ .app で、両方の順番を通しています。

条件 結果
45MB・300 万行 CSV、構造化 → 絞り込み 34 桁の値が全部出る
同、絞り込み → 構造化 同じ。列名も id / level / note
絞り込みを解除 元の桁に戻る
10GB・8642 万行、5134 万件ヒット 詰まらない(漏斗を押して 0.30 秒で戻る)
4.2MB CSV、絞り込み → 構造化 本文・帯・行数が一致

616 のテストが緑。Apple Developer ID で署名し、公証を通しています——ダブルクリックで開きます(Apple Silicon / Intel 両対応・macOS 13+)。

1.12.3 — 2026-08-19

テスト環境から取ったデータと、本番から取ったデータを並べる。値が違うのは当たり前で、見たいのは「日付の形が揃っているか」だけ。それなのに diff は全行を「違う」と言い、読める差分は 1 つも残りませんでした。

値ではなく、形を比べる

表示 ▸ 比較(diff)▸ フォーマットを比較(⇧⌘F)

数字は 1 桁ずつ、文字の並びは 1 個に潰してから比べます。だから:

仮名・漢字も値として畳みます。 日本語の CSV でこれを畳まないと、氏名や住所が全部差分になって「値は無視する」が嘘になります。ただし全角の記号と全角スペースは形として残します——、 と ,、全角空白と半角空白の食い違いは、まさに見つけたい違いだからです。

入口 4 つ(2 つのファイル・開いているドキュメント・クリップボード・URL)のどれから開いても効きます。5 つ目の入口ではなく、開いた後に切り替えるモードです。値の違いで読めない、と分かるのは開いてからなので。

この間、マージは封じます。 形が同じ=中身は違うので、片方を採ると中身が消えます。

メニューのチェックマークが、初めて出ます

validateMenuItem が AppKit から一度も呼ばれていませんでした(NSMenuItemValidation に適合していなかったため)。構造化表示がいまどのモードか、桁ルーラーが出ているか、末尾追従が入っているか——メニューを見ても分からない状態で出荷され続けていました。押せば動いていたので気づけませんでした。直したので、いまの状態がメニューに出ます。できない操作は灰色になります。

確認したこと

国税庁の法人番号 CSV から作った 20 万行で測りました(release ビルド)。

比べ方 結果
同じ行の値だけ差し替え 完全一致(ハッシュ 0.14 秒)
別のレコード同士 5,040 箇所が差分

下の行は正直に書いておきます。レコード自体が別物だと、空欄の有無や住所の桁ちがいで 1 行ごとに「形」が違うので、日付の差はその中に埋もれます。行が対応している比較(同じ抽出をやり直した、同じ行の値が置き換わった)では狙いどおりに効きますが、行が対応しない比較には「列ごとに形をまとめて突き合わせる」別の道具が要ります。それは次に作ります。

611 テスト green。配布と同じ .app で、4 つの入口・トグル・マージ封じまで通しました。


ダウンロード: MrEditor-1.12.3.dmg(署名・公証済み / macOS 13+)

1.12.2 — 2026-08-17

1.12 で桁ガイドを引けるようにしましたが、引いても本文は何も変わりませんでした。列として読むにはメニューを 3 階層たどる必要があり、「線を引いたけど、で?」で終わる道具でした。そこを作り直しました。

線を引いたら、そのまま表になる

固定長のデータは、もともと桁が揃っています。 だから列に見せるのに整形は要りません——項目が 1 つおきに薄く塗られるだけで表になります。整形しないので、読み取り専用になりません。見ながら、そのまま直せます。

字が動く

順番を覚えなくていい

入口はどれも単独で成立します。打つ → Tab / いきなり ⌥Tab / 目盛りをクリック / ⇧⌥⌘K で 1-8,9-14,15-40 と打つ。桁に触る操作はルーラーを連れてくるので、先に ⌥⌘K を押しておく必要はありません。

ルーラーにはキャレットのいる項目が帯で出ます。右端の「⌥Tab で 2 行目以降も揃います」は、押すと実際に変わる行があるときだけ出て、揃え終われば消えます。

確認したこと

593 tests green。配布物と同じ .app で確認しています。

Apple Developer ID で署名し、Apple の公証を通しています。Apple Silicon / Intel の universal。

1.12.1 — 2026-08-16

1.10.3 と 1.11.1 で残していた宿題を 2 つ片付けました。

浮いている小窓を、好きな場所へ

検索バーと構造化表示のバナーは同じ右上に浮いていて、1.11.1 では「バナーが出たら検索バーを下げる」で凌いでいました。浮かせる物が増えるたびに逃がし方を足していくやり方は、組み合わせのぶんだけ破綻します。

構造化表示に、列名の帯

桁は揃うのに、300 万行目まで下がると「この列が何か」は分からなくなっていました。

変えた列幅はそのセッション限りです(構造化表示を抜けると既定に戻ります)。

確認したこと

553 tests green。配布物と同じ .app で、小ファイルと 40 万行の両方を通しています(掴んで動かす/終了して開き直しても同じ場所/構造化バナーを出しても動かした位置が消えない/CSV で列を広げる/固定長で列を詰めて 000… に切り詰まる/横スクロールで帯が本文と一緒に流れる)。

Apple Developer ID で署名し、Apple の公証を通しています。Apple Silicon / Intel の universal。

1.12 — 2026-08-15

固定長のデータを、数えられるようにしました。

区切り文字があるものは構造化表示で列に開けるのに、固定長のレコードには何も効きませんでした。桁を数えるのは、指で画面をなぞる仕事のままでした。

入るもの

桁は文字数でなく表示幅(全角=2)で数えます。ガイド線は画面上の位置に引かれるので、文字数で数えると全角を含む行だけ線と中身がズレます。

確認したこと

537 tests green。配布物と同じ .app で、小ファイルと 40 万行の両方で通しています(定義 → 線が出る → ドラッグで桁を動かす → アプリを終了して開き直しても定義が戻る → 固定長で列として読める)。

Apple Developer ID で署名し、Apple の公証を通しています(ダブルクリックで開きます)。Apple Silicon / Intel の universal。

1.11.2 — 2026-08-14

他のアプリで直したのに、こちらは古い中身を見せ続けていた。エディタで書き換える・sed を回す・ブランチを切り替える —— ファイルは変わっているのに、開いたままの MrEditor は何も言わなかった。

あわせて、追記を取り込んだ後に編集すると追記分が消える穴を塞いだ(末尾追従にも前からあった)。


Fix it in another app and this one kept showing you the old bytes.

Also fixes a hole where text appended by another process vanished the moment you started editing (Follow mode had it too).

macOS 13+ · Apple Silicon / Intel universal · Developer ID 署名 + 公証済み

1.11.1 — 2026-08-05

構造化表示の帯が検索バーの上に乗って、漏斗ボタンも件数も次/前も隠していました。 1.11 の副作用です。構造化中も検索できるようにしたことで、この 2 つが初めて同時に画面へ出るようになったのに、どちらの置き場所も直していませんでした(1.11 以前は構造化に切り替えると検索バーを閉じていたので、重なりようがなかった)。

報告いただいた「検索できない」も、これが原因でした。検索は最初から走っていて、件数も漏斗も帯の下に隠れていただけです。

浮いているパネルをドラッグで動かせるようにする件は、別途やります。

442 tests green / 公証 Accepted / 配布 dmg で実機確認済み(⌘F で検索バーが被らずに出て、1.18GiB の CSV から「岩見沢」2,766 件を桁揃えのまま絞り込めること)。

1.11 — 2026-08-05

ツールバーを付けました。既定の 6 つ(サイドバー・構造化表示・フィルタ・比較・末尾追従・AI 診断)が、このアプリが何者かの宣言です。中身は全部メニューとショートカットの中にあり、起動しただけの人にとっては存在しないのと同じでした。

画面に出したことで、自分のアプリの穴が 2 つ見えたので、両方塞いでいます。

看板も変えました。「10GB も開ける」をやめます。 スペックであって状況ではないからです。新しい看板は「自分が書いていないテキストを、調べて、正す」。数字は薄めず入れ替えて、1.18GiB の CSV の実測(581 万 6535 行 / 51ms / 78MB)を前に出し、10GB は天井として残しました。

既知の制約: 列幅は先頭と末尾のサンプルで決めているので、絞り込むとファイル全体から行が集まり、幅が足りずに切れる列が出ます。行内の一致ハイライトも構造化中は出せません(整形後の文字位置と元のバイト位置が対応しないため)。

442 tests green / 公証 Accepted / 配布 dmg で実機確認済み。

1.10.3 — 2026-08-03

日本の全法人 581万6535行・1.18GiB の CSV を開いて初めて見えた 2 件を直しました。

中間だけで極端に長くなる列は今も切れます。

388 tests green / 公証 Accepted。

1.10.2 — 2026-07-30

1.9 と 1.10 のリリースノートで、こう断っていました。

既知の穴: Anthropic・OpenAI のストリーミングは手元に鍵が無く、実機での通し確認ができていません(形は自動テストで検証済み)。

その穴を閉じるために API クレジットを入れて実機で通したところ、OpenAI が最初の一往復で落ちました。

o4-mini・o3 では動いていませんでした

✗ サーバエラー (HTTP 400)
Unsupported parameter: 'max_tokens' is not supported with this model.
Use 'max_completion_tokens' instead.

OpenAI では max_tokens は非推奨で、推論系のモデルは送られると拒否します。モデル一覧に o4-mini を載せておきながら、それを選ぶと必ず失敗する状態でした。max_completion_tokens に直しました。

モデル名で振り分けてはいません。一覧に無いモデルも打ち込める作りなので、名前で判断すれば必ずどこかが漏れます。

同じ場所にあった、あと2つ

実機で通し確認しました

Anthropic・OpenAI とも、①接続テスト ②⌥⌘E の実診断(長い応答=複数チャンクの結合・端から流れる描画)を配布物で通しました。 1.9 から引きずっていた「実機未確認」は、これで解消です。


動作環境: macOS 13+ / Apple Silicon・Intel universal / 署名+公証済み 検証: 385 green(+3)。うち1本は今回の 400 の回帰テスト

1.10.1 — 2026-07-29

利用者からの報告で分かった不具合の修正です。

⌘F が効かなかった(8MB 未満のファイル)

MrEditor は 8MB を境に、大きいファイルは読み取り専用の高速ビューアで、小さいファイルは編集ペインで開きます。検索と置換は、この大きいファイル側にしか作られていませんでした。 そのため、実際に編集するようなサイズのファイルでは ⌘F がビープするだけで、編集メニューの「検索…」も灰色のまま。エディタを名乗っておきながら、普通のテキストを検索できない状態でした。

編集ペインに検索・置換を実装しました。

同じ穴が 2 つあったので、一緒に


動作環境: macOS 13+ / Apple Silicon・Intel universal / 署名+公証済み 検証: 382 green(+21)。配布した .app で ⌘F・次/前・置換・すべて置換(ケース維持)・⌘Z・⌘L を実機で通しました

1.10 — 2026-07-29

1.9 の AI エラー診断(BYOK)を、待ち時間と設定の両面から磨きました。

答えが書かれる端から流れてくる

待って一気に出るのをやめました。実測(Gemini・実機)で初トークンまで 4.6 秒、そこから約 0.8 秒で 328 字が流れ込みます。

モデルは選んで、確かめる

失敗が読める

プロバイダの英語をそのまま出すのをやめました。何が起きたかを日本語で言い切り(401=キーが拒否/404=モデルが見つかりません/429=レート上限/5xx=プロバイダ側)、原文は手がかりとして下に小さく残します。


対応プロバイダ: Anthropic / OpenAI / Google (Gemini)。キーは Keychain 保管、原価はご自身の鍵持ち(BYOK)です。

macOS 13+ / Apple Silicon・Intel universal / Developer ID 署名+公証済み。

既知の穴: Anthropic・OpenAI のストリーミングは手元に鍵が無く、実機での通し確認ができていません(形は自動テストで検証済み)。何かあれば Issue でお知らせください。

1.9 — 2026-07-28

AI連携(BYOK・無料)

ログ/テキストの「今見ている箇所にAIをぶつける」単発解析を追加しました。

MIT・署名/公証済み。全 340 テスト green。

https://mr-tabata.github.io/MrEditor/

1.8 — 2026-07-27

巨大ファイルを落とさず開ける Mac エディタ、1.8。行まわりの表示とマルチカーソル編集を追加しました。

行表示

編集ツールボックス

マルチカーソル(小ファイルの編集ペイン)

検索・置換


署名・公証済み(Notarized Developer ID)。ダブルクリックで開けます。macOS 13+。

1.7.1 — 2026-07-23

テキスト変換ツールボックス(書式メニュー)に3つの行操作を追加:

両ペインで動くので 10 GB ファイル内の選択にも効きます。

署名・公証済み(Developer ID / Apple notarized)。macOS 13+。

1.7 — 2026-07-19

M3 無料コアの最後の2項目を消化し、M3 を完結させるリリースです。

新機能

English

Developer ID 署名+公証済み(Notarized)。macOS 13+。

1.6 — 2026-07-19

外観テーマと共有(環境設定 ▸ 配色)

Signed with Apple Developer ID and notarized — just double-click, no right-click needed.

Full changelog: https://github.com/MR-TABATA/MrEditor/compare/v1.5...v1.6

1.5 — 2026-07-18

Text toolbox (Format menu)

A new Format menu applies transforms to the current selection — one undo each, in both the small-file and 10 GB panes.

Also fixes a small-file status-bar byte count that didn't update after edits.


「書式」メニューから、選択テキストにその場で変換をかけられます(各1アンドゥ・小ファイルと 10 GB 両ペインで動作)。ケース変換/URL・Base64・HTML エンコード&デコード/行のソート・重複削除・逆順・連番、そして 外部コマンドに通す(⌥⌘R) で選択を jq・sort・sed などに流して置換できます。

Signed with Apple Developer ID and notarized — just double-click. Universal (Apple Silicon / Intel).

1.4 — 2026-07-17

JSON 整形+その場クエリ窓(⌥⌘J)。詳細は README のロードマップ 1.4 参照。

1.3 — 2026-07-16

MR Editor 1.3

macOS / Apple Silicon・Intel 対応。Developer ID 署名 + 公証済み。

1.2.1 — 2026-07-14

修正: マージが「できていなかった」

1.2 のマージは、矢印(→)を押しても画面上は何も動きませんでした。内部で印を付けて保存時にまとめて適用する作りだったためです。矢印が右を指しているのに右は変わらない —— マージできていないのと同じでした。

矢印の向きどおりに直しました。→ を押すと、左の内容がその場で右へ入ります。

差分 → を押すと
変更された行 右が左の内容になります
左にしかない行 右へ入ります
右にしかない行 打ち消し線が付いて落ちます(左に合わせる)

保存(表示 ▸ 比較(diff)▸ マージ結果を別名で保存…)では、その右側が書き出されます。元の 2 つのファイルには触りません。

あわせて

1.2 でマージを試して「動かない」と思われた方、申し訳ありませんでした。


Apple Developer ID で署名し、Apple の公証を通しています。ダブルクリックで開きます。macOS 13+。

1.2 — 2026-07-14

新機能: マージ

比較(diff)で見つけた差分を、取り込めるようになりました。

元の 2 つのファイルには触りません。 何も採用しなければ、左のファイルがそのまま出てきます。

巨大ファイルでも本文をメモリに抱えません(左右のソースからバイトを流し込むだけ)。

修正


Apple Developer ID で署名し、Apple の公証を通しています。ダブルクリックで開きます。Apple Silicon / Intel 両対応。macOS 13+。

1.1.1 — 2026-07-13

修正

「2 つのファイルを比較」(⇧⌘D)が、何も起きないことがありました。

1 つのパネルで ⌘クリックして 2 つ同時に選ぶ必要があり、普通に「1 つ選んで開く」と操作した場合は、パネルが閉じるだけで何も起きませんでした(エラーも出ません)。

1 つ目 → 2 つ目、と順に訊くようにしました。2 つ目を選ぶときは、1 つ目と同じフォルダから始まり、「◯◯ と比較するファイルを選んでください」と表示します。2 つまとめて選ぶ操作も、これまで通り使えます。

1.1 で比較(diff)を使おうとして開けなかった方、申し訳ありませんでした。


Apple Developer ID で署名し、Apple の公証を通しています。ダブルクリックで開きます。Apple Silicon / Intel 両対応。macOS 13+。

1.1 — 2026-07-13

新機能: 比較(diff)

表示 ▸ 比較(diff)。入口は 3 つあります。

左右に並べ、追加・削除・変更を色で出します。変更行は行内の文字差分まで示すので、status=200 が 500 に変わった 1 文字が色で分かります。

正直な限界

比較には 1 行あたり 16 バイトの索引が必要です。閲覧(ファイルを 1 バイトも抱えない)とは違い、これは実際にメモリを使います。

お使いの Mac に載らないサイズは、理由を表示して断ります(黙って落ちることはありません)。24GB の Mac なら、左右あわせて約 6,200 万行(1 ファイル ≒ 3.5GB のログ)まで。

実測: 1GB × 2(871 万行)で 5.4 秒・1.7GB。


Apple Developer ID で署名し、Apple の公証を通しています。ダブルクリックで開きます。Apple Silicon / Intel 両対応。macOS 13+。

1.0.3 — 2026-07-12

修正

日本語入力がONのとき、行ジャンプ(⌘L)が黙って失敗していました。

⌘L の入力欄に数字を打つと IME を通って全角「86,420,337」で入り、アプリはそれを数値として読めず、エラーも出さずに何も起きませんでした。変換候補に出る桁区切り付きの「86,420,337」を確定した場合も同様です。日本語で使っていれば確実に踏む経路でした。

全角数字とカンマを正規化してから読むようにしました。半角でも全角でも、カンマ付きでも跳びます。

そのほか

README と LP に載せていた性能値を、配布版で測り直して差し替えました(#23)。以前の値は 1.0 より前のビルドで測ったものを使い回しており、実メモリ 44MB は誤りでした。

指標 実測(10.00 GB / 86,420,337 行・配布ビルド)
最初の行が出るまで 65〜83 ms
全索引の構築(背景・表示は止まらない) 9.1〜9.5 秒
ファイル本体のページ resident 4.2 GB・dirty 0 バイト
アプリの実メモリ 162 MB(何も開いていなければ 32 MB)

10 GB を開くコスト自体は 0 です(mmap するだけでコピーしない)。162 MB の中身はウィンドウの描画バッファと、10 GB をマップするためのページテーブルであって、ログの中身ではありません。手元で再現する手順は README の「性能」節に置きました。


Apple Developer ID で署名し、Apple の公証を通しています。ダブルクリックで開きます。Apple Silicon / Intel 両対応。macOS 13+。

1.0.2 — 2026-07-11

未保存の書きかけを、クラッシュでも強制終了でも失わなくなりました。

何が変わったか

これまで、未保存の新規ドキュメントの本文が保存されるのはアプリを終了する瞬間だけでした。つまり強制終了・クラッシュ・電源断が起きると、書きかけは跡形もなく消えていました。

1.0.2 では、未保存の本文をそれ自体のファイルとして持ちます(~/Library/Application Support/MrEditor/Drafts/)。打鍵のたびに(1 秒ごとに落ち着いてから)書き出し、他のアプリへ切り替えたときにも書き出します。起動時は、開いていた一覧ではなく、この draft ファイルそのものを見にいきます。

そのため、たとえアプリが kill -9 で殺されても、開いていた一覧が壊れても、書きかけの本文はそのまま戻ります。1.0.1 からアップデートする場合、書きかけがあれば新しい形式へ自動で引き継がれます。

書きかけが消えるのは 2 つの場合だけです — ファイルに保存したときと、あなたがそのドキュメントを閉じて「保存しない」を選んだとき。

そのほか

編集・検索・構造化表示・巨大ファイルの扱いは 1.0 と同じです。

Developer ID で署名・公証済み。ダブルクリックで開きます。universal(Apple Silicon / Intel)。macOS 13+。

1.0.1 — 2026-07-11

1.0 を使っている方は、このリリースに更新してください。データ消失バグを直しました。

直したこと

ファイルを開いて MrEditor を起動すると(Finder の「このアプリで開く」・アイコンへのドロップ・コマンドライン引数)、前回開いていた未保存の新規ドキュメントが本文ごと消えていました。保存先を持たないドキュメントなので、消えたら二度と戻せません。

原因は、起動時に開いたファイルが、まだ読み込んでいない前回のセッションをその場で上書きしていたことでした。1.0 で Finder 統合(「このアプリで開く」)に対応したことで、この経路が初めて日常操作から踏めるようになり、表面化しました。

これからは、ファイルを開いて起動しても未保存の下書きは必ず戻ります(開いたファイルはそのままアクティブ)。

そのほか

コードの変更はこの修正だけです。編集・検索・構造化表示・巨大ファイルの扱いは 1.0 と同じです。

Developer ID で署名・公証済み。ダブルクリックで開きます(右クリックも xattr も不要)。universal(Apple Silicon / Intel)。macOS 13+。

1.0 — 2026-07-11

10 GB のテキストを、落ちずに開いて編集する Mac ネイティブのエディタ。

10 GB のログ ―― 86,420,337 行 ―― が 約 0.2 秒で開き、開いたままでも実メモリは 44 MB。末尾の行へのジャンプは 0.1 ms。その場で編集して atomic に保存できます。

1.0 に入っているもの

インストール

MrEditor-1.0.dmg を開き、MrEditor を Applications にドラッグしてください。

Apple Developer ID で署名し、Apple の公証を通しています。 右クリックも xattr も不要です。ダブルクリックするだけで開きます。Apple Silicon / Intel の両対応(universal)。

macOS 13 以降。MIT ライセンス・オープンソース。

Full Changelog: https://github.com/MR-TABATA/MrEditor/compare/v0.9...v1.0

0.9 — 2026-07-10

✅ ダブルクリックで開きます

Apple Developer ID で署名し、Apple の公証(notarization)を通しました。

これまで必要だった「右クリック →『開く』」も xattr -dr com.apple.quarantine も、もう不要です。ダウンロードして Applications にドラッグし、ダブルクリックするだけで開きます。

$ spctl -a -t install MrEditor-0.9.dmg
accepted
source=Notarized Developer ID

.app と dmg の両方に公証チケットを焼き付けてあるので、オフラインの Mac でも Gatekeeper を通ります。

これまでのバージョンについて

v0.8 をお使いの方は、入れ替えをおすすめします(アプリの「MrEditor ▸ アップデートを確認…」からも辿れます)。

中身は v0.8 と同じです

v0.8 で入った Finder 統合・印刷/PDF 出力・アップデート確認・新アイコン・universal ビルド(Apple Silicon / Intel)は、そのまま入っています。変わったのは署名と公証だけです。

インストール

MrEditor-0.9.dmg を開き、MrEditor を Applications にドラッグしてください。それだけです。

Full Changelog: https://github.com/MR-TABATA/MrEditor/compare/v0.8...v0.9

0.8 — 2026-07-10

ℹ️ より新しい v0.9 があります

v0.8 は起動しますが、ad-hoc 署名のため 初回だけ右クリック →「開く」が必要です。 v0.9 は Apple Developer ID で署名・公証済みで、ダブルクリックするだけで開きます。 中身の機能は同じです。


⚠️ v0.7 以前をお使いの方へ

v0.7 以前の dmg は、ダウンロードした Mac で起動しません。「アプリケーション“MrEditor”は予期しない理由で終了しました」と表示され、「再度開く」を押しても再びクラッシュします。

.app バンドルに署名を施していなかったため署名の封が矛盾し、macOS が quarantine の付いたアプリを検証してプロセスを終了させていました。開発機では quarantine が付かないため、この不具合は長らく見えていませんでした。

v0.8 で修正しました。 お手数ですが、こちらを入れ直してください。

あわせて Apple Silicon / Intel の universal ビルドになりました。従来は arm64 専用で、Intel Mac では一度も起動できていませんでした。

新しいこと

インストール

MrEditor-0.8.dmg を開き、MrEditor を Applications にドラッグしてください。

Apple Developer ID による署名・公証はまだしていません(証明書が未取得のため)。初回起動時に macOS が開発元を検証できず警告するので、MrEditor を右クリック →「開く」→ ダイアログで「開く」を選んでください。または:

xattr -dr com.apple.quarantine /Applications/MrEditor.app

Full Changelog: https://github.com/MR-TABATA/MrEditor/compare/v0.7...v0.8

0.7 — 2026-07-09

⚠️ このバージョンは起動しません

v0.7 の dmg は、ダウンロードした Mac で起動しません。「アプリケーション“MrEditor”は予期しない理由で終了しました」と表示されます。

.app バンドルに署名を施していなかったため署名の封が矛盾し、macOS が quarantine の付いたアプリを検証してプロセスを終了させていました。開発機では quarantine が付かないため、長らく見えていませんでした。

→ v0.9 をお使いください。 修正済みで、Apple Silicon / Intel の universal ビルドになっています。


v0.6 に寄せられた不具合報告2件の修正と、その過程で必要になったセッション復元の実装です。

修正

新機能

インストール

MrEditor-0.7.dmg を開き、MrEditor を Applications にドラッグしてください。

コード署名・公証をしていないため(Apple Developer ID 未取得)、初回起動時に Gatekeeper に弾かれます。開くには MrEditor を右クリック →「開く」→ ダイアログで「開く」、または:

xattr -dr com.apple.quarantine /Applications/MrEditor.app

Full Changelog: https://github.com/MR-TABATA/MrEditor/compare/v0.6...v0.7


注記(2026-07-09 追記): 公開している MrEditor-0.7.dmg は、アイコンを新デザイン(プロンプト >_)に差し替えたものへ再ビルドして置き換えました。コードは v0.7 リリース時から一切変わっていません(アイコン素材のみ)。

タグ v0.7 が指すコミットはアイコン刷新より前のため、タグからソースをビルドすると旧アイコンになります。新アイコンを含むソースは main(PR #11)にあります。

0.6 — 2026-07-08

新機能(v0.6)

構造化表示(読み取り専用・表示 ▸ 構造化表示 で切替)

v0.5(フォント・表示設定・配色テーマ)までの機能はすべて継続。


未署名ビルド(Apple Developer ID 未取得)のため、初回は 右クリック →「開く」、または xattr -dr com.apple.quarantine /Applications/MrEditor.app で起動してください。

🤖 Generated with Claude Code

0.5 — 2026-07-08

新機能(v0.5)

カスタマイズ

ワークスペース

v0.4(編集・保存)までの機能はすべて継続。


未署名ビルド(Apple Developer ID 未取得)のため、初回は 右クリック →「開く」、または xattr -dr com.apple.quarantine /Applications/MrEditor.app で起動してください。

🤖 Generated with Claude Code

0.4 — 2026-07-07

巨大ファイルを編集・保存できるようにした大型リリース。ビューアから本格エディタへ。10GB / 8,600万行クラスでもその場で編集し、ストリーム書き出し→原子的差し替えで保存する(PieceTable バック)。

新機能

インストール

MrEditor-0.4.dmg をダウンロードして開き、MrEditor を Applications にドラッグ。 未署名ビルドのため初回は右クリック →「開く」、または xattr -dr com.apple.quarantine /Applications/MrEditor.app。

macOS 13+ / MIT。

0.3 — 2026-06-29

巨大ファイルビューアの表示まわりを磨き込んだリリース。

新機能

インストール

MrEditor-0.3.dmg をダウンロードして開き、MrEditor を Applications にドラッグ。 未署名ビルドのため初回は右クリック →「開く」、または xattr -dr com.apple.quarantine /Applications/MrEditor.app。

macOS 13+ / MIT。

0.2 — 2026-06-28

読む・探すに全振りした「無料コア」。前回(v0.1)の「10GBを44MB・210msで開く」ビューアに、本格的な検索系を追加しました。すべて mmap をストリーム走査し、ファイルを読み込みません。10GB・全エンコーディング(UTF-8/SJIS/EUC)で検証済み。

追加機能

検索(⌘F)

フィルタ表示 / live grep

tail -f(末尾追従・⌥⌘F)

コピー(⌘C)

まだ作らないもの

編集・保存。MrEditor は根っこが「速いリーダー」です。

インストール

MrEditor-0.2.dmg をダウンロード → 開く → Applications へドラッグ。 未署名のため初回は右クリック →「開く」、または xattr -dr com.apple.quarantine /Applications/MrEditor.app。

0.1 — 2026-06-26

Mac ネイティブの巨大テキストビューア(v0.1 はビューア専用、編集なし)。 10GB のテキストを落ちずに表示することを目標に、Swift / AppKit で実装。

実装済み

このリリースの主な修正

本文領域が真っ白になる問題を解決。custom draw(_:) を持つビューに AppKit コントロールを同居させると、同一ウィンドウ内の別カスタム描画ビューの 画面合成が壊れる挙動を回避(StatusBarView をレイヤ描画へ変更)。

v0.1 スコープ外(v0.2 以降)

編集・保存・検索/grep・シンタックスハイライト・サイドバー/タブ・設定・横スクロール・文字コード手動切替。

既知の未検証項目

10GB 実機ファイルでの 3 秒以内表示・体感スクロール・リサイズ耐性・長時間メモリ常駐は未測定。