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

1田杉山脈 ★2020/02/03(月) 12:32:00.38ID:CAP_USER
「テキストの編集」というと、どんなツールを思いだすだろうか?

 「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

3名刺は切らしておりまして2020/02/03(月) 12:33:42.98ID:bnClBZk5
テキストエディタはxyzzy一択だろ。
4名刺は切らしておりまして2020/02/03(月) 12:34:41.24ID:33bwcl/6
俺も使ってるけどそんな有名だったのか
5名刺は切らしておりまして2020/02/03(月) 12:35:14.69ID:TrYSVfd0
サクラエディタ
6名刺は切らしておりまして2020/02/03(月) 12:36:07.89ID:lFh1rge3
vzこそ最強だった
7名刺は切らしておりまして2020/02/03(月) 12:36:23.86ID:HvZ+IgYD
ふつーemacs
8名刺は切らしておりまして2020/02/03(月) 12:36:48.38ID:rIlqGc5D
使ってたけどイマイチだった。
9名刺は切らしておりまして2020/02/03(月) 12:36:54.02ID:XE0J9hSM
エディタ戦争スレまたやるの?
11名刺は切らしておりまして2020/02/03(月) 12:38:43.62ID:643ryTnE
どうせ、気にしない組のメモ帳と、
フリー限定派のサクラエディタが
圧倒的に2強で他は所詮有象無象なんだろ?
14名刺は切らしておりまして2020/02/03(月) 12:42:10.94ID:ZGQp1Nv9
面倒いから手書きでええ
15名刺は切らしておりまして2020/02/03(月) 12:42:21.10ID:ZE5IEvyQ
秀丸じゃダメなのか?
51名刺は切らしておりまして2020/02/03(月) 13:15:26.33ID:3bpx+BU4
>>15
unicodeの問題
18名刺は切らしておりまして2020/02/03(月) 12:44:02.07ID:nSmFISo7
プログラミング用途なら最近はatmばっかりオススメされるような
21名刺は切らしておりまして2020/02/03(月) 12:45:27.73ID:P+Jby8+D
>>18
今はvscodeじゃない?
Atomやsublimeから乗り換える人も多い印象がある
19名刺は切らしておりまして2020/02/03(月) 12:44:13.18ID:P+Jby8+D
EmEditorって作者に妙に悪い噂たってたのはなんだったんだろう
32名刺は切らしておりまして2020/02/03(月) 12:55:13.12ID:lCsaR3on
>>19
第三者が作ってたプラグインの機能を有料化して本体に組み込んだとか、そのあたりのネガキャンくらってるだけでは
25名刺は切らしておりまして2020/02/03(月) 12:48:18.24ID:Ger0W4UQ
エディタって何使ってもあまり気にしないけどな
「これ使え」と言われたものを使うだけ
30名刺は切らしておりまして2020/02/03(月) 12:53:46.40ID:IwvdoM3A
simplenote一択
31名刺は切らしておりまして2020/02/03(月) 12:53:57.57ID:NvInhmJm
株式会社まつもとのJeditがいちばん好きだったなー
YooエディットとJエディットでだいたい事足りた
35名刺は切らしておりまして2020/02/03(月) 12:56:17.70ID:AtsU5v+z
もうずっと
sublime textです
41名刺は切らしておりまして2020/02/03(月) 13:00:12.41ID:dnQajjx7
ステマすぎるw
WindowsではデフォでUnicodeのメリーさん使ってる
42名刺は切らしておりまして2020/02/03(月) 13:01:27.39ID:lCsaR3on
ここまでemacs無し
45◆ElliottbHk 2020/02/03(月) 13:06:32.07ID:1OZbZ1WO
MIFESもどこに行っちゃったのかねー。
46名刺は切らしておりまして2020/02/03(月) 13:07:41.42ID:Xi+2uHj/
edlinを忘れて貰っては困る!
48名刺は切らしておりまして2020/02/03(月) 13:13:00.06ID:w5ukycTX
( ´ー`)y-~~ Mifes
50■無くそう、テレビ番組の無用で過剰なウザイ常時表示■2020/02/03(月) 13:14:37.56ID:HpYh/F2F
 
 シンプルで、フリーソフトだったころは重宝したけど、
 結局、Winのノートパッドに戻ったわ。
 
55名刺は切らしておりまして2020/02/03(月) 13:18:40.37ID:+G/45ik1
そもそも emacs >>>> Emditor なんだが
あとhidemaruもゴミな
56名刺は切らしておりまして2020/02/03(月) 13:19:13.91ID:StYtWpfW
こんなの使ってる人いるの?
ソースコード書くならvscodeだし、ただのテキストならvimとかemacsでいいし。
62名刺は切らしておりまして2020/02/03(月) 13:25:32.52ID:vQQfgJQd
98〜XP時代辺りまでは確かに使ってたなEmEditor
構文ハイライトとかオートインデントとか便利だったわ

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

67名刺は切らしておりまして2020/02/03(月) 13:32:06.65ID:Q8bR/Tpw
5万行になったエロ動画のリスト用に秀丸エディターつこてる
69名刺は切らしておりまして2020/02/03(月) 13:36:14.46ID:uwIlLoHi
普通にvimだなァ

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

71名刺は切らしておりまして2020/02/03(月) 13:37:33.70ID:Myu1Scer
Windowsのメモ帳が一番シンプルで
変な機能ついてなくて好きなんだけど
強制終了したりパソコンがフリーズしたときのために自動バックアップさえついてればなあ…と思う
72名刺は切らしておりまして2020/02/03(月) 13:37:34.48ID:z0cq2nfS
昔使ってたけど、今はlinterやセマンティック補完がないとツラいわ

古くはvimやemacs、今のvscodeもそうだけど、
どれだけコミュニティの支持を得られるか=拡張を書いてくれる人がどれだけいるか、が大切

74名刺は切らしておりまして2020/02/03(月) 13:39:31.96ID:5ak+cw0B
mac は CotEditor ってことで

おk?

78名刺は切らしておりまして2020/02/03(月) 13:50:58.09ID:1+9YgB1i
>>74

んだ
ありがてエディタだ

85名刺は切らしておりまして2020/02/03(月) 14:18:36.00ID:WMQ0IlQc
>>74
Macはvimかemacsが多かったけど、最近VSCode使う人が増えてきた
75名刺は切らしておりまして2020/02/03(月) 13:40:17.70ID:jZVSMwuc
>開発者である江村豊氏に

江村の23年

77名刺は切らしておりまして2020/02/03(月) 13:47:50.76ID:Npp3s/JB
秀丸は unicode で何か問題あんの?
81名刺は切らしておりまして2020/02/03(月) 13:58:10.52ID:XuwQOwpe
WordMaster、一択でしょwww
92名刺は切らしておりまして2020/02/03(月) 14:30:05.66ID:trAGzXaB
vi 最強説。

引用元:http://egg.5ch.net/test/read.cgi/bizplus/1580700720/