メメメモモ

プログラミング、筋トレ、ゲーム、etc

Emacsの基本設定

環境を移動したとき、毎回Emacsの設定を行うのが大変です。
いつも触っているEmacsならガチガチに設定するのですが、移行するのがダルイ場合があります。
また、最低限の設定だけを行いたい場合があります。

なので、Emacsを段階的に設定できるようにメモっときたいと思います。

一番シンプルな設定

最低限欲しい設定のみに絞ったもの。
ひとつのファイルを置くだけで、最低限使いやすくなることが目標です。

「goto-line」にはショートカットキーを付与せずに「M-x goto-line」で実行します。
同じく「grep」にはショートカットキーを付与せずに「M-x grep」で実行します。


ここから必要に応じて、設定を追加していきます。

ディレクトリのレイアウト

ディレクトリのレイアウトを以下のようにします。

.emacs.d
├── config/  … 各拡張の設定ファイルを置く場所
├── init.el  … 基本的な設定を書くファイル
└── packages/ … 拡張elispを置く場所

auto-installの導入

elispを簡単にインストールできるようにしてくれる拡張です。

EmacsWikiからダウンロードします。
auto-install.el

init.elの最初でパスを通しているので、ダウンロードしたファイルをpackagesディレクトリにおきます。

そして、以下のコマンドでバイトコンパイルを行います。

$ emacs -batch -f batch-byte-compile .emacs.d/packages/auto-install.el 


続いて、以下のような設定をinit.elに追加します。

;;; auto-install
(require 'auto-install)
(setq auto-install-directory "~/.emacs.d/packages/")
(add-to-list 'load-path auto-install-directory)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)


この設定により、「M-x install-elisp」が使用できるようになります。

init-loader.elの導入

init-loader.elは、設定ファイルの分割が行えるようにしてくれる拡張です。

先ほど導入したauto-installでインストールします。

M-x install-elisp http://coderepos.org/share/browser/lang/elisp/init-loader/init-loader.el?format=txt

そして、以下のような設定をinit.elに追加します。

;;; init-loader
(setq load-path
      (append
       (list
        (expand-file-name "~/.emacs.d/packages/")
        )
       load-path))
(require 'init-loader)
(init-loader-load "~/.emacs.d/config")


新しくパッケージを入れた場合は、configに設定を記述したファイルを追加していきます。

Anything

インストールは以下のコマンドで行います。

M-x auto-install-batch RET anything RET

設定ファイルは、「20-anything.el」といった名前で「.emacs.d/config/」に置きます。
中身は以下のような感じで。


auto-complete

インストールは以下のコマンドで行います。

M-x auto-install-batch RET auto-complete development version RET

設定ファイルは、「01-auto-complete.el」といった名前で「.emacs.d/config/」に置きます。
中身は以下のような感じで。


perlのための設定

cperl-mode.elのダウンロード

cperl-modeは、標準で入ってますが、無名関数のインデントがおかしくなってしまいます。

cperl-modeでの引数の無名関数のインデント

これに対応したcperl-modeを以下のページからダウンロードして、「.emacs.d/packages」に置きます。
https://github.com/jrockway/cperl-mode

perl-completionのダウンロード

以下のコマンドでダウンロードします。

M-x auto-install-batch RET perl-completion RET
設定

設定ファイルは、「10-cperl-mode.el」といった名前で「.emacs.d/config/」に置きます。
設定内容としては、

  • cperl-modeをオンにするファイル名のsuffix設定
  • インデント設定(cperl-mode)
  • ドキュメント表示設定(cperl-mode)
  • 自動補完設定(perl-completion)
  • モジュールのソース表示設定

内容を以下のような感じ。


yasnippet

ダウンロードはgitで行います。
https://github.com/capitaomorte/yasnippet


git cloneしてできたyasnippetディレクトリは、「.emacs.d/packages/」に置きます。

設定ファイルは、「50-yasnippet.el」といった名前で「.emacs.d/config/」に置きます。

設定内容は以下のような感じ。

(add-to-list 'load-path "~/.emacs.d/packages/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)

snippetファイルは「.emacs.d/package/yasnippet/snippets/」に置きます。


これから

このほか拡張を追加する場合、以下のように同じように追加していく感じになります。

  1. 「~/.emacs.d/package/」に拡張本体のelispファイルを置く
  2. 「~/.emacs.d/config/」に設定のelispファイルを置く