2011/05/11

shell-mode で C-k したとき、サブプロセス を消す



これも、だいぶ前に書いたもの。


M-x shell でコマンドプロンプトに入って、作業後に C-k して "サブプロセスが走っています。" とか言われてムキッとなった人に。


けっこう重宝するので貼っておく。



(defun kill-process-and-buffer ()
(interactive)
(let* ((buf (selected-buffer))
(proc (buffer-process buf)))
(when proc
(kill-process proc)
(sleep-for 0.5))
(kill-buffer buf)))

(add-hook 'ed::*shell-mode-hook*
#'(lambda ()
(define-key ed::*shell-mode-map* #\C-\d 'kill-process-and-buffer) ; unix 風に C-d でも抜けるように
(define-key ed::*shell-mode-map* '(#\C-x #\k) 'kill-process-and-buffer)))


フック先を変えれば shell 以外でも使える。





Related Posts Plugin for WordPress, Blogger...

0 コメント :

コメントを投稿