前回は、spacemacsについて spacemacsが最強で最高で神エディタであると思い始めた件 という全く入門になってない、ポエムを書いたので、Spacemacsの入門記事を書いてみることにする。
この記事を書くとき、対象のユーザを設定するのに少し困った。というのも、対象ユーザ像として、誰向けに書こうか?と考えたとき、大きく分けると
- Emacsユーザ
- Vimユーザ
- その他のユーザ
に分かれてしまう。そして、Emacsユーザのみを考えても、同じEmacsでも関心が異なることがある。ひとまず、EmacsでもVimのユーザでも無い、「その他のユーザ」がSpacemacsを導入するというととを考えて、記事を書いてみる。
どうしても、暗黙知があり、説明に飛躍があるかもしれないが、できるだけカバーして書いていきたい。
さて、今後4回に分けて書こうと思う。
- その1 : Spacemacsの環境構築、基本的な操作、
- その2 : Spacemacsの設定のキホン事項、
- その3 : Spacemacsの設定の詳解
- その4 : Spacemacsのレイヤーの基礎
以上が入門としてである。また、今後、さまざまなレイヤーが提供されているので、いくつか詳解したい。
Spacemacs入門その1
環境構築
これは、spacemacsに書いてある通りに、やれば良い。
まずは、Emacsを導入する。spacemacsによると、各自好きな方法で、導入して良いと思うのだが、osxの場合、
$ brew tap d12frosted/emacs-plus
$ brew install emacs-plus --with-cocoa --with-gnutls --with-librsvg --with-imagemagick --with-spacemacs-icon
$ brew linkapps
が推奨されているようだ。
そして、spacemacsの.emacs.dをgitからcloneする。emacsでは, .emacs.dは、emacsにおいて、設定や拡張のファイルを入れておくところだ。Spacemacsは、emacsの拡張で、.emacs.dを導入して、emacsをSpacemascにカスタマイズするということである。
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
最後に,Emacsを起動しよう。ここで、spacemacsに必要なパッケージがダウンロードされる。また、ここで、EmacsかVimかの、キーバインドの設定を求められる。
emacs --insecure
キーバインドの設定でおすすめなのが、Vim(Evil)に設定しておくことを勧める。これは、もともとEmacsのユーザであっても、一度しばらく試してほしい。 個人的には、モード(ステート)に慣れればすごい良いものだと思えると思う。
Spacemacsを使ってみる(Spacemacsツアー)
慣れた人であれば、最初にまず、自分なりに設定をするとは思うのだが、まずは、簡単に基本的な事項を説明しながら、Spacemacsを体験してみよう。
ここでは、基本的な操作を解説していく。まず、ファイルを開く、そのあと"Hello World"などとテキストを挿入し、最後保存といった基本的な流れを説明して行く。
スペースキーが基本
さて、Spacemacsとう名前が付いていくぐらいであり、Spacemacsは、スペースキーからいろいろな操作を行なうことが可能である。まずは、スペースキー(SPC
)を押してみよう。(Emacsのキーバインディングを選択した人はSPC
をM-m
と置き変えて読んでみてくさい。)
下に、キーバインドの一覧が見れるはずだ。この一覧、はwhich-key.el
の機能である。赤字で書かれている+から始まる文字は、まだ次のキー操作が必要なものだ。
さて良くみると、f
が、ファイル操作、b
がバッファの操作、c
がコンパイル、w
がウィンドウの操作などと、ちゃんと覚えやすくなっていることが分かる。と同時に、やりたい操作が探しやすくなっている。ウィンドウ操作がしたければ、wあたりを探せばいいのかな?となってくる。
さて、SPCからのコマンド入力を誤ったなどと、コマンド入力を一端キャンセルしたい場合はとりあえずC-g
を押せば、キャンセルされる。とりあえず、C-g
を押して、SPC
の操作をキャンセルしておこう。
ファイル操作
バッファとウィンドウ
まず、基本的な知識として、Emacsはバッファとウィンドウがある。Emacsは、バッファとよばれる、ユーザの作業領域があり、そこでファイルの内容を読み込み、編集し、そして、その編集を元のファイルに保存する。つまり、一時的な編集作業領域がバッファである。
そして、そのバッファの内容を表示するのが、ウィンドウである。emacsは、ウィンドウを分割したりすることによって、複数のファイルを開いて、並行に作業することができる。
ディレクトリツリーを表示する
さて、ファイルを開くためにディレクトリツリーを表示してみよう。普通のエディタであれば、ファイルツリーを表示できて当たり前であるだろう。
SPC f t
を押してみよう。fはファイル操作、tは恐らくtreeからだろう。ここで、which-key.elのwindowが変化していることも見ておこう。さて、このキー操作でディレクトリツリーが表示される。(これは、neotreeという拡張の機能である。)
ディレクトリツリーの操作
さて、ディレクトリツリーを操作して、ファイルを追加したりしてみよう。
まずは、ディレクトリツーのウィンドウをアクティブにしておこう。おそらく、SPC f t
の直後であれば、既にアクティブな状態になっている筈だが、そうで無ければ、マウスでアクティブにするかSPC 0
などを押してアクティブにしよう。Spacemacsに置いて**複数のウィンドウの移動は、マウスかSPC <対応するwindowの数字>
で移動できる。windowの数字は、ページ下部にあるライン(モードライン)に表示されている。
さて、neotreeのwindowがアクティブであるのを確認したら、ディレクトリツリーにノードを追加してよう。そのために、ああ、どうしよう! 追加するキー操作を忘れてしまった! ちょっと強引だが、こういった光景は良くあることだろう。
もちろん、この場合ググっても良いし、また、M-x
からコマンド名を入力してもいいのだが、こういった場合には、Spacemacsは、キー操作を調べる方法がある。SPC h k
である。(この場合h
はhelp
であり、kはkey
のことだろうと思う、なんとも覚えやすいと思う。)
さて、たくさんのキー操作がでてきた。
さて、ここで、目的のキー操作を探してみよう。neotree
の機能であるので、neotree
というワードと、ファイル作成なのでcreate
などを探しておこう。とすると、neotree-create-node
がそれっぽい。なるほど、tree
なので、node
を作るってことであるだろう。なので、c
を押下してみよう。
そうすると、node
を作成する画面が登場する。
とりあえず何か作成してみよう。とりあえず、helloworldというNodeを作成した。
テキストを編集して、保存する
さて、helloworldというファイルが生成されたようなので、編集して保存してみよう。
おそらく、開いた状態のままだと、モードラインがこの様に表示されているだろう。
このオレンジの色の状態は、Evilのノーマルステート(Vimにおけるノーマルモード)である。これは、カーソル移動などのための状態であり、このままではテキストを入力できない。なのでi
を押下してみよう。すると、インサートステート(Vimにおけるインサートモード)に変化し、モードラインの色やカーソルの形が変化する。
この状態でテキストが入力できるので、テキストを編集しよう。ここでは、hello world
とタイプした。
さて保存してみよう。保存するためには、ノーマルモードに切り変えなければならない。fd
とすばやく押下してみよう (同時押しぐらいの感覚で良い)。また、オレンジの状態に戻るはずだ。また普通のVimのように、ESC
やCtrl-[
とタイプするのでも良い。
保存してみよう。保存は、:w
(vim風の操作)良いし、SPC f s
(f
はfile
、sはsave
である)でも良い。
最後に編集したバッファを閉じてみよう。SPC b d
でバッファを閉じることができる。(キー操作の意味については考えてみよう)
まとめ。
今回は、簡単な導入と、Spacemacsのキー操作について、体験した。 読んで、Spacemacsでのemacsが如何に魅力的かが理解して頂けたら幸いである。
次回は、Spacemacsの設定の基本的なところを説明する。お楽しみに。
補足Vimの操作について。
細かい、Vimの基本的な操作に慣れて無い人は、どこかで、基本的なVim操作を覚えるか、または、SpacemacsからEvil-tutor
をやっておくと良いでだろう。SPC h T
と順番にタイプしてみよう。
そうすると、画面に、Evil(Vim)のチュートリアルが表示される。画面従ってやっておくといいだろう。
最初は全部はやる必要はないと思う。最低限
- ノーマルモード(ノーマルステート)、挿入モード(インサートステート)の切り変え
-
hjkl
のカーソル移動
に慣れることが大事だと思う。ちなみに、Vimにおいて、ノーマルモードへの移行は、ESC
か、C-[
だとは思うが、Spacemacsのデフォルト設定ではおそらく、先のコマンドに加え**fd
と素早く押す**ことによって、切り変えが可能である。(後に詳しく設定などを解説する。)
また、:q
などをVimにおける終了の操作をしてしまうと、そのファイルを閉じるだけでなく、Spacemacsが終了してしまうので注意してほしい。(このあたりは、設定を変更することが可能だ)