LoginSignup
12
12

More than 5 years have passed since last update.

Emacs で M-x すらままならなくなった場合の対処

Posted at

:full_moon_with_face: でもできれば強制終了してくないですよね?

M-x package-install して
マイナーモードを on/off したり
ごちゃごちゃイジっていると
たまに抜き差しならない状況に陥ります :bomb:

多分 advice が変な状態になって
ミニバッファで Enter 押せないとか。

でも、できれば kill -9 とか、プロセスの強制終了はしたくないですよね?
auto-save-buffers とか使っている人は、
あんまり気にしないかもしれないですけど。

:snowman: とりあえず無難に終了させたい!!

端末から

$ emacsclient -e '(save-buffers-kill-emacs)'

とかやればいいかなと思います。

:cop: やってみたけど、途中で バッファ保存するか? とか聞かれる

回答が全部 yes と分かっているなら

$ emacsclient -e "(require 'cl)"
$ emacsclient -e '(flet ((yes-or-no-p (x) t)
       (y-or-n-p (x) t))
  (save-buffers-kill-emacs))'

みたいな感じでいいかなと思います。

:skull: インタプリタとかプロセスを殺したい!!

大体一緒ですがkill-buffer の引数の
バッファの名前は適当に変えて

$ emacsclient -e '(flet ((yes-or-no-p (x) t)
       (y-or-n-p (x) t))
  (kill-buffer "*cider-repl localhost*"))'

みたいな感じでいいかなと思います。

:moyai: ハイハイ分かったけど、端末から入力とかメンドい!!

ですよねっ
ですよねぇ
分かります

普段 paredit とか使っていると、
その反動はなおさらだと思います。
そんなときは

$ emacsclient -e '(switch-to-buffer "*scratch*")'

です。

あとは *scratch* でなんでも出来るかなと思います。
ディレクトリ移動なら

(dired "~/.emacs.d/")

とか書いて、C-x C-e とかすればいいかなと思います。

文字の入力が出来ない場合は、
emacsclient でがんばる :muscle: しかないですけど

:rocket: まとめ

以上、自分の emacs 操作できなくなったら
メモが見られないので、ココに外部記憶してみました。

もっといい方法があればコメント頂けると幸いです :dancers:

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12