RSSおすすめ記事です

スポンサーリンク

「テキストの編集」にこだわりが凝縮!定番エディタ「EmEditor」はなぜ他のエディタと違うのか?

ニュース

スポンサーリンク

「テキストの編集」にこだわりが凝縮!定番エディタ「EmEditor」はなぜ他のエディタと違うのか?

1 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:32:00 ID:CAP_USER.net

「テキストの編集」というと、どんなツールを思いだすだろうか?

 「Windows標準のメモ帳」という人もいるだろうし、Wordなどのオフィスアプリを使う人、Webメールやブログサービスの入力画面でそのまま入力する人など、様々な人がいると思う。そうした中、「テキスト編集」を最も効率よく行うために作られたソフトが「テキストエディタ」だ。

 そして、そうしたテキストエディタの中でも、速度の速さや機能の豊富さで多くのユーザーに支持されているソフトの1つが「EmEditor」だ。初期バージョンが1997年公開という歴史あるソフトだが、長い間支持され続けてきただけあって、速度や機能へのこだわりはかなりのもの。

 一例を挙げるなら、「マルチスレッドで検索処理を実行する」「512ビットを一括処理できるCPUの拡張命令を活用する」といった最新ハードウェアを活かす高速化が実装されていたり、普通のエディタにはほぼ見られない本格的なCSV編集機能まで用意されていたり……といった具合だ。

 「テキストエディタ」というとシンプルなアプリに思われがちだが、実は「こだわりの凝縮」といえるEmEditorの内側を、その開発者である江村豊氏にお伺いした。

「数GBの超大容量ファイルでもスムースな処理を」
圧倒的なスピードの裏側には数多くの工夫が”

――1997年に最初のバージョンである「EmEditor Free v.1.00」をリリースしてから20年以上が経過している「EmEditor」ですが、今でも人気は衰えていません。その開発において、特にこだわっているのはどういった部分でしょうか。

[江村氏]こだわっていることの1つは、大きなファイルを開く部分ですね。例えばビッグデータを扱う、あるいはサーバーのログファイルをチェックするなどといった用途が挙げられるでしょう。

 こうしたファイルは数十~百GB超になることもあり、そのすべての内容をメモリに展開することができません。

 そのため、ファイルから直接読み込むことになりますが、ファイルを開くタイミングでは行数をカウントするためにすべて読み込む必要があります。そのスピードをできるだけ速くするための工夫をEmEditorには盛り込んでいます。

 具体的な処理は改行の数のカウントですが、改行コードには「CR」と「LF」、そして「CR+LF」の3種類があります。それを考慮しつつ、改行をカウントする処理を高速に行えるように工夫しています。

 ちなみに、EmEditorの開発に使っているC++には文字列を操作するためのさまざまな標準ライブラリがあり、それを使えば簡単に行数をカウントできます。ただ、それを使っていては僕が理想とするパフォーマンスが得られません。ですので、EmEditorでは、改行コードを検索するための独自ルーチンを使っています。

CPUの拡張命令やマルチスレッドを使って高速化!「80倍」も……
C++の「テンプレート」も活用した高速化も
――現在のEmEditorの64ビット版では、SSE2とAVX-2、AVX-512命令セットのそれぞれで別ビルドを提供していますが、そうした処理の最適化にハードウェアの機能も利用されているのでしょうか。

[江村氏]そうですね。たとえば検索処理の例ですが、従来は32ビット、あるいは64ビット単位でしか検索することができませんでした。

しかしCPUの拡張命令であるSIMD(single instruction, multiple data)を使えば、SSE2なら128ビット、AVX-2で256ビット、AVX-512では512ビット単位で検索することが可能になり、従来に比べてかなりの高速化を図ることができます。

 このように、EmEditorではハードウェアが備える機能も積極的に活用し、高速化を図っています。

 同様にマルチコアCPUのメリットも活用しています。従来はシングルスレッドで、1行目から順番に検索するしかなかったわけです。しかし現在はマルチスレッドになっていて、複数行をまとめて検索できるようになりました。

 例えば1つのスレッドは1行目と11行目、21行目、2つ目のスレッドは2行目、12行目、22行目などといった形です。さらにSIMDも組み合わせることで極めて高速になります。

 また、数億行もあるファイルを扱う場合は、仮に10スレッドがあっても数千万回ループしなければならないので、ループはできるだけ短く、かつループの中に分岐点を作らないようにしています。

以下ソース
https://internet.watch.impress.co.jp/docs/interview/1231545.html


スポンサーリンク

ネットの反応

4 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:34:41 ID:33bwcl/6.net
Left Caption

俺も使ってるけどそんな有名だったのか

9 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:36:54 ID:XE0J9hSM.net
Left Caption

エディタ戦争スレまたやるの?

11 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:38:43 ID:643ryTnE.net
Left Caption

