fastri-server が起動しているか気にしたくない
この記事は誤りを含んでいます。 id:elim:20080424:force_start_fastri_server を参照ください。
M-x ri してから fastri-server が起動していない事に気付くと悲しいので、起動していなければ起動させるようにしてみました。
初回だけは少し待たされますが、次回以降は(とうぜん)いつもの速度になります :)
(defun force-start-fastri-server () (let* ((progname "fastri-server") (buffname (format "*%s*" progname))) (with-temp-buffer (call-process-shell-command (format "ps ux |sed -e '/%s/!d' -e '/sed/d'" progname) nil t) (goto-char (point-min)) (unless (re-search-forward progname nil t) (with-current-buffer (get-buffer-create buffname) (erase-buffer) (start-process progname buffname progname) (while (not (progn (goto-char (point-min)) (re-search-forward progname nil t))) (sit-for 0.1))))))) (defadvice ri (before ri/force-start-fastri-server activate) (force-start-fastri-server))
fastri-server が起動しきるまで数瞬かかりますので、while の中で fastri-server の出力を確認しています。これをしないと初回の M-x ri が失敗します。単に sit-for させても良いと思います。また、もっと素敵な方法が見付かり次第差し替える予定です :p