乗り換えの動機
ツヨツヨハカーになりたいのと、自分の周りには Vimer が多いので逆張り精神で Emacs を始めました。
決意を固めるため、VS Code は消しました。
Emacs を 1 週間使った感想
- Emacs を使えるとかっこいい
- 好きな見た目、機能のエディタを自分で作れる
- 若干 VS Code の見た目に寄ってしまった
- キーバインドは多いが、必要になったら覚えれば良いし、よく使うキーバインドは意外とすぐ覚えられる
- ホームポジションから手をほぼ動かさずに作業ができる
- Terminal を開かなくても大体何でもできる
- Ctrl キーを押す左手小指が大変
- 見た目はこんな感じになった
環境
macOS 26.0.1
インストールした Emacs
色々調べてみると、macOS では以下の二つが主流そう。
- GNU Emacs
- Emacs Mac Port
どちらも入れてみたが、Emacs Mac Port はウィンドウをクリックしてもフォーカスが当たらなかったりしてうまく動かなかったので、GNU Emacs を選択した。インターネットでは、Emacs Mac Port の方がいい感じという記述を多くみた気がするが、GNU Emacs は特に問題なく快適に利用できている。
Emacs は brew でインストールした。
--caskをつけないと、CLI 版がインストールされてしまうので注意。
$ brew install emacs --cask
Hello Emacs
早速 Emacs を起動した。
Emacs の起動は、Terminal を取られたくないので&をつけてバックグラウンドで起動している。(実は Emacs を使いはじめると Terminal をほぼ使わなくなるので正直どうでもいい)
$ emacs &
Emacs の基本的な操作は、以下の記事を上から順番に読み、実際に操作することで雰囲気は習得できた。偉大な先駆者に感謝。
init.el の作成
init.el は、Emacs の設定を書いていくファイル。以下のディレクトリに作成する。
$ touch ~/.emacs.d/init.el
init.el には、Emacs Lisp という言語を使って設定を書く。まさかこんなところで Lisp デビューするとは思っていなかった。
一番最初に、leafというパッケージを管理、設定できるツールを導入した。
とりあえずエディタの見た目をいい感じにしたかったので、doom-themesとdoom-modelineを入れた。設定は、leafを使って書いている。
(leaf doom-themes
:ensure t
:config
(load-theme 'doom-solarized-light t))
(leaf doom-modeline
:ensure t
:global-minor-mode t)
これだけでも十分いい感じ。
いい感じにするために、必要な設定も少し追加した。
(leaf emacs
:custom
;; 現在位置表示
(column-number-mode . t)
;; 行番号表示
(global-display-line-numbers-mode . t)
;; 最初の挨拶非表示
(inhibit-startup-message . t)
;; 最終行に空行を強制
(require-final-newline . t)
;; 起動時に最後に開いていたファイルを開く
(desktop-save-mode . 1)
:config
;; カーソルの色を変更
(set-cursor-color "#F79428")
;; UTF-8を優先
(prefer-coding-system 'utf-8))
Emacs 上で git も使えるらしい。Magit というパッケージを入れた。
(leaf magit
:ensure t
:bind (("C-x g" . magit-status)))
VS Code で画面左側に出てくるようなツリーが欲しいなと思ったので、Treemacs を入れた。
(leaf treemacs
:ensure t)
Redo, Undo がよくわからなかったので、Undo-treeを導入して誤魔化した。
(leaf undo-tree
:ensure t
:global-minor-mode global-undo-tree-mode
:custom
(undo-tree-auto-save-history . nil))
あとはいくつかコーディングに必要そうなパッケージを導入し、最終系はこんな感じになった。
Global に gitignore を設定
Emacs をやっていると、一時ファイルが大量に作られる。
チーム開発をやっているとプロジェクトの .gitignore に Emacs の一時ファイルを除外する設定を書いてもいいが、自分の環境依存+全部のプロジェクトに書くのがめんどいので Global に gitignore を設定した。
以下のファイルを作成し、通常の .gitignore と同じ要領で除外したいファイルを記述した。他にもあると思うので、引っかかり次第追加していこうと思う。
$ touch ~/.config/git/ignore
*~
\#*\#
.\#*
終わり
VS Code でもよくね?と思うこともたまにあるが、つよつよの気分になれるので Emacs はいいと思います。
風になれる日が来るといいな。