どうせ、気にしない組のメモ帳と、
フリー限定派のサクラエディタが
圧倒的に2強で他は所詮有象無象なんだろ?

15 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:42:21.10 ID:ZE5IEvyQ.net
Left Caption

秀丸じゃダメなのか?

51 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:15:26 ID:3bpx+BU4.net
Left Caption

>>15
unicodeの問題

17 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:43:13.79 ID:1OZbZ1WO.net
Left Caption

昔は秀丸使ってましたけど、途中からサクラエディタに変えました。あれで十分です。
今はスレ立てもAndroid端末に移行してしまったので、Quickedit使ってます。コードを書くわけでもないしね。

18 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:44:02.07 ID:nSmFISo7.net
Left Caption

プログラミング用途なら最近はatmばっかりオススメされるような

21 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:45:27.73 ID:P+Jby8+D.net
Left Caption

>>18
今はvscodeじゃない?
Atomやsublimeから乗り換える人も多い印象がある

19 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:44:13.18 ID:P+Jby8+D.net
Left Caption

EmEditorって作者に妙に悪い噂たってたのはなんだったんだろう

32 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:55:13.12 ID:lCsaR3on.net
Left Caption

>>19
第三者が作ってたプラグインの機能を有料化して本体に組み込んだとか、そのあたりのネガキャンくらってるだけでは

25 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:48:18.24 ID:Ger0W4UQ.net
Left Caption

エディタって何使ってもあまり気にしないけどな
「これ使え」と言われたものを使うだけ

34 : 名無しのシステムエンジニアさん 2020/02/03(月) 12:56:11.17 ID:3J7PZJ25.net
Left Caption

MS-DOS時代はVz
Windows時代は秀丸
最近はVSCode
Unix時代はvi
Linux以降はvim

45 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:06:32.07 ID:1OZbZ1WO.net
Left Caption

MIFESもどこに行っちゃったのかねー。

49 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:14:20 ID:eTHFMCnO.net
Left Caption

自分もmifes一択だったなぁ。(遠い目)

52 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:16:53 ID:/1RiUqmf.net
Left Caption

Emeditor95からのユーザ
秀丸とEmeditor95で、確かEmeditor95の方が安かったから
シェアウェア登録した覚えがある

54 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:18:21.97 ID:xNwqSC4G.net
Left Caption

vi または vim
unix 系であれば必ず入ってるから。
emacs は、小指が痛くて止めた。

57 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:20:59.36 ID:rZ81Eh80.net
Left Caption

>>54
vim極めた人の動画見たいわ
この手のもの初めて使ったけどうんこにしか思えん

64 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:29:21.27 ID:xNwqSC4G.net
Left Caption

>>57
エディターは毎日使うものだから、人それぞれ慣れ親しんだものに
愛着があって、好き嫌いがあり、それでいいと思います。
ちなみに、何を使ってるのですか?

62 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:25:32.52 ID:vQQfgJQd.net
Left Caption

98~XP時代辺りまでは確かに使ってたなEmEditor
構文ハイライトとかオートインデントとか便利だったわ

ただVista手前頃からVim使い出したし
Windows10が出る前後にMacへ移行して、それ以来ずっとVSCode、たまにVim

69 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:36:14.46 ID:uwIlLoHi.net
Left Caption

普通にvimだなァ

キーボードから手を離さずに打てる

79 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:51:28.92 ID:5ak+cw0B.net
Left Caption

>>69
> キーボードから手を離さずに打てる

それ大事。
mac のアプリのほとんどは、unix系OSのキーバインドで操作できるのが良い。

(一例)
C-n 下
C-p 上
C-f 右
C-b 左
C-a 先頭
C-e 最後尾

84 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:15:58 ID:Npp3s/JB.net
Left Caption

>>79
それは unix系OSのキーバインドじゃなくて、emacs のだな。

90 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:28:43 ID:5ak+cw0B.net
Left Caption

>>84
shell ですら、もともとこのキーバインドなんだが、
もとは全部 emacs 由来ってことなのか?

97 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:47:44 ID:Npp3s/JB.net
Left Caption

>>90
かなり前の unix 系のシェル、たとえば Bourne Shell には、
ああいうカーソル移動の機能はなかった。
csh にあったかどうかよく覚えてないが、その後の tcsh ぐらいからは
カーソル移動できたように思う。

emacs は Bourne Shell のころからある。

71 : 名無しのシステムエンジニアさん 2020/02/03(月) 13:37:33.70 ID:Myu1Scer.net
Left Caption

Windowsのメモ帳が一番シンプルで
変な機能ついてなくて好きなんだけど
強制終了したりパソコンがフリーズしたときのために自動バックアップさえついてればなあ…と思う

87 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:23:33 ID:dGMiRAXd.net
Left Caption

