Help us understand the problem. What is going on with this article?

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away