Next: , Previous: Executing Lisp, Up: Building   [Contents][Index]


21.7 EmacsÍѤÎLisp¥³¡¼¥É¤Î¥é¥¤¥Ö¥é¥ê

EmacsÊÔ½¸¥³¥Þ¥ó¥É¤ÎLisp¥³¡¼¥É¤Ï¡¢½¬´·Åª¤Ë.el¤Ç½ª¤ë̾Á°¤Î ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤Î³ÈÄ¥»Ò¤Ï¡¢ emacs-lisp¥â¡¼¥É¤ÇÊÔ½¸¤¹¤ë¤è¤¦¤ËEmacs¤Ë»Ø¼¨¤·¤Þ¤¹ ¡Êsee Executing Lisp¡Ë¡£

Emacs Lisp¥³¡¼¥É¤Î¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ M-x load-file¤ò»È¤¤¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç¥Õ¥¡¥¤¥ë̾¤òÆÉ¤ß¼è¤ê¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤òLisp¥³¡¼¥É¤È¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£ ¤¢¤é¤«¤¸¤á¥Õ¥¡¥¤¥ë¤òˬÌ䤷¤Æ¤ª¤¯É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¤¤¤º¤ì¤Ë¤·¤Æ¤â¡¢¤³¤Î¥³¥Þ¥ó¥É¤Ï¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤à¤Î¤Ç¤¢¤Ã¤Æ¡¢ Emacs¥Ð¥Ã¥Õ¥¡¤Î¥Æ¥­¥¹¥È¤òÆÉ¤à¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

Lisp¥³¡¼¥É¤Î¥Õ¥¡¥¤¥ë¤òEmacs Lisp¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¤¤Æ¤ª¤±¤Ð¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤ÏM-x load-library¤Ç¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤«¤é¤Ï¡¢load-library¤ò¸Æ¤ó¤Ç¥í¡¼¥É¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢ ¤è¤ê´ðËÜŪ¤ÊÎà»÷¤Î´Ø¿ô¤Ç;ʬ¤Ê°ú¿ô¤â»ØÄê¤Ç¤­¤ëload¤Ç¥í¡¼¥É¤·¤Þ¤¹¡£

M-x load-library¤¬M-x load-file¤È°Û¤Ê¤ëÅÀ¤Ï¡¢ °ìÏ¢¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ3¤Ä¤Î¥Õ¥¡¥¤¥ë̾¤ò½ç¤ËÄ´¤Ù¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ °ú¿ô¤¬lib¤À¤È¤¹¤ë¤È¡¢3¤Ä¤Î¥Õ¥¡¥¤¥ë̾¤È¤Ï¡¢ lib.elc¡¢lib.el¡¢¤½¤·¤ÆºÇ¸å¤Ëlib¤Ç¤¹¡£ lib.elc¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¢ ¤³¤ì¤Ï½¬´·¤È¤·¤Ælib.el¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤â¤Î¤Ç¤¹¡£ ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¤Ï¥í¡¼¥É¤È¼Â¹Ô¤¬Â®¤¤¤Î¤Ç¡¢ ¤³¤Á¤é¤ò¥í¡¼¥É¤¹¤ë¤Û¤¦¤¬Í­Íø¤Ç¤¹¡£

load-library¤¬lib.elc¤è¤ê¤â¿·¤·¤¤ lib.el¤ò¤ß¤Ä¤±¤ë¤È¡¢·Ù¹ð¤ò½ÐÎϤ·¤Þ¤¹¡£ ¤È¤¤¤¦¤Î¤Ï¡¢.el¥Õ¥¡¥¤¥ë¤òÊѹ¹¸å¤ËºÆ¥³¥ó¥Ñ¥¤¥ë¤·Ëº¤ì¤Æ¤¤¤ë ²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£

