秀丸エディタの弱いところ、強いところ

みなさんは何エディタを使っていますか。私は秀丸エディタです。エンジニア界隈では肩身の狭い思いをしがち（Qiita で記事を探しても100件程度しかヒットしないです :sweat:）ですが、秀丸エディタには秀丸エディタの良さがあると思っています。

そこで「弱いところ」「強いところ」という観点で所感をまとめてみました。

# 最初に結論から
まず最初に結論として、秀丸エディタの「弱いところ」と「強いところ」を踏まえた上で、秀丸エディタが向いていると思われるユーザーの特徴を挙げておきます。

- Windows 使いである
- UNIX 系エディタ(Vim、Emacs、Sublime Text, Atom etc...)は習得がムズすぎて挫折した
- マウス使いである
- 日本語ドキュメント、ブログ、小説などを書く用途がメイン

# 秀丸エディタの弱いところ

## 基本的にプログラミングには不向き
プログラミングを行う際に外せない機能は多数あります。たとえば、

- 1 コードハイライト
- 2 入力補完
- 3 アウトライン表示（関数単位で見出しを表示するとか）
- 4 デバッグ実行環境（IDE では当たり前に搭載）
- 5 ターミナルとのシームレスな連携（たとえば Vim ではエディタ上でサクっとターミナルを操作できる）

などです。これらは秀丸エディタでも出来ないことはないのですが（下記画像参照。Markdown 形式ですが 1-3 を実現しています）、

