Emacsを触りはじめてしばらくたって、だいぶいろいろなことが分かってきたので、Emacsを始めてみようと思っている人向けに(特に物心ついた時にはすでにGUI全盛だった若い世代の人向けに)Emacsとは何ぞや、という入門記事を書きたいと思います。
Emacs初心者がインストール前にこの記事を読めば、このとっつきにくいエディタとわりとすんなり仲良くなれると思います。
#はじめに
Emacsとは基本的にCUI上で動くリッチなテキストエディタです。
基本的にと書いたのはターミナル(Windowsでいうコマンドプロント)以外で動くEmacsもあるよということなんですが、この辺は無駄に混乱するしそんなに大事なことじゃないので説明しません。
あとずっとみんなが話してるVim(vi)との違いについてもずっとみんなが話してるので説明しません。どうしても気になるようだったらwikipediaとかを見てください。
#Emacsを初めて触った人が取り乱さないために
Emacsを始める上で大事なことはEmacsが文字しか扱えないということです。
(世の中にはEmacsで画像表示できるようにしてTwitterとかを見てる人もいますが、そういう人はEmacsの世界にとらえられたかわいそうな人たちなのでそっとしておきましょう)
Emacs上ではAtom(GitHubが作ったテキストエディタ)のようなおしゃれなアイコンも、アニメーションもありません。文字と一部の図形ですべてを表現しています。これはEmacsが、まだ人々がキーボードと文字を表示できるコマンドラインしか使えなかったときに生まれたテキストエディタだからです。
Emacsは文字しか扱えませんが、その代わりに文字をめちゃくちゃ上手に使えます。プログラムを書いているときは文字操作が基本なので、慣れてしまえば爆速でテキスト編集ができます。
#Emacsを使うことのメリット
ここまでの説明では結局Emacsが何なのか、ほかのエディタとどう違うのかがなんだかよくわからなかったと思います。ここからはEmacsを使うことのメリットやデメリットを挙げながら説明していきます。
###ホームポジションで全部の作業ができる
**ぶっちゃけこれにつきます。**マウスもなかったころからあるエディタなので、キーボードで全部の操作が完結するように作られています。さらにEmacsは、テキスト編集に特化した独自のキーバインドを持っていて、手をほとんど移動させずに使うことができます。たとえばCtrlとnの同時押し(EmacsではC-nと書きます)すればカーソルが一行下に移動します。もう遠くの矢印キーをわざわざ押しに行くことはありません。
このキーバインドを使いこなせるようになれば、間違いなくコーディングのスピードが上がります。
###カスタマイズ性が高い
EmacsはEmacs-Lispという独自の言語でカスタマイズすることができます。ほかのエディタやIDE(統合開発環境)だと文字のフォントが変えられたり、背景の色が変えられたりするくらいですが、Emacs-Lispが使えるようにさえなれば思いつくままに本当に何でもすることができます。また、自分で全部の設定をしなくても、世の中のたくさんのEmacs使いたちが自分の作った機能をパッケージとして公開してくれているので、それらを使うだけでかなりのことができます。ほかのエディタでできてEmacsでできないことはほぼないと言っていいでしょう。
###見えない部分のことまでわかる
Atomのような他のエディタはグラフィカルなボタンなどで設定ができて、こちらが少し指示を出してあげれば、めんどうくさいことは裏で勝手にやってくれます。これはとてもいいことなんですが、「何やってるかわからないけど、なんかうまくいく」っていう感じがして、プログラミングの過程にブラックボックスができてしまうような気がしてしまう人もいるでしょう。(もちろんちゃんと調べれば何やってるかはちゃんとわかります)
その点EmacsはあらかじめEmacs-Lispを使って全部こちらが指示してあげなくちゃいけません。設定に手がかかる分、バックグラウンドで何をやっているかがわかりやすいし、自分が気に入らない部分だけ変更することもできます。
#Emacsを使うことのデメリット
逆にEmacsにはいくつかのデメリットもあります。大体は解決策が見つかっているんですが、どうせこれから直面するであろうことなので先に紹介しておきます。
###設定がめんどくさい
なんでもできるということは、なんでもしなきゃいけないということです。ほとんどの設定は起動時に読み込むinit.elというファイルに自分で書き込まなきゃいけません。パッケージをインストールしても「パッケージをインストールしたこと」「パッケージを置いた場所」「そのパッケージをどう使うか」などなどをまたinit.elファイルに書き込まなきゃいけません。これに関しては解決策などありません。せいぜい頑張ってください。
###意外と重い
テキストだけをあつかうものなので圧倒的に軽いかと思いきや、意外とそうでもありません。確かに基本の何もいじっていないEmacsは光の速さで動きますが、いろいろ機能を加えていくうちに重くなっていきます。しかもベースが数十年前からあるままなので、あたらしいエディタなら当たり前にできることもめっちゃ頑張って負荷をかけないとできなかったりします。(たとえば筆者のEmacsは行番号を表示すると目に見えて重くなります。)また、起動時に設定ファイルを一から読み込むので結構な時間がかかります。対処策として軽量化されたパッケージを使うとか、いらない設定を消すとかでだいぶ改善されます。
###Emacsキーバインド以外が使いづらくなる
Emacsのキーバインドは他と比べて独特なので、Emacsに慣れすぎてしまうと他のアプリを使っているときに誤操作が増えます。例えばコピーはふつうCtrl-c(MacではCommand-c)ですが、EmacsではM(Alt)-wです。こんな調子でほとんどのキーバインドがデフォルトと異なるのでEmacsに慣れたてのときはかなり混乱すると思います。ブラウザで上にスクロールしようとして印刷画面が出てきたらあなたも立派なEmacs使いです。どうしても混乱してしまうようならkeyhacなどでOS全体のキーバインドをEmacs風に変えてしまうのも手です。
#おわりに
ここまでEmacsというエディタの基本的なところをざっと説明してきました。歴史が長い分、最近は少し古いような感じもしてきましたが、デメリットを補って余りあるメリットのあるエディタです。めんどうくさいインストールと、ややこしい設定と、慣れるまでしばらくの期間を乗り越えて、最高のEmacsライフを送ってください!