The best editor is neither Emacs nor Vim, it’s Emacs and Vim!(最高のエディタはEmacsでもVimでもない。それはEmacsとVimの両方だ!)という、なんとも威勢のよいキャッチフレーズで登場したSpacemacsは、Vimのキー操作(Emacs操作との混在も可能)でEmacsを使えるようにした、拡張版Emacsです。
Emacsに大量のパッケージを導入することによって、キャッチフレーズ通りEmacsとVimのいいとこ取りを実現しています。
Emacs本体の準備とSpacemacsパッケージのダウンロード
ということで、今回は、MX Linux 21にSpacemacsをセットアップします。
Spacemacsは、Emacsのパッケージ群で構成されていますので、システムにEmacs本体がインストールされていることが必要です。
sudo apt install emacs
Debian 11ベースのMX Linux 21のリポジトリからインストールできるEmacsのバージョン27.1です。Spacemacsの公式ページでは、SpacemacsをセットアップできるのはEmacs 25.1以上となっていますので、MX Linux 21のリポジトリにあるEmacsであれば、余裕をもって要件を満たしているということになります。
Emacs本体がインストールが完了したら、ホームディレクトリの~/.emacs.dをリネーム(下記の例では.emacs.d_bkなど)し、続いて、gitコマンドでspacemacsパッケージをダウンロードします。
mv ~/.emacs.d ~/.emacs.d_bk
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Spacemacsの初期設定(ドットファイル作成)
Spacemacsパッケージのダウンロードが完了したら、Emacsを起動します。
起動画面がEmacsのいつものものではなく、Spacemacsのものに変わっていることが確認できます。画面の一番下のミニバッファには、初期設定(ドットファイル作成)のためのウィザードが、表示されています。
最初の質問は、編集スタイルはvimとemacsのどちらを選ぶかです。Spacemacsの編集スタイルには、もうひとつ、hybridという両者折衷のスタイルもあります。ただし、hybridは初期設定では選択できません。今回は、デフォルトのvimを選択して先に進みます。 hybridの設定については、後ほど触れます。
初期設定ウィザードの2番目の質問は、Spacemacsのどのディストリビューションでスタートするかという質問です。ここもデフォルトのspacemacsを選択してエンターキーを押し、先に進みます。
Spacemacsのインストール
初期設定ウィザードの質問に回答し終わると、Spacemacsのインストールが始まります。
インストール完了後に、次のような警告が出ることがあります。これは、evilモード(EmacsをVimのキー操作で使うためのモード)のキーバインドに関する警告です。参照すべきURLも、書かれていますが、evilモードを使わなければ、特に問題はないようなので、ここで、Spacemacsを終了します。
Make sure to set `evil-want-keybinding’ to nil before loading evil or evil-collection.
See https://github.com/emacs-evil/evil-collection/issues/60 for more details.
Spacemacsを再起動(コマンドはemacs)すると、evilモードの警告はもう現れませんが、代わりに次の警告が現れます。
– Cannot find any of the specified fonts (Source Code Pro)! Font settings may not
be correct.
この警告は、単純明快です。Spacemacsで利用しているフォントSource Code Proがあなたのシステムにインストールされていないということが指摘されています。
Source Code Proは、Googleが提供するWebフォントのひとつで、主にブラウザでの利用のためにフリーで配布されているWebフォントの一種です。
Google Fontsは、ブラウザでの利用だけでなく、システムに直接インストールして使うことも可能です。コチラからダウンロードできます。
初期設定ファイル.spacemacsの編集
前述のSource Code Proをシステムに直接インストールするという方法の他に、自分の好きなフォントを指定するという方法もあります。
その設定はホームディレクトに作成された.spacemacsの設定で行います。フォントに関する設定は、.spacemacsファイルの243行目辺り(あくまでも目安です)にあります。
dotspacemacs-default-font '("Source Code Pro"
:size 10.0
:weight normal
:width normal)
例えばSource Code Proとなっているフォント名を好みのフォントに変更するだけです。フォントの大きさもここで変更できます。
また、前述の編集スタイルもこのファイルで変更可能です。こちらは164行目辺りです。
dotspacemacs-editing-style 'vim
初期設定で、デフォルトのvimを選択したので、上記ファイルではvimとなっていますが、ここをhybridやemacsに変更すると、編集スタイルが変更されます。
このように、基本的な設定変更は、通常、この.spacemacsを編集することで行います。
なお、Spacemacs起動時は、.spacemacsより先にホームディレクトリ内の.emacs.d/init.elを先に読み込みますので、Emacsを利用していた時代に書き込んだ設定等は、.emacs.d/init.elの最後に追記しておけば、そのまま(編集スタイルをhybridにしないと動かないものもあり)使えます。
ターミナル以外でVimを使いたいときの選択肢のひとつとして
Spacemacsのセットアップは以上で完了です。セットアップはシンプルそのものですが、Spacemacsは奥が深い(ベースはEmacsですから)ので、ここから、どうSpacemacsをカスタマイズするかはその人次第ということになります。
私の場合、2年前にMX Linux 19にSpacemacsをセットアップして、いろいろ弄った結果、最後は、プレーンなEmacsに戻した(ホームディレクトリの.emacs.dフォルダを削除するだけ)という、苦い経験があります。EmacsとVimの操作が混在することで、かえって使いにくくなったというのが、そのときの感想でした。
今回は2年越しのSpacemacs再挑戦ということになりますが、前回の失敗から学んだことを活かして、とにかくシンプルに使うことを心がけています。
EmacsとVimのいいとこ取りをしてやろうという野心は一切持たず、あくまでもSpacemacsは、ターミナル以外で、Vimを使いたいときの選択肢のひとつだというスタンスで臨んでいます。
そのおかげで、今のところは、操作で混乱することなく、そこそこ快適に使えています。
あと、同じようなコンセプトで、Doom Emacsなどもありますが、あまり手を広げすぎるのと混乱する元ですので、もうしばらくSpacemacsを試したいと思います。