[改訂新版]Emacs実践入門を読んだ

2010年代のEmacs入門書の双璧のひとつ「Emacs実践入門」の5年半ぶりの改訂版が出ます。公式の発売日は9月22日なので、まだ少し間があります。

実は縁あって著者のTomoya Otakeからいただいたのですが、待ちきれないので、先週末自分で買ってきました(早く読みたかったから…)

@tomoyatonの著書をならべたところ

左側の赤いのがEmacs実践入門の初版、右側の青い本が既刊のAtom実践入門、そして中央が今回出版される[訂新版]Emacs実践入門です。

左の赤い本は初版なので、もし店頭在庫が残ってても新版と間違って手にとらないように気をつけてくださいね。あと、今回は電子書籍版(PDF)も同時発売なので、そちらを購入することもできます。

いまどきEmacs?

そのような声も時折聞かれるのは悲しいことです。

さまざまな実用的なエディタ・IDEが普及したことで相対的なEmacsの存在感が薄れたことは事実ですが、実際のところEmacsは本体やユーザーが開発した拡張パッケージともども未だに活発に開発が続く一大コミュニティがあります。

こんにちJavaScriptやPythonで拡張プラグインを開発できるエディタは珍しくはありませんが、Emacsのようにコア機能に至るまでユーザーが拡張可能なものは多くありません。それは決してカスタマイズしなければ役に立たないといったことを意味しませんが、かゆいところを自分の手で改善することができるようになります(そして、それは案外難しいものではありません)。

どんなひとに勧めるか

  • Emacsを使って開発(プログラミング)してみたいひと
  • 普段なんとなく使ってるEmacsについて体系的な理解を得たいひと
  • 拡張パッケージについての知識をアップデートしたいひと

この本では基本はプログラミング用エディタとしてのEmacsにフォーカスしてるので、Emacs独特の概念や裏技的ハックについてはあまり言及がありません。しかし、基本機能の説明は充実してます。

どんな本か

Emacsはコーディングや執筆など、さまざまな用途に活用できるソフトウェアです。この本はEmacsを使って一般的な開発(コーディング)を実践できるように要点を絞って紹介されてます。

この本をきちんと読むと、以下のような概念の理解が得られます。

  • 基本的な編集コマンド操作
  • Emacsの画面構成と操作
  • 検索と正規表現
  • Emacsの設定方法
  • テキスト編集を効率化する拡張パッケージ
  • 開発を効率化する拡張パッケージ

ざっくりと書くと、こんな感じです。

Emacsの標準機能についてはEmacsマニュアル(日本語訳)など有用なオンラインドキュメントがあります。マニュアルは網羅度が高いぶん、機能が多すぎて要点が掴みにくい欠点もあります。

そのほかの拡張パッケージについてはEmacsコミュニティの面々が書いたblog記事など多くありますが、これらの情報源を体系的にまとめられたものは少く、貴重です。

一方で、この本は飽くまで入門書であることは留意が必要かもしれません。ただし中級者以上であってもEmacsの概要を学び直すために有用でしょう。

また、Emacsの多くのテクニックを大量に列挙するスタイルのるびきちさんEmacsテクニックバイブルとはスタイルが異なるので、これを置換するものではありません(これも改版されないかなあ…)

旧版との差異

基本的には改訂なので、2012年2月時点と2017年8月で変化したことのアップデートが中心です。特に5章までは各OSへのEmacsのインストール方法のほかは、若干の構成変更と空いたスペースに加筆があります。

大きな差がつくのは6章以降です。実はこの改訂新版、旧版よりも10ページ少ないのです。しかし、ページ数が減少したからと言って内容が目減りしたことを意味しません

改訂新版が出るまでの5年半では、当然めんどくさいことは省力する方向への進歩がいくつもあります。旧版時点ではさまざまなパッケージのインストール方法が混在してました。極端なものでは、ElScreenのインストール手順です。

Emacs実践入門(2012 大竹智也, 技術評論社, 初版1刷 p141)より引用

上記画像の半分から、さらに1ページ続きます。

— — その一方で、改訂新版ではこちら。

[改訂新版]Emacs実践入門(2017 大竹智也, 技術評論社, 2版1刷 p139)より引用

旧版では1ページ半の紙幅を使って解説されたインストール手順が、なんと1行に圧縮されました。ここまで大胆に削れたページはこれだけですが、ほかのパッケージも大なり小なり圧縮されてます。

空いた紙幅には、コラムや初版には存在しなかったパッケージがいくつも追加で紹介されてます。

旧版を持ってるひとは購入すべき?

そもそも「package.elって何?」ってひとはマストバイ。初版発売時はEmacs24のリリース直前だったのでpackage.elは軽く紹介される程度に留まってましたが、現在ではMELPAの登場も合せてパッケージインストール方法の主流になりました。

旧版の内容を十分理解して、モダンなパッケージを積極的に使ってる型などは学びはあまり多くないかもしれません。

読者は次に何をすべきか

Emacsは使ってこその道具なので、ぜひ普段の趣味や仕事でのコーディングに使ってみてください。

本書の結びの章にも紹介がありますが、Emacs-JPのSlack teamにはアクティブなEmacsユーザーが常駐してるので、気になることがあれば直接尋ねることができます。

また、オフラインのミーティングに参加して、実際にEmacsを使ってるひとたちと直接ノウハウの交換をすることも良いことです。

……ん、オフライン? そんなのあるの?

ここで唐突にお知らせ!

[改訂新版]Emacs実践入門の出版記念イベントやります!

Emacs入門者にも役に立つイベントにするので、興味のあるひとはぜひ来てくださいね ヾ(〃><)ノ゙

感想

2017年のEmacs

初版執筆時の2012年2月の最新版はEmacs 23.4でした。その後2012年6月にはEmacs 24.1がリリースされました。それが、いまやEmacs 25系が最新版です。(おや…?)

ちょうどこの期間に私(@tadsan)はEmacsコミュニティに顔を出すようになり、Emacs Lispを書くようにもなりました。ほんの若干ながら、その5年間の集大成に微力ながら影響を及ぼせたのは、われながら嬉しいことです。

追記:@tadsanの微力な影響とは?

地味なのですが、php-modeの設定が簡略化されてるあたりがダイレクトに旧版と改訂新版の差分に反映されてます。あと地味なんですけど、phpunit.elの共同メンテナになってちょっとした改善をしてたりもします。

おまけ:早売り情報

インターネッツで見た。東京都内のいくつかの店舗で売ってる。

Show your support

Clapping shows how much you appreciated USAMI Kenta @tadsan’s story.