普段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*バッファの出力をみて判断しています…まぁこの順序が変わることはないと思いますが ↩