emacs in terminal に移行しようと思ったけど、GUI の emacs に戻った話
イントロ
今まで GUI の emacs を使ってたけど、terminal の中で emacs を開くようにして、暫く使ってみた。
要するに emacs -nw
です。
けど色々難しいことがあって、元に戻ったという話。
苦労したところと、経緯を残します
環境
emacs 24.4
OSX 10.10.4
iterm2 2.1.1
なんで terminal の中で開きたいの?
カッコイイからです!
理由はなんとなく。
やったこと
特定のキーバインドが emacs に渡らない
ターミナル上のEmacsで本来使えない"Ctrlキー+何か"を使う方法 - すぎゃーんメモ を見て解決。
これで C-:
, C-;
, C-y
等よく使うキーバインドを機能させることができた。
コピペができない
emacs の kill-ring
と clipboard
の共有ができてなくて困った。
emacs でコピーした時に、pbcopy
を呼ぶことで、無理やり同期させるような elisp を書いた。
Emacs と Mac のクリップボードを共有する と似たような感じ。
-nw
にした時に同期できてないことに気づいたけど、特に GUI では意識してなかったポイント。
tmux prefix key と emacs のキーバインドが競合する
私は tmux の prefix key として C-q
を使っていたけど、emacs の quoted-insert
と競合する。
悩んだ末 quoted-insert
の prefix を変更した。
emacsclient の起動
# emacs -nw function emacs () { EMACS_CLIENT='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient' EMACS='/Applications/Emacs.app/Contents/MacOS/Emacs' if ! pgrep Emacs; then $EMACS --daemon fi $EMACS_CLIENT -nw -q } function ekill () { pkill Emacs }
この辺りはまだ泥臭くやってます。
emacs が立ち上がってなかったら、 --daemon
付きで起動し、その後 emacsclient を立ち上げる、というスクリプトを使って凌いでいる。
terminal の中で起動してよかった事
太字は特に良かった(悪かった)ところ
- カッコ良くなった
emacsclient
の起動がかなり早くなった- パッと開いて、パッと閉じる事が可能になって気持ちいい
- いい感じに emacs で完結するようになった
- 操作性うp
shell-command
を以前より多用するようになった- だけどまだまだ shell 周りは課題が多い
よくなかったこと
- 設定で無茶をしている
- 特に「ターミナルから特定のキーバインドが渡らない」現象を解決するのに色々苦労した
- この環境を再現するために、iterm2 の設定をいじらないといけなくて微妙な感じがする
- コマンド + TAB で emacs に移れない
- emacs で完結している限りは困らないけど、時々困る(かも)
color-theme
が好みなやつがない- 自分の中でコレ!っていうのが無かった
- GUI の時と、terminal の時で、色合いが結構違う
elscreen-server
が地味に機能してない気がする件- 別の
emacsclient
を立ち上げても tab が共有されてない - 色々なところで emacsclient 立ち上げると頭使うから、こういう使い方をしたくなかった
- 別の
結局どうなったか
GUI に戻りました...
自分は zsh と emacs を両方よく使っていたのと、zsh in emacs
をイメージ通りに使えなかったのが大きかったです。
なので iterm2
(zsh 使う) と emacs
スイッチを コマンド + TAB
で行えないのが辛かった。
これがうまく機能しないと、効率が落ちてしまいます。
けどいつかは使いこなしたいこの環境、またいつか挑戦したいと思います。