Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

『Emacs実践入門』を読んだ

Emacs実践入門』をひととおり読んでみました。仕事で Emacs を使うことがだんだん増えてきており、いつかちゃんと勉強したいなと思っていたので、年末年始でいろいろ設定してみました。

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

読後の感想

  • とりあえず Emacs をハードに使って開発する基盤ができあがる: 本書の内容にそって init.el を書き換えていくだけで、開発に必要な設定が一通りできあがります。Emacs 使いならある程度共通してやっている設定や、 git の設定、各言語固有の設定までその内容は多岐に渡ります。
  • それぞれの項目の深掘りはあまりない: 入門者向けなので仕方ありませんが、記載されている Elisp の解説やなぜそのような機能が実装されているのかといった深掘りするような話はありません。本当に必要最低限載っています。

読後の私の Emacs の状況はこんな感じになりました。

f:id:yuk1tyd:20180101171643p:plain

読書メモ

1章

Emacs の紹介です。

2章

インストールの仕方など。

3章

Emacs の特徴でもあるキーバインドについてです。頻出するキーバインドについてはひととおり押さえてあります。

4章

Emacs のカスタマイズが始まります。具体的には次のような話です。

  • オススメのディレクトリ設定は、 .emacs.d 以下に init.el を置いて、さらに conf, elisp, elpa, public_repos, etc, info ディレクトリを作成する方法みたいです。他の GitHub 上の dotfiles/.emacs.d も見てみたのですが、結構この構成に則っていることが多くわりとスタンダードな方法なのでしょう。
  • require 関数は、拡張機能を最初から全部読み込みたい際に使用し、autoload 関数はコマンドを登録だけしておき、実行時に読み込みたい際に使用します。

5章

より細かい Emacs 本体の設定がはじまります。設定は多岐に渡りますが、私は次の設定を再設定してみました。

  • 文字コードの設定: (prefer-encoding-system 'utf-8)
  • 行番号を常に表示: (global-linum-mode t)
  • 対応する括弧のハイライト: (setq show-paren-delay 0)(show-paren-mode t)
  • バックアップを1箇所に集めるようにした: (add-to-list 'backup-directory-alist `(cons "." "~/.emacs.d/backups/"))(setq auto-save-file-name-transforms `((".*" ,(expand-file-name "~/.emacs.d/backups/") t)))
    • /.emacs.d/backups にバックアップファイルを集めてくれるようになります。バックアップファイルは必要なのですが、毎回そのファイルのディレクトリに作成されてしまって git を使った管理をしていてとても邪魔に感じていたので、非常に助かる設定でした。
  • ファイルの自動更新: (global-auto-revert-mode t)

6章

パッケージの管理に関する章です。ある特定の言語にとらわれない汎用的な設定がメインです。

  • パッケージをインストールするには、elpa などの設定を済ませた後に M-x package-install することでインストールできます。
  • ただし、インストールしたパッケージはすぐには反映されないので、M-x package-initialize します。
  • undo-tree など便利なパッケージがいくつか紹介されていて、ひとまず私も何個か入れてみました。

7章

開発時に使用するパッケージの紹介で、magit など便利なパッケージがいくつか紹介されています。Web 開発に特化している感じですね。RSpec との連携ができるとは知りませんでした。

今後

Lisp で設定ファイルを書けるのはやはり楽しいので、Emacs Lisp 関係の本も読んでみたいかもしれない。C 言語用の設定をやっと真面目に整えたので、C 言語ライフがちょっとはかどりそうです。