Next: , Previous: Loading Non-ASCII, Up: Loading   [Contents][Index]


14.4 ¼«Æ°¥í¡¼¥É

¼«Æ°¥í¡¼¥É¡Êautoload¡Ëµ¡Ç½¤Ë¤è¤ê¡¢ ´Ø¿ô¤ä¥Þ¥¯¥í¤òÄêµÁ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ ´Ø¿ô¤ä¥Þ¥¯¥í¤òLisp¤ËÅÐÏ¿¤Ç¤­¤Þ¤¹¡£ ´Ø¿ô¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤¹¤È¡¢ ŬÀڤʥե¡¥¤¥ë¤òÆÉ¤ß¹þ¤ó¤Ç¼ÂºÝ¤ÎÄêµÁ¤È´ØÏ¢¤¹¤ë¾¤Î¥³¡¼¥É¤ò ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤«¤é¡¢¤¹¤Ç¤Ë¥í¡¼¥É¤·¤Æ¤¢¤Ã¤¿¤«¤Î¤è¤¦¤Ë¼ÂºÝ¤ÎÄêµÁ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

´Ø¿ô¤ò¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ëÊýË¡¤Ï2¤Ä¤¢¤ê¤Þ¤¹¡£ autoload¤ò¸Æ¤Ó½Ð¤¹¤«¡¢¤¢¤ë¤¤¤Ï¡¢ ¥½¡¼¥¹Æâ¤Î¼ÂºÝ¤ÎÄêµÁ¤Î¤Þ¤¨¤ËÆÃÊ̤ʡإޥ¸¥Ã¥¯¡Ù¥³¥á¥ó¥È¤ò½ñ¤­¤Þ¤¹¡£ autoload¤Ï¼«Æ°¥í¡¼¥É¤ò¹Ô¤¦Äã¥ì¥Ù¥ë¤Î´ðËÜ´Ø¿ô¤Ç¤¹¡£ Ǥ°Õ¤ÎLisp¥×¥í¥°¥é¥à¤Ç¤¤¤Ä¤Ç¤âautoload¤ò¸Æ¤Ó½Ð¤»¤Þ¤¹¡£ ¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤Ï¡¢Emacs¤Ç»È¤¦¥Ñ¥Ã¥±¡¼¥¸¸þ¤±¤Ë ´Ø¿ô¤ò¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤È¤Æ¤âÊØÍø¤ÊÊýË¡¤Ç¤¹¡£ ¤³¤ì¤é¤Î¥³¥á¥ó¥È¤½¤Î¤â¤Î¤Ï¤Ê¤Ë¤â¤·¤Þ¤»¤ó¤¬¡¢ ¥³¥Þ¥ó¥Éupdate-file-autoloads¤ËÂФ¹¤ë»Ø¿Ë¤È¤·¤ÆÆ¯¤­¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢autoload¤Î¸Æ¤Ó½Ð¤·¤òºîÀ®¤·¡¢ Emacs¹½ÃÛ»þ¤Ë¤½¤ì¤é¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£

Function: autoload function filename &optional docstring interactive type

¤³¤Î´Ø¿ô¤Ï¡¢function¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¡Ê¤ä¥Þ¥¯¥í¡Ë¤ò filename¤«¤é¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¤è¤¦¤ËÄêµÁ¤¹¤ë¡£ ʸ»úÎófilename¤Ï¡¢function¤Î¼ÂºÝ¤ÎÄêµÁ¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë ¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¡£

filename¤Ë¥Ç¥£¥ì¥¯¥È¥ê̾¤äÀÜÈø¼­.el¤ä.elc¤¬¤Ê¤±¤ì¤Ð¡¢ autoload¤Ï¤³¤ì¤é¤ÎÀÜÈø¼­¤Î1¤Ä¤òɬ¤ºÉղä·¡¢ ÀÜÈø¼­¤òÉÕ¤±¤Ê¤¤filename¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ï¥í¡¼¥É¤·¤Ê¤¤¡£

