どうも、たくチャレ(@takuchalle)です。

Emacs Advent Calendar 2018 の 15日目です。

前日は@conao3 さんの org-publishを使ってorgでブログを書く話でした!org-modeで書いたものを HTML に変換できるんですね!org-modeは前使ってたけど、今は使ってないなあ…

さて、みなさん、emacsclientを使ってますか?

Emacs は起動が遅いとか言われますけど、デーモンを起動してemacsclientを使えばすぐにエディタが起動できるようになります!

僕はtmuxを使って複数のウィンドウで作業することが多いのでemacsclientは必須です。

emacsclient のエイリアス設定

alias em 'emacsclient -t -a""'

僕はemで起動するようにしています。

-tオプションを付けるとファイル名を指定しなくても起動するようになります。

-a ""オプションを付けるとデーモンが起動していない場合デーモンを起動するようになります。 最初シェルを起動する時にデーモンがいるかチェックしていなければ起動するという処理を入れてたんですけど、オプションのほうがシンプルなのでオプションを使うようにしています。

tmux の設定

hugoで記事を書いている時はこんな感じでtmuxで画面を分割して、下のウィンドウ1でエラーが出てないかチェックしています。 Railsでも同じように下のウィンドウでbundle exec rails serverの状態を常時表示してエラーが出ていないかチェックしています。

また、上部を見てもらうとわかるように別ウィンドウでemacsclientを立ち上げています。

こんな感じでtmuxで画面分割や複数ウィンドウの立ち上げを行っています。

次のようにプレフィックスと縦棒で縦分割、プレフィックスと横棒で横分割するように設定しているので、直感的だと思います。僕はプレフィックスをqにしているので、C-q |で縦分割、C-q -で横分割になります。

## split windows
bind-key | split-window -h
bind-key - split-window -v

ウィンドウのサイズ変更はEmacsのカーソル移動と同じキーバインドで、大文字にしています。僕の場合C-q Bで左に大きくなります。

# Resize pane
bind-key -r B resize-pane -L 5
bind-key -r N resize-pane -D 5
bind-key -r P resize-pane -U 5
bind-key -r F resize-pane -R 5

ちょっとややこしいですが、ウィンドウの移動もEmacsのカーソル移動と同じキーバインドにしていて、こっちはコントロールキーを押しながらです。僕の場合C-q C-bで左のウィンドウに移動します。

# Change active pane
bind-key C-b select-pane -L
bind-key C-n select-pane -D
bind-key C-p select-pane -U
bind-key C-f select-pane -R

このあたりは自身の好みで設定してあげたら良いと思います。

GitHubに設定ファイルすべておいてあるので気になる人は見てみてください。

Contribute to takuyaohashi/dotfiles development by creating an account on GitHub.

まとめ

emacsclienttmuxで複数ウィンドウを立ち上げて開発する方法を紹介しました。一人でもこの便利さを知ってもらえたらいいなと思います。

明日は@blue0513さんが「Emacs で自作関数を使ってみる」という記事を書いてくれます!!


  1. 正確にはウィンドウではなくペインですが、ここではウィンドウとします

同じカテゴリの記事