メモ帳でいいだろ?
何百ギガって特殊な使用法っちゅうか
一般にそんな用途があるのかよ?

94 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:37:36.23 ID:iPAzE7kx.net
Left Caption

>>87
客から送られてきたエラーデータを見るときに使う
メモ帳じゃCRLFすら判別できない

96 : 名無しのシステムエンジニアさん 2020/02/03(月) 14:44:37.07 ID:trAGzXaB.net
Left Caption

pcの場合、
edlin → Miles → vzエディター → 秀丸エディタ → 桜エディタ

unix , linux の場合、

vi 一択。

98 : 名無しのシステムエンジニアさん 2020/02/03(月) 15:06:58 ID:/fF9Ip37.net
Left Caption

俺はmifesだな使い慣れてる

99 : 名無しのシステムエンジニアさん 2020/02/03(月) 15:09:02 ID:pUx0k3Ne.net
Left Caption

不毛な論争が続きます

105 : 名無しのシステムエンジニアさん 2020/02/03(月) 15:44:39.92 ID:1Uae43KU.net
Left Caption

たいていのテキストエディタはテキスト編集にこだわりが凝縮してるだろ

109 : 名無しのシステムエンジニアさん 2020/02/03(月) 15:56:34.84 ID:wJRqUsFB.net
Left Caption

vimはダメ
今はneovimの時代

112 : 名無しのシステムエンジニアさん 2020/02/03(月) 16:09:52.37 ID:+kBEJzoY.net
Left Caption

普通は秀丸エディタ
完全フリーしか認めない現場ではサクラエディタ
それ以外はゴミ

115 : 名無しのシステムエンジニアさん 2020/02/03(月) 16:57:47.27 ID:G3hbxKHQ.net
Left Caption

サクラエディタを使うことが多いけど、何で先頭から検索っていうボタンがないんだ。どういうこだわりなんだろう。

118 : 名無しのシステムエンジニアさん 2020/02/03(月) 17:33:20.37 ID:1ER/tdh3.net
Left Caption

ふつうの物書きだと数億行も書くのは不可能だから、記事の通りデータ分析じゃないと強みが活かせないな
俺みたいな数十万文字だとなー

119 : 名無しのシステムエンジニアさん 2020/02/03(月) 17:40:36.47 ID:NAPqa0L6.net
Left Caption

昔からEMエディタだけどたいした使い方してないなあ
なーんとなく相性良かっただけ

120 : 名無しのシステムエンジニアさん 2020/02/03(月) 17:41:54.75 ID:ELigzEWi.net
Left Caption

もう20年くらい使っているな。

で、さっきEmEditorが十年ぶりくらいで落ちた。
画像数百枚のフォルダを間違えてコピペしてしまった俺が悪いんだが。
でも、再起動で未保存含め、すぐに元の状態に復旧した。さすが。

121 : 名無しのシステムエンジニアさん 2020/02/03(月) 17:46:02.36 ID:ugciEBmD.net
Left Caption

今更エディタ戦争ですか
VsCodeでええわ

122 : 名無しのシステムエンジニアさん 2020/02/03(月) 17:54:12.69 ID:BccjOZR3.net
Left Caption

初めて聞いた
テキストエディタはTeraPadかサクラエディタしか使ってこなかったや。
今はもうvisualstudioしか使わんけど

131 : 名無しのシステムエンジニアさん 2020/02/03(月) 19:10:53.29 ID:XAD5+J/M.net
Left Caption

秀丸ストア版だわ
やっぱストアからインストールできると楽

132 : 名無しのシステムエンジニアさん 2020/02/03(月) 19:15:03.17 ID:4THWdTCk.net
Left Caption

いつも思うんだけど、Word padの立ち位置がよく分からんね
メモ帳以上、word以下って感じ
誰に対してどうゆう用途を想定してんだか

152 : 名無しのシステムエンジニアさん 2020/02/03(月) 21:09:41 ID:Y7PdEoXT.net
Left Caption

>>132
最近、ネットで知ったのは、pdfのある部分のフォント名を知りたいときは、その文字(列)をコピーしてWordPadに貼ればいいってこと。
これで10年以上ぶり?ぐらいにWordPadを起動した。

143 : 名無しのシステムエンジニアさん 2020/02/03(月) 20:41:11.70 ID:EoDEdVEW.net
Left Caption

操作性がWindowsで標準的なのと、ギガ単位のファイルを開いてもびくともしないのが良い。
前者の点で桜、後者の点で秀丸より良い。
秀丸なんてFFFTPとかと一緒で惰性で使われているだけだろ。

158 : 名無しのシステムエンジニアさん 2020/02/03(月) 21:59:13.05 ID:6PAaAVnS.net
Left Caption

軽い書き物はサクラ
ソース弄りも何でもやるならVsCode
最近のMicrosoftはやるやんって思わせるのが多い気がする

Posted by flac