°ú¿ôdocstring¤Ï¡¢´Ø¿ô¤ËÂФ¹¤ëÀâÌÀʸ»úÎó¤Ç¤¢¤ë¡£ Ä̾¤³¤ì¤Ï´Ø¿ôÄêµÁ¤½¤Î¤â¤Î¤ÎÀâÌÀʸ»úÎó¤ÈƱ°ì¤Ç¤¢¤ë¤³¤È¡£ autoload¤Î¸Æ¤Ó½Ð¤·¤Ë¤ª¤¤¤ÆÀâÌÀʸ»úÎó¤ò»ØÄꤷ¤Æ¤ª¤¯¤³¤È¤Ç¡¢ ´Ø¿ô¤Î¼ÂºÝ¤ÎÄêµÁ¤ò¥í¡¼¥É¤·¤Ê¤¯¤Æ¤âÀâÌÀʸ¤ò¸«¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£

interactive¤¬nil°Ê³°¤Ê¤é¤Ð¡¢ function¤òÂÐÏÃŪ¤Ë¸Æ¤Ó½Ð¤»¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ ¤Ä¤Þ¤ê¡¢´Ø¿ô¤Î¼ÂºÝ¤ÎÄêµÁ¤ò¥í¡¼¥É¤·¤Ê¤¯¤Æ¤â M-x¤ÎÊä´°¤¬Æ°ºî¤¹¤ë¤Î¤Ç¤¢¤ë¡£ ´°Á´¤ÊÂÐÏûØÄê¤ò»ØÄꤷ¤Ê¤¤¡£ ¥æ¡¼¥¶¡¼¤¬function¤ò¼ÂºÝ¤Ë¸Æ¤Ó½Ð¤¹¤Þ¤Ç¤ÏɬÍפʤ¯¡¢ ¸Æ¤Ó½Ð¤·»þÅÀ¤Ç¼ÂºÝ¤ÎÄêµÁ¤ò¥í¡¼¥É¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£

ÉáÄ̤δؿô¤ÈƱÍͤˡ¢¥Þ¥¯¥í¤ä¥­¡¼¥Þ¥Ã¥×¤â¼«Æ°Åª¤Ë¥í¡¼¥É¤Ç¤­¤ë¡£ function¤¬¼ÂºÝ¤Ë¤Ï¥Þ¥¯¥í¤Ê¤é¤Ð¡¢type¤Ë¤Ïmacro¤ò»ØÄꤹ¤ë¡£ function¤¬¼ÂºÝ¤Ë¤Ï¥­¡¼¥Þ¥Ã¥×¤Ê¤é¤Ð¡¢ type¤Ë¤Ïkeymap¤ò»ØÄꤹ¤ë¡£ Emacs¤Î¤µ¤Þ¤¶¤Þ¤ÊÉôʬ¤Ç¤Ï¡¢ ¼ÂºÝ¤ÎÄêµÁ¤ò¥í¡¼¥É¤»¤º¤Ë¤³¤Î¾ðÊó¤òÃΤëɬÍפ¬¤¢¤ë¡£

¼«Æ°¥í¡¼¥É¤È»ØÄꤷ¤¿¥­¡¼¥Þ¥Ã¥×¤Ï¡¢ ¥×¥ì¥Õ¥£¥Ã¥¯¥¹¥­¡¼¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤¬¥·¥ó¥Ü¥ëfunction¤Ç¤¢¤ë¤È¤­¤Ë¡¢ ¥­¡¼¤òõ¤¹²áÄø¤Ç¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¡£ ¥­¡¼¥Þ¥Ã¥×¤Î¤³¤ì°Ê³°¤Î»²¾ÈÊýË¡¤Ç¤Ï¡¢¼«Æ°Åª¤Ë¥í¡¼¥É¤·¤Ê¤¤¡£ ÆÃ¤Ë¡¢ÊÑ¿ô̾¤¬¥·¥ó¥Ü¥ëfunction¤ÈƱ¤¸¤Ç¤¢¤Ã¤Æ¤â¡¢ Lisp¥×¥í¥°¥é¥à¤ÇÊÑ¿ô¤ÎÃͤ«¤é¥­¡¼¥Þ¥Ã¥×¤ò¼èÆÀ¤·¤Æ define-key¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤Ë¤Ï¡¢¼«Æ°Åª¤Ë¥í¡¼¥É¤·¤Ê¤¤¡£

