読者です 読者をやめる 読者になる 読者になる

きくらげ観察日記

好きなことを、適当に。

Emacs24.4以降でmulti-term.elを動かす

Emacs

そろそろシェルもEmacs上で動かそうかなと思い立ったのでmulti-term.elをインストールしてみましたが、実行すると以下のようなエラーが発生して動きませんでした。

Symbol's function definition is void: ad-advised-definition-p

どうやらad-advised-definition-pはEmacs24.4で廃止されたらしいので、自前で定義してやる必要があります。

以下のサイトを参考に、ad-advised-definition-pを.emacs.elで定義してやれば動くようになります。

Emacs24 のインストールと新機能 : 紹介マニア

(if (not (fboundp 'ad-advised-definition-p))
 (defun ad-advised-definition-p (definition)
   "Return non-nil if DEFINITION was generated from advice information."
   (if (or (ad-lambda-p definition)
           (macrop definition)
           (ad-compiled-p definition))
       (let ((docstring (ad-docstring definition)))
         (and (stringp docstring)
              (get-text-property 0 'dynamic-docstring-function docstring))))))