Emacs
Vim
Spacemacs

Spacemacsの導入方法

More than 3 years have passed since last update.

普段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使いはspaceM-mで読み替えてドキュメント読みましょう


  • …Vimユーザ向けにつくったってかいてあるけど、Vimユーザは使わないと思うよ






  1. 公式のドキュメント上で記述が見つけられていないので*Messages*バッファの出力をみて判断しています…まぁこの順序が変わることはないと思いますが