Emacsのsuspend/resume
消えるEmacs
普段Windowsを使っていたら、ちょっとしたタイプミスの拍子に「アンドゥ!」と思った瞬間、無意識にCtrl+Zをタイプしてしまうことがある。ウィンドウ化していないコンソール状態のインターフェイスでEmacsを使っていて、Ctrl+Zを押してしまうと突然コマンドラインに戻ってしまう。
これが何の確認もなくウィンドウが消えるので、何が起こったのか分からないと結構焦る。
そして、再びEmacsでそのファイルを開いてみて、保存しようとすると、ファイルがロックされているようなメッセージが表示されて、困惑する。
Emacsは、C-zでsuspendする
これは、Ctrl+Z、つまりC-zコマンドで、ロックし、suspend(休止)してしまった状態になっているのです。
この休止状態のEmacsは次のような手順で再開できます。
ジョブ関連操作
EmacsからC-zで休止し、コマンドラインに戻るとまずそのジョブ番号が表示される。
[1]+ Stopped emacs ~/.bashrc
たとえば上記のような状態なら、ジョブ番号は[1]となる。
つまり、これをもう一度再開すれば先ほどの作業の続きを正しく行える。
ジョブ番号を指定してフォアグラウンドに戻すには次のようなコマンドをタイプする。
fg %1
これで大丈夫だ。
ちなみにサスペンドされているemacsが一つだけの場合は、次のようにタイプしても大丈夫。
%emacs
しかし、複数のemacsがsuspendされていると、OSがどのemacsをフォアグラウンドに持ってくるべきか分からずにエラーを示す。
この場合はjobsコマンドでジョブ番号を確かめた後、前述したジョブ番号で戻すしかない。
[root]> jobs [1]- Stopped emacs ~/.bashrc [2]+ Stopped emacs /etc/passwd [root]> %emacs bash: fg: emacs: ambiguous job spec