![hidemaru_programming_features.jpg](https://qiita-image-store.s3.amazonaws.com/0/191170/afcbf515-57cd-1303-7c7b-64bd380874f3.jpeg)

少々ツライのが現実です。詳しく見ていきます。

1 のハイライトについては、強調表示定義を自作すれば対応できますが、いちいち自作するのもだるいですし、自作する物好きもそうはいない＆エンジニアのユーザー数も多くないので誰も作ってない、という事情があります。一応メジャーな言語であれば、探せば既存の定義ファイルが何個か見つかります。

2 の補完については **ファイル内に登場する英単語** に限り補完を行う機能があります。が、言語のキーワードや関数で補完したり、include している他ファイル内で定義された名前で補完したり、といったことはできません。

3 アウトラインについては、強調表示と同様、設定を自作すれば実現できます。結構便利な機能ですが、やはりユーザー数の少なさから既存の設定はほとんど存在しないので自製することになるでしょう。

※アウトライン機能について……見出し(TOC)を一覧化する機能です。「こんなパターン（正規表現使用可）の行は見出しとみなす」という感じで設定します。設定後、「アウトライン枠」というペインを左か右に表示すれば見出し一覧が表示されます。関数やクラスの定義を認識させれば、クリック一発でジャンプできたり、D&D で並び替えできたりします。また「上（下）の見出しに移動」という操作も用意されているので、ショートカットキーを割り当ててサクサク移動することもできます。

4 のデバッグ実行環境と 5 のシームレスターミナルについては、秀丸エディタでは実現不可能です。じゃあどうしてるかというと Alt + Tab です。Alt + Tab でターミナルに切り替えて、ビルドコマンド叩いて、また Alt + Tab で秀丸エディタに戻ってくる……という操作を繰り返します。

## エンジニア人口が少なく設定資産が乏しい
上記でちらっと言及しましたが、秀丸エディタを使うエンジニアさんは少ないです。それゆえ各言語用の設定ファイルが作られたり、洗練されたりといった機会もほとんどありません。

※「エンジニア」という言葉の意味については議論の余地があるでしょうが、あえて言及しません。ニュアンスを感じ取っていただければ :sweat:

## 設定が dotfiles でない
dotfiles とは .vimrc や .editorconfig などのようなファイルのことです。要するに設定ファイルなわけですが、

- plain text で記述されている（ので編集や管理が容易）
- 所定場所に配置するだけでエディタ等に適用できる（実際はシンボリックリンクの設置など多少追加手順があったりしますが）

などの特徴があります。余談ですが GitHub では [dotfiles](https://github.com/search?o=desc&q=dotfiles&s=stars&type=Repositories&utf8=%E2%9C%93) というリポジトリを作って「俺の設定を見ろや！」と顕示する文化があったりしますよね。

dotfiles に対応したエディタだと設定の運用が非常に楽になります。GUI を経由せずともささっと編集できますし、環境を変えたとしても当該のファイルを配置するだけで設定を復旧できます。

では秀丸エディタはどうでしょうか。 **dotfiles には対応していません**。じゃあどうなっているかというと、以下のようになっています。

- .hmereg(レジストリ形式) で全設定をエクスポート/インポートするのが基本（GUIからメニューを辿ることで操作します）
- 表示設定に限って言えば、ファイルタイプ別の単位でもエクスポート/インポートが可能（これも GUI からしか行なえません）

若干煩わしさは否めませんし、GitHub で顕示するのにも向いていません。

## Windows でしか使えない
秀丸エディタは Windows 用テキストエディタです。他の OS では使えません。ここには単に「他の OS では使えない」以上の意味合いが潜んでいます。それは **秀丸エディタに慣れてると他のエディタに慣れるのに苦労する** ことです。

秀丸エディタは Windows の、GUI の、日本語ユーザーに焦点を絞った操作感となっていますが、これは言うなればガラパゴスな状態です。エンジニアやプログラマーはもっと効率的で、効果的で、ソーシャルでシェアラブルでイングリッシュなエディタや開発環境を使っており、ここには「秀丸エディタには存在しなかった」概念や仕組みが多数存在します。

要するに「乗り換えに苦労する」というエンジニアあるある話でしかないのですが、秀丸エディタしか知らない人は想像以上に面食らうはずです。

# 秀丸エディタの強いところ

## メニュー、タブ、ウィンドウ――Windows ベースの慣れ親しんだ UI
Windows の優れている点として GUI があります。ウィンドウがあって、メニューバーがあって、タブがあって、それらをマウスでクリックして選択して、ドラッグで移動して、右クリックでポップアップメニュー出して――このような操作感に慣れ親しんでいる人も多いのではないでしょうか。

秀丸エディタは Windows 用ソフトウェアとしては古参です。シェアウェアという形で何十年も生き続け、多くの Windows ユーザーを支えてきました。それだけに Windows との親和性といいますか、Windows を前提とした操作感、UI といったところの洗練度は抜群です。Windows に慣れているなら違和感無く使えると思います。

「秀丸なんか使ってんの？UNIX 系エディタの方が使いやすくない？」 そっちが使えるならそうすればいいと思います。むしろ Windows さえも使わなくて済むならそれが良いでしょう。が、世の中そんなエンジニアばかりではありません。 **Windows の、この慣れ親しんだ操作感を前提にした**、でもできるだけ使いやすいエディタが欲しい……そんな需要もあるはずです。あるいは UNIX 系エディタに挑戦してみたけどダメだったという人もいるはずです。

そんな場合の選択肢として、秀丸エディタは最有力ではないかと私は思っています。

## GUI ベースでありながら設定項目が豊富であること
秀丸エディタは機能と設定が豊富です。たとえば以下は設定画面の例です。

![hidemaru_configui_sample.jpg](https://qiita-image-store.s3.amazonaws.com/0/191170/6d47fa47-5db0-d706-58c2-eaf42bed1d0b.jpeg)

初心者から上級者まで幅広く活用できるポテンシャルを持っています。

「そんなの UNIX 系エディタでもそうじゃないか。むしろこっちの方が優れてるだろ」と思われるかもしれませんが、UNIX 系エディタは学習コストが高いのが難点です。設定ファイルやコマンドを覚えないといけません。

秀丸エディタなら GUI ということもあり、メニューバーから辿って日本語を読んだり、右クリックメニューを出したりすることで「どこに何があるのか」「●●をしたいんだけどどうすればいいんだろう」といったことを **直感的に** 把握できます。

「どうせ高機能すぎて探すのも大変なんだろ」と思われるかもしれませんが、Visual Studio や Office ほど混沌としているわけではありません。

## ヘルプが読みやすいこと
Windows では F1 キーで起動できるヘルプですが、このヘルプについて皆さんはどんなイメージを抱いているでしょうか。おそらく「役に立たない」「ググった方がマシ」という印象があるのではないでしょうか。私はそうです。

幸いにも秀丸エディタのヘルプは読みやすく作られています。どこぞの製品マニュアルやら余計なイルカやらとは違って、平易で、でも網羅的に書かれています。長年シェアウェアとして続いてきたがゆえの叡智が詰まっているとさえ思います。

なのでわからないことはググらずともヘルプ内で完結できることも多いです。地味にありがたいです。

ちなみにヘルプは chm 形式です。

## 正規表現やマクロも使える
UNIX系 エディタでは当たり前なんでしょうが、秀丸エディタでも正規表現やマクロを使うことができます。使いこなせれば、使っていない人と比べて格段に作業効率を高めることができます。

マクロについて説明しておきます。秀丸エディタではマクロという「指定した操作を繰り返す」仕組みがあります。メニューから「開始」「終了」を選んで操作を記録/再生するタイプのものと、独自のスクリプト言語を書いてインタプリター的に実行するタイプの二種類があります。

特に後者のスクリプトについては、秀丸エディタの各種機能や状態を関数や変数として利用できたり、外部プログラムを呼び出したりも可能なので、その気になれば色んな作業をプログラマブルに制御できるようになります。

ちなみに [秀丸エディタの公式サイト](http://hide.maruo.co.jp/lib/macro/index.html) では便利スクリプトが公開されています。

## 日本語編集に強い
秀丸エディタは国産エディタなだけあって日本語編集には強いです。

まず、UNIX 系エディタや海外製ソフトウェアにありがちな文字化けは起こりません（もちろん Shift-JIS のファイルを UTF-8 で開こうとした等、ユーザーの操作ミスで化けることはあります）。

それから縦書きモードがあります。小説執筆時（特に縦書きレイアウトで確認したい場合）に重宝します。

あと何気に外せないのが文字数表示機能ですね。

![hidemaru_mozisu_count.jpg](https://qiita-image-store.s3.amazonaws.com/0/191170/68286534-13b2-533f-d2d1-2c9b8537fc64.jpeg)

全角文字、半角文字、空白、タブ、改行などをそれぞれ何文字として計算するかを指定できるので、日本語文章のカウントに重宝します。


## ツールバーやステータスバーに好きな操作を配置してクリック一発で呼び出せる
これはマウス使いに嬉しい機能なのですが、秀丸エディタではツールバーやステータスバーに好きな機能を配置することができます。配置したら、クリック一発で呼び出せるので非常に便利です。キーボード派は「たまに使う機能」を配置しておくと良いでしょう。

ツールバー。各ボタンの並び順は自由に変更できます。

![hidemaru_toolbar.jpg](https://qiita-image-store.s3.amazonaws.com/0/191170/8ab1221c-4f53-daf4-453c-1116236ceae3.jpeg)

ステータスバー。ここは厳密に言うと「ファンクションキーに割り当てた機能」を表示する領域です。F1-F12と12個分が表示されます。ちなみに Ctrl や Shift とのコンビネーションも可能なので、最大 48 個分登録できることになります。

![hidemaru_statusbar.jpg](https://qiita-image-store.s3.amazonaws.com/0/191170/4c0e4afe-df4d-321b-fafe-d9dfdb1d2fac.jpeg)

# おわりに
秀丸エディタの弱いところ、強いところについてまとめてみました。参考になれば幸いです。コメントもお気軽にどうぞ。