function¤¬¼«Æ°¥í¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¤ ¶õ¤Ç¤Ê¤¤´Ø¿ôÄêµÁ¤òÍ­¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ autoload¤Ï¤Ê¤Ë¤â¤»¤º¤Ënil¤òÊÖ¤¹¡£ function¤Î´Ø¿ô¥»¥ë¤¬¶õ¤Ç¤¢¤Ã¤¿¤ê¡¢ ¤¹¤Ç¤Ë¼«Æ°¥í¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ ¤Ä¤®¤Î¤è¤¦¤Ê¼«Æ°¥í¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ´Ø¿ô¥»¥ë¤òÄêµÁ¤¹¤ë¡£

(autoload filename docstring interactive type)

¤¿¤È¤¨¤Ð¤Ä¤®¤Î¤È¤ª¤ê¡£

(symbol-function 'run-prolog)
     ⇒ (autoload "prolog" 169681 t nil)

¤³¤Î¾ì¹ç¡¢"prolog"¤Ï¥í¡¼¥É¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ê¡¢ 169681¤Ï¥Õ¥¡¥¤¥ëemacs/etc/DOC-version ¡Êsee Documentation Basics¡ËÆâ¤ÎÀâÌÀʸ»úÎó¤ò»Ø¤¹¡£ t¤Ï´Ø¿ô¤¬ÂÐÏÃŪ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¡¢ nil¤Ï¥Þ¥¯¥í¤Ç¤â¥­¡¼¥Þ¥Ã¥×¤Ç¤â¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£

¼«Æ°¥í¡¼¥ÉÂоݤΥե¡¥¤¥ë¤Ç¤Ï¡¢Ä̾¾¤ÎÄêµÁ¤ä Ê£¿ô¤Îµ¡Ç½¤òÄ󶡤·¤¿¤êɬÍפȤ·¤¿¤ê¤·¤Þ¤¹¡£ ¡Ê¤½¤ÎÆâÍÆ¤Îɾ²ÁÃæ¤Î¥¨¥é¡¼¤Ê¤É¤Ç¡Ë¥Õ¥¡¥¤¥ë¤ò´°Á´¤Ë¥í¡¼¥É¤Ç¤­¤Ê¤¤¤È¡¢ ¥í¡¼¥ÉÃæ¤Ë¹Ô¤Ã¤¿´Ø¿ôÄêµÁ¤äprovide¤Î¸Æ¤Ó½Ð¤·¤ò¤â¤È¤ËÌᤷ¤Þ¤¹¡£ ¤½¤Î¥Õ¥¡¥¤¥ë¤«¤é¼«Æ°¥í¡¼¥É¤¹¤ëǤ°Õ¤Î´Ø¿ô¤ò¤Ä¤®¤Ë¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿¤È¤­¤Ë¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤òºÆÅÙ¥í¡¼¥É¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¹¡£ ¤³¤¦¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢ ¼«Æ°¥í¡¼¥É¤ò¥¢¥Ü¡¼¥È¤·¤¿¥Õ¥¡¥¤¥ë¤Ç´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤â¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Î¤¦¤·¤í¤ÎÉôʬ¤ÇÄêµÁ¤µ¤ì¤ë ¤½¤Î´Ø¿ô¤ËɬÍפʥµ¥Ö¥ë¡¼¥Æ¥£¥ó¤¬É¬¤º¤·¤â¥í¡¼¥É¤µ¤ì¤Ê¤¤¤¿¤á¤Ë ¤½¤Î´Ø¿ô¤¬Æ°ºî¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£

¼«Æ°¥í¡¼¥ÉÂоݤΥե¡¥¤¥ë¤ÇɬÍפÊLisp´Ø¿ô¤ä¥Þ¥¯¥í¤ÎÄêµÁ¤Ë¼ºÇÔ¤¹¤ë¤È¡¢ "Autoloading failed to define function function-name"¤ò ȼ¤Ã¤¿¥¨¥é¡¼¤òÄÌÃΤ·¤Þ¤¹¡£

¼«Æ°¥í¡¼¥É¤ò»ØÄꤹ¤ë¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤Ï¡¢ ‘;;;###autoload’¤À¤±¤ò½ñ¤¤¤¿¹Ô¤Ç¤¢¤ê¡¢ ¼«Æ°¥í¡¼¥ÉÂоݤΥ½¡¼¥¹¥Õ¥¡¥¤¥ë¾å¤Ç¼ÂºÝ¤Î´Ø¿ôÄêµÁ¤ÎľÁ°¤ËɬÍפǤ¹¡£ ¥³¥Þ¥ó¥ÉM-x update-file-autoloads¤Ï¡¢ Âбþ¤¹¤ëautoload¸Æ¤Ó½Ð¤·¤òloaddefs.el¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ Emacs¹½ÃÛ»þ¤Ë¤Ïloaddefs.el¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ç¡¢ autoload¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£ M-x update-directory-autoloads¤Ï¤â¤Ã¤È¶¯ÎϤǡ¢ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¼«Æ°¥í¡¼¥É¾ðÊó¤ò¹¹¿·¤·¤Þ¤¹¡£

Ʊ¤¸¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤Ï¡¢Ç¤°Õ¤Î¼ïÎà¤Î¥Õ¥©¡¼¥à¤òloaddefs.el¤Ë ¥³¥Ô¡¼¤Ç¤­¤Þ¤¹¡£ ¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤Ë³¤¯¥Õ¥©¡¼¥à¤¬´Ø¿ôÄêµÁ¤Ç¤Ê¤¤¾ì¹ç¡¢ ¤½¤Î¥Õ¥©¡¼¥à¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤·¤Þ¤¹¡£ ¹½ÃÛ»þ¤Ë¤Ï¥Õ¥©¡¼¥à¤ò¼Â¹Ô¤·¤Æ¤â¡¢ ¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É»þ¤Ë¤Ï¤½¤Î¥Õ¥©¡¼¥à¤ò¼Â¹Ô¤·¤Ê¤¤¤è¤¦¤Ë ¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤½¤¦¤¹¤ë¤Ë¤Ï¡¢¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤ÈƱ¤¸¹Ô¤Ë¤½¤Î¥Õ¥©¡¼¥à¤ò½ñ¤­¤Þ¤¹¡£ ¤¹¤ë¤È¤½¤ì¤Ï¥³¥á¥ó¥È¤Ê¤Î¤Ç¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¤È¤­¤Ë¤Ï¤Ê¤Ë¤â¤·¤Þ¤»¤ó¡£ °ìÊý¡¢M-x update-file-autoloads¤Ï¤½¤Î¥Õ¥©¡¼¥à¤òloaddefs.el¤Ë ¥³¥Ô¡¼¤¹¤ë¤Î¤Ç¡¢Emacs¹½ÃÛ»þ¤Ë¤Ï¼Â¹Ô¤µ¤ì¤ë¤Î¤Ç¤¹¡£

¤Ä¤®¤ÎÎã¤Ï¡¢¥Þ¥¸¥Ã¥¯¥³¥á¥ó¥È¤ò»È¤Ã¤Ædoctor¤ò¼«Æ°¥í¡¼¥É¤¹¤ëÊýË¡¤Ç¤¹¡£

;;;###autoload
(defun doctor ()
  "Switch to *doctor* buffer and start giving psychotherapy."
  (interactive)
  (switch-to-buffer "*doctor*")
  (doctor-mode))

¤³¤¦¤¹¤ë¤È¡¢loaddefs.el¤Ç¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

(autoload 'doctor "doctor"
  "\
Switch to *doctor* buffer and start giving psychotherapy."
  t)

¥À¥Ö¥ë¥¯¥©¡¼¥È¤Îľ¸å¤Ë¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ä²þ¹Ô¤ò½ñ¤¯´·½¬¤Ï¡¢ loaddefs.el¤Ê¤É¤Î ¤¢¤é¤«¤¸¤á¥í¡¼¥É¤¹¤ëLisp¥Õ¥¡¥¤¥ë¤ÎÃæ¤À¤±¤Ç»È¤¦¤â¤Î¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢make-docfile¤ËÂФ·¤Æ¡¢ ÀâÌÀʸ»úÎó¤òetc/DOC¥Õ¥¡¥¤¥ë¤Ë½ñ¤¯¤è¤¦¤Ë»Ø¼¨¤·¤Þ¤¹¡£ See Building Emacs¡£