普段Emacs使いですが、この前またGithubのtrendで上位に挙がっていたのでちょっとSpacemacsを試してみています。
最初設定方法(いつもinit.elに書いているようなこと)がわかり辛かったのでまとめてみました。
インストール
本家のREADNE.mdに従ってインストールします。
Emacs 24.3または24.4でテストされているらしいので、いずれかのバージョンのEmacsを事前にインストールしておきます。
1 まず既存の.emacs.d
がある場合これをバックアップ:
cd ~
mv .emacs.d .emacs.bak
2 Spacemacsを.emacs.d
としてクローン:
git clone --recursive http://github.com/syl20bnr/spacemacs ~/.emacs.d
3 Emacsを起動すると、必要なパッケージのインストールが始まります。
4 パッケージのインストールが終わったら再起動します。
設定方法
Spacemacsでは各種設定はConfiguration layerという単位に分割されて管理されます。Spacemacsは~/.spacemacs
ファイルに従ってこのConfiguration layer
をロードします。
クローンした後の.emacs.d
の下のspacemacs/contrib
ディレクトリには、便利なConfiguration layer
がいろいろ入っています。例えばspacemacs/contrib/auto-completion
を使いたい場合、その旨を~/.spacemacs
に記述することでauto-completion
を利用することができるようになります。
.spacemacs
M-x dotspacemacs/install
コマンドを実行すると、デフォルトの設定が記述された.spacemacs
がホームディレクトリに作成されます。
M-m f e d
で作成された~/.spacemacs
ファイルが開きます。例えば以下のようにdotspacemacs-configuration-layers
に記述して、
;; List of configuration layers to load.
dotspacemacs-configuration-layers '(auto-completion)
M-x dotspacemacs/sync-configuration-layers
を実行すると、~/.spacemacs
の変更が適用され、Emacs package repositoriesからのauto-completion
のダウンロードや設定が施されます。
spacemacs/contrib
以下にはたくさんのConfiguration layer
があります。
各種言語系の設定spacemacs/contrib/lang
のようにサブディレクトリに格納されている場合、サブディレクトリの方の名前をdotspacemacs-configuration-layers
に記述します。
dotspacemacs-configuration-layers '(javascript) ;; javascriptのConfiguration layerを使う
個人的なConfiguration layer
個人的な設定をしたい場合もConfiguration layer
を使います。
M-x configuration-layer/create-layer
を実行するとprivate
ディレクトリ配下に任意の名前のConfigulation layer
が作成されます。例えばこんな感じになるかと思います:
ls -1 private/
hogehoge-project # hogehogeプロジェクト用のConfigulation layer
pbaleine # プロジェクトに紐づかない個人的な設定用のConfigulation layer
snippets # snippet用のディレクトリ
各Configuration layer
の構成はこんな感じになります:
ls -1 private/pbaleine/
config.el # 設定をかくところ
extensions.el # package.elでダウンロードできないパッケージの設定
funcs.el # 関数とかをかくところ
keybindings.el # キーバインドをかくところ
packages.el # package.elでダウンロードできるパッケージの設定
Spacemacs起動時にはfuncs.el -> config.el -> packages.el -> extensions.el -> keybindings.el
の順にロードされる(みたい1)ので、funcs.el
に関数を定義してconfig.el
に設定を書いてkeybindings.el
にキーバインドを記述しておけば、設定が完了した状態でSpacemacsが起動します。
おまけ
-
デフォルトの
~/.spacemacs
ではsource code proを利用するように設定されてるので、これを使う場合あらかじめsource code pro
をインストールしておくときれいに表示されます。 -
Emacs使いは
space
をM-m
で読み替えてドキュメント読みましょう -
…Vimユーザ向けにつくったってかいてあるけど、Vimユーザは使わないと思うよ
-
公式のドキュメント上で記述が見つけられていないので
*Messages*
バッファの出力をみて判断しています…まぁこの順序が変わることはないと思いますが ↩