load-library¤Î°ú¿ô¤Ï¡¢Ä̾¤½¤ì¼«ÂÎ¤Ç¤Ï Àµ¤·¤¤¥Õ¥¡¥¤¥ë̾¤Ç¤Ê¤¤¤³¤È¤¬Â¿¤¤¤¿¤á¡¢¥Õ¥¡¥¤¥ë̾¤ÎÊä´°¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤â¤Á¤í¤ó¡¢¤³¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¤È¤­¡¢ »ØÄꤹ¤Ù¤­Àµ³Î¤Ê¥Õ¥¡¥¤¥ë̾¤òÉáÄ̤ÏÃΤé¤Ê¤¤¤Ç¤·¤ç¤¦¤¬¡£

M-x load-library¤¬Ãµº÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½çÈ֤ϡ¢ ÊÑ¿ôload-path¤Ç»ØÄꤷ¤Þ¤¹¡£ ¤½¤ÎÃͤϡ¢¥Ç¥£¥ì¥¯¥È¥ê̾¤Îʸ»úÎ󤫤éÀ®¤ë¥ê¥¹¥È¤Ç¤¹¡£ ¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤˤϡ¢Emacs¼«¿È¤ÎLisp¥³¡¼¥É¤ò¼ý¤á¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ ´Þ¤Þ¤ì¤Þ¤¹¡£ ¸Ä¿ÍÍѤÎLisp¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤é¤ò1¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Þ¤È¤á¡¢ ¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤òload-path¤ËÄɲ䷤Ƥ¯¤À¤µ¤¤¡£ ¥ê¥¹¥ÈÆâ¤Înil¤Ï¥«¥ì¥ó¥È¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤·¤Þ¤¹¤¬¡¢ ¥ê¥¹¥È¤Ënil¤ò²Ã¤¨¤ë¤³¤È¤Ï¤¢¤Þ¤ê´«¤á¤é¤ì¤Þ¤»¤ó¡£ ¥ê¥¹¥È¤Ënil¤¬ËÜÅö¤ËɬÍפÀ¤È´¶¤¸¤¿¤È¤­¤Ë¤Ï¡¢ ¤½¤ì¤Ë¤Ä¤¤¤Æ¤ÏM-x load-file¤ò¼Â¹Ô¤¹¤ë¤Î¤Ç¤Ï ¤¤¤±¤Ê¤¤¤À¤í¤¦¤«¤È¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¤Ï¡¢ ¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¼«Æ°Åª¤Ë¥í¡¼¥É¡Êautoload¡Ë¤¹¤ë¤è¤¦¤Ë ÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë¥³¥Þ¥ó¥É¤ò »ØÄꤹ¤ëɬÍפϤʤ¤¤Ç¤·¤ç¤¦¡£ ¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë¤¿¤á¤Ëload¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò1¤Ä »î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤¦¤¹¤ë¤È¡¢¡Ö¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¡×¤È¤¤¤¦ÄêµÁ¤¬ ¥é¥¤¥Ö¥é¥êÆâ¤Î¼ÂºÝ¤ÎÄêµÁ¤ÇÃÖ¤­´¹¤ï¤ê¤Þ¤¹¡£

Emacs Lisp¥³¡¼¥É¤Ï¥Ð¥¤¥È¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢¥í¡¼¥É¤¬Â®¤¯¤Ê¤ê¡¢¥í¡¼¥É¤·¤Æ¤âɬÍפʵ­²±ÍÆÎ̤¬¾¯¤Ê¤¯¤Ê¤ê¡¢ ¼Â¹Ô¤â®¤¯¤Ê¤ê¤Þ¤¹¡£ See ¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë in Emacs Lisp ¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¡£ ½¬´·¤È¤·¤Æ¡¢¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Ï¡¢ ¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Ë‘c’¤òÉÕ¤±¤¿Ì¾Á°¤Î Ê̤Υե¡¥¤¥ë¤ËÆþ¤ê¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢foo.el¤Î¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Ï¡¢foo.elc¤ËÆþ¤ê¤Þ¤¹¡£ ¤³¤ì¤¬¡¢load-library¤Ï¤Þ¤º‘.elc’¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òõ¤¹Íýͳ¤Ç¤¹¡£