Emacsをターミナル上でも動くようにした
今までEmacsはずっとGUIで使っていた。理由は以下のものがある。
- 日本語IMEを有効にしていても便利に使える
- TRAMPを使えばリモートのEmacs環境を整えなくても大丈夫
- TRAMPを使えばリモートのファイルも手元のファイルも遜色なく扱える
- backupファイルを必ずローカルに作るようにすれば、保存するときに遅いのを我慢すればいいだけ
- 指定できるキーバインドが多い
しかし以下のデメリットがあり、悩まされていた。
- TRAMPを考慮していないelispが多い
- 特に補完系など
- 自力で対応すればいいのだろうが、自分にそんな能力は無い
- TRAMPが頻繁に固まる
tramp-cleanup-connection
などを使って復帰する方法もあるが、たまにどうしようもなくなる
ということで、ターミナルでもGUIでも両方使えるように.emacs
を変更した。以下に注意すべき点を書いておく。
- キーバインドはターミナルでも使えるものに変更
C-
は埋まっていたので、M-
から始まるものにしたりした
- 環境変数
TERM
をscreen-256color
のような256色表示できるものに変更しておくtmux.conf
にset-option -g default-terminal "screen-256color"
足すか、zshの設定に足すかどちらかをすればよい
- iTerm2の設定でoptionキーをMETAとして使えるようにしておく
- 元々コマンドキーを使っていたが、そういうことはできないので慣れる必要がある
- フォントの指定はターミナル自体に設定する必要がある
- 元々一致させていたので問題なかった
iTerm2でAltキーをMetaキーとして使う | rakkyooの備忘録
キーバインド変更など、それなりに痛みが伴う変更になったが、見た目もほとんど変わらないし、何とかなりそう。ただしターミナルからだと日本語を打つのがつらくなるので、GUIのEmacsは普段のエディタ用(このエントリもGUIのEmacsでほとんど書いた)で、ターミナル上のEmacsは開発専用という感じになりそう。開発用のEmacsはコメントくらいでしか日本語を使わないのでSKKを使おうとも考えたが、普段使っているATOKと比較すると圧倒的に入力速度が落ちるのでそれは辞めた。
またリモートのサーバーの設定をいじるのが面倒な場合や、時間が足りない(ISUCONなど)ようなケースではTRAMPは便利なので今後も普通に使っていくと思う。単純にメンテナンスすべき対象が増えた感じ。
普通にターミナルでも動くところが、最近はやりのエディタにはないEmacsのメリットなので、そのメリットを享受できないのはもったいない。今後はそのメリットを享受していこうと思う。