M-x shell
) to interact with the operating system. That way you can search through output and edit history commands in a natural way that a mere terminal doesn't allow.But occasionally I've been left kicking the wall after accidentally killing a shell buffer that had lots of work in it that I still needed. It really hurts when you accidentally kill a buffer where you're waiting for a long-running process to finish. To prevent industrial accidents like that, add a guard to
kill-buffer-hook
in your .emacs file:
(add-hook 'kill-buffer-hook
'(lambda()
(and
(string= "Shell" mode-name)
(or
(yes-or-no-p
(format "Kill buffer `%s'? " (buffer-name)))
(error "Aborted")))))
If you really do want to kill the shell buffer, type "yes", and you're done. But it will save you some grief if you just hit
C-x k
in the wrong buffer.What's more common for me is that my eyes are on a file that I want to refresh or replace with
C-x C-v (find-alternate-file)
, but the cursor is in a shell buffer. In that case, emacs will indeed load the alternate file, and you'll be asked "Kill buffer ` **lose**'?" Say no, then you'll have C-x b
to " **lose**" (note the leading space), and rename the shell buffer to "*shell*" or whatever you had previously named it.
No comments:
Post a Comment