この世にはEmacsという素晴らしいツールがあります。しかし残念なことにあまり広く知られていません。また使いこなせば大変便利なのですが、使いこなすまでのハードルがそこそこあります。
本記事ではEmacsに興味を持った人がスムーズにEmacsの深い世界に入っていけるよう最初にやるべきことをまとめます。
インストール
インストール方法はいろいろありますので公式サイトをご覧ください。
私はMacを使っておりHomebrewでインストールしています。まずは普通にパッケージマネージャから入れることをおすすめします。Homebrewの中でもいろいろと派生がありますが、一旦は公式にある通り以下のコマンドで入れて特に問題無いかと思います。
brew install --cask emacs
Linuxであれば apt
や dnf
が使えます。Windowsは最近の事情は詳しくありませんが昔はあまり快適に使えなかった気もするので、今だとWSLで動くLinuxでインストールするほうがいいかもしれません。WSLでもLinuxのGUIアプリケーションも動かせるようです。
Controlキーの設定
後述しますがEmacsの大きな特徴の1つとしてControlキーの活用があります。これによってあらゆる操作をキーボード上のホームポジションで行うという神体験が実現されています。そのためEmacsを使う間は、左手の小指でControlキーを押す回数や時間が非常に多くなります。
MacのJISキーボードではAキーの左側はControlキーになっていてEmacsととても相性がいいです。その場合は特に何も気にすること無くそのままお使いください。
一方、MacのUSキーボードや一般的なWindows向けキーボードではControlキーはホームポジションから微妙に押しづらい位置にあります。正直これではEmacsは使いづらくて仕方ないと思います。OSの設定などでAキーの左隣をControlキーとするように設定することを強くおすすめします。
WindowsでCapslockをCtrlにする方法はいろいろあるようで、かつどれが良いかは環境依存のようです。
Control + h の設定
Emacsの特徴の1つとしてカスタマイズ性の高さがあります。今後自分なりにカスタマイズしていくことになるのですが、1つだけ入れておいた方が良い設定があります。おそらく99.9%以上のEmacsユーザーが本質的に同じ設定を入れているはずです(要出典)。いずれ設定することになるので、ここで設定しておきましょう。
内容は Control + h
でカーソルの1つ前の文字を消すというキーバインドの設定です(要はMacのdelete、WidnowsのBackspaceに相当)。後述しますがEmacsは基本的にホームポジションですべてが完結します。文字を消すためだけにdeleteキーまで指を伸ばすのは非常に勿体ないです。また余談ですがLinuxやMacでもこのキーバインドが利用できるので、一貫性を持たせる意味でもとてもおすすめです。
以下を ~/.emacs.d/init.el
に記述します。このファイルはEmacsの設定ファイルであり起動時に自動で読み込まれるものです。今後、設定類は基本的にこのファイルに記述していくことになります。
(define-key key-translation-map [?\C-h] [?\C-?])
起動方法
これはインストール方法にも依存しますし、GUI版を使うかターミナル内で使うかにも依存します。上記の通りのbrewコマンドで入れた場合、ターミナル内で以下のコマンドを打つと起動できます。
emacs
ターミナル版を起動するなら以下を打ちます。
emacs -nw
またはアプリケーションフォルダなどに入っている場合もあります。ご自身の環境でご確認ください。
補足:GUI版かターミナル版か
EmacsにはGUI版とターミナル版の二種類の起動方法があります。どちらも一長一短あるので、好きな方を使えばよいです。私は使い始めてから10年以上ターミナル版を使っていましたが、最近は気まぐれでGUI版を使っています。
GUI版だとウインドウサイズとかフォントとかをいじれますし、マウスポインタを使うこともできます(使うかどうかはおいておいて)。ターミナルの設定との切り分けや相性に惑わされることも減るかもしれません。例えばTrueColorとかキーバインドとか。
逆にターミナル版であれば見た目はターミナル側で制御できるのでEmacsで設定しなくていいというメリットもあります(欧文フォントと日本語フォントの幅の比率とか)。あと私の環境特有かもしれませんが、ターミナル版の方が起動や動作が若干早い気がします。
基本的なキー操作を覚える
Emacsはホームポジションで何でもできるように設計されています。逆に基本的な操作方法を覚えていないと、ファイルを開くこともEmacsを閉じることもできません。細かい便利な操作は徐々に覚えて行けばいいのですが、使い始めるため最低限覚えておいたほうが良いであろうものを記載しておきます。
ここで C-
は 「Controlキーを押しながら」、M-
は「Metaキー(Macであればoption、WindowsであればAlt)を押しながら(またはESCキーを押したあとに)」という意味です。ちなみにESCキーは C-[
で代用できます。
ファイル・バッファ操作
C-x C-f
: ファイルを開くC-x C-s
: 開いているバッファ(ファイル)を保存するC-x b
: バッファリストを表示(開いている他のファイルを表示するのに利用)
ウインドウ操作
C-x 1
: フォーカスしているバッファだけ残して分割されたウインドウを閉じるC-x 2
: ウインドウを縦に分割C-x 3
: ウインドウを横に分割
カーソル移動
C-f
: 右C-b
: 左C-p
: 上C-n
: 下C-a
: 行頭C-e
: 行末
コピー&ペースト
C-@
: 選択範囲開始C-w
: 選択範囲を切り取りM-w
: 選択範囲をコピーC-y
: 切り取りorコピーした内容をペースト
その他
C-g
: キャンセル(困ったらこれを打つ)C-x C-c
: Emacsを終了する
日本語設定
正直、ここはとても難しいです。というか環境によるところが大きいため、一概にこれをやればOKということは言いづらいです。
まずMacの場合はHomebrewで入れればデフォルトで日本語に対応しているはずですので問題ありません。Linuxの場合はすみませんがわかりません。WindowsのWSL上のLinuxの場合、おそらくデフォルトでPowerShell越しにUbuntuまで日本語が入力できるはずです。試しに mkdir "フォルダ"
で日本語名フォルダを作り、ls
で表示して日本語フォルダ名が見えていれば問題無いかと思います。つまりターミナル版のEmacsを使えば、そのまま「全角半角キー」を押すことでターミナル越しにEmacsまで日本語が入力できるかと思います。変換もWindowsのものが使えるのでこの方が都合がいいでしょう。
他ユーザーの設定を参考にする
Emacsはカスタマイズによりその真価を発揮します。逆にデフォルト状態では他のエディタやIDEと比較してどうしても使いにくいと感じるでしょう。またEmacsのパッケージはどんどんと新しいものが出たり、逆に古いものがメンテナンスされなくなったりします(が、Emacsの情報発信は絶対数が少ないため古い情報もよく出てきてしまうのが悩みどころです)。
以下のようなシンプルかつ最新の状況を反映した設定をまずは入れてみることをおすすめします。
最後に
もし記載内容についてわかりにくいところや書いていないところでつまづいたこと、間違っていることなどがあれば、以下のコメントやお問い合わせなどからお気軽にご連絡ください。