restart-emacs 20170609.905(in MELPA)
Restart emacs from within emacs

概要

M-x restart-emacs は、Emacsを再起動させるコマンドです。

C-uの数によって再起動の方法を制御できます。

M-x restart-emacs
通常のEmacsを立ち上げる
C-u M-x restart-emacs
emacs --debug-init
C-u C-u M-x restart-emacs
emacs -Q
C-u C-u C-u M-x restart-emacs
引数を尋ねる

GUI/-nw両方のケースに対応していて、WindowsとUnixでも場合分けされています。
ただし、Windows上で-nwで立ち上げられたEmacsは再起動できません。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてrestart-emacsを使う方は
以下のコマンドを実行します。

M-x package-install restart-emacs

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name restart-emacs

プログラム自動再起動させるシェルスクリプト

以下の単純なシェルスクリプト retry でプログラムを無限に蘇らせられます。

#!/bin/bash
"$@"
sleep 0.05; exec $0 "$@"

$ retry emacs
すれば終了後Emacsが再び立ち上がります。

Emacsが突然死しても蘇るので、僕は以前からこのアプローチを採っています。

設定 151001064201.restart-emacs.el(以下のコードと同一)

(global-set-key (kbd "C-x C-c") 'restart-emacs)

実行方法

$ wget http://rubikitch.com/f/151001064201.restart-emacs.el
$ emacs -Q -f package-initialize -l 151001064201.restart-emacs.el


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。