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


21.8 Emacs Lisp¼°¤Îɾ²Á

EmacsÆâ¤Çư¤«¤¹¤Ä¤â¤ê¤ÎLisp¥×¥í¥°¥é¥à¤Ï¡¢emacs-lisp¥â¡¼¥É¤ÇÊÔ½¸¤·¤Þ¤·¤ç¤¦¡£ ¥Õ¥¡¥¤¥ë̾¤¬.el¤Ç½ª¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¤È¡¢ ¼«Æ°Åª¤Ë¤³¤Î¥â¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£ °ìÊý¡¢lisp¥â¡¼¥É¤Ï¡¢Â¾¤ÎLisp¥·¥¹¥Æ¥à¸þ¤±¤ÎLisp¥×¥í¥°¥é¥à¤òÊÔ½¸¤¹¤ë ¤¿¤á¤Î¥â¡¼¥É¤Ç¤¹¡£ ÍÛ¤Ëemacs-lisp¥â¡¼¥É¤Ë°Ü¤ë¤Ë¤Ï¡¢¥³¥Þ¥ó¥ÉM-x emacs-lisp-mode¤ò»È¤¤¤Þ¤¹¡£

EmacsÆâ¤Çư¤¯¥×¥í¥°¥é¥à¤Î¥Æ¥¹¥È¤Ë¤Ï¡¢ Emacs¥Ð¥Ã¥Õ¥¡¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤Î°ìÉô¤òɾ²Á¤¹¤ë¤ÈÊØÍø¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢Lisp¤Î´Ø¿ôÄêµÁ¤Î¥Æ¥­¥¹¥È¤òÊѹ¹¤·¤Æ¤«¤é¤½¤ÎÄêµÁ¤òɾ²Á¤¹¤ë¤È¡¢ ¤½¤ì°Ê¹ß¤Ë¤½¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È»È¤ï¤ì¤ë¤è¤¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ Lisp¼°¤òɾ²Á¤¹¤ë¤ÈÈóÂÐÏÃŪ¤Ê¡Ê¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¤¡Ë´Ø¿ô¤òµ¯Æ°¤Ç¤­¤ë¤Î¤Ç¡¢ ¤É¤ó¤Ê¼ïÎà¤ÎÊÔ½¸ºî¶È¤Ë¤âÊØÍø¤Ç¤¹¡£

M-:

¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç1¤Ä¤ÎLisp¼°¤òÆÉ¤ß¼è¤ê¡¢¤½¤ì¤òɾ²Á¤·¡¢ ¤½¤ÎÃͤò¥¨¥³¡¼Îΰè¤Ëɽ¼¨¤¹¤ë ¡Êeval-expression¡Ë¡£

C-x C-e

¥Ý¥¤¥ó¥È¤ÎľÁ°¤ÎLisp¼°¤òɾ²Á¤·¡¢¤½¤ÎÃͤò¥¨¥³¡¼Îΰè¤Ëɽ¼¨¤¹¤ë ¡Êeval-last-sexp¡Ë¡£

C-M-x

¥Ý¥¤¥ó¥È¤ò´Þ¤à¤«Ä¾¸å¤Ë¤¢¤ë´Ø¿ôÄêµÁ¡Êdefun¡Ë¤òɾ²Á¤·¡¢ ¤½¤ÎÃͤò¥¨¥³¡¼Îΰè¤Ëɽ¼¨¤¹¤ë¡Êeval-defun¡Ë¡£

M-x eval-region

¥ê¡¼¥¸¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤ÎLisp¼°¤òɾ²Á¤¹¤ë¡£

M-x eval-current-buffer

¥Ð¥Ã¥Õ¥¡Æâ¤Î¤¹¤Ù¤Æ¤ÎLisp¼°¤òɾ²Á¤¹¤ë¡£

M-:¡Êeval-expression¡Ë¤Ï¡¢Lisp¼°¤òÂÐÏÃŪ¤Ëɾ²Á¤¹¤ë ¤â¤Ã¤È¤â´ðËÜŪ¤Ê¥³¥Þ¥ó¥É¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Ç¼°¤ò1¤ÄÆÉ¤ß¼è¤ê¤Þ¤¹¤«¤é¡¢ ¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤Ë´Ø·¸¤Ê¤¯¥Ð¥Ã¥Õ¥¡Æâ¤Ç¤É¤ó¤Ê¼°¤Ç¤â¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ ¼°¤¬É¾²Á¤µ¤ì¤¿¤¢¤È¤Ï¡¢ M-:¤òÂǸ°¤·¤¿¤È¤­¤Î¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤¬¡¢¤Õ¤¿¤¿¤Ó¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤Ê¤ê¤Þ¤¹¡£

emacs-lisp¥â¡¼¥É¤Ç¤Ï¡¢¥­¡¼C-M-x¤Ï¥³¥Þ¥ó¥Éeval-defun¤Ë¥Ð¥¤¥ó¥É ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¥Ý¥¤¥ó¥È¤ò´Þ¤à¤«Ä¾¸å¤Ë¤¢¤ë´Ø¿ôÄêµÁ¤ò Lisp¼°¤È¤·¤Æ²òÀϤ·É¾²Á¤·¤Þ¤¹¡£ ¤½¤ÎÃͤϥ¨¥³¡¼Îΰè¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢´Ø¿ôÄêµÁ¤Î¥Æ¥­¥¹¥È¤ÎÊѹ¹¤ò Lisp´Ä¶­¤ËÈ¿±Ç¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£

C-M-x¤Ïdefvar¼°¤òÆÃḚ̂·¤¤¤·¤Þ¤¹¡£ Ä̾ÊÑ¿ô¤Ë¤¹¤Ç¤ËÃͤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ defvar¼°¤òɾ²Á¤·¤Æ¤â²¿¤â¤·¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢C-M-x¤Ï¡¢defvar¼°¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë ½é´üÃͤËÊÑ¿ô¤ÎÃͤòÌᤷ¤Þ¤¹¡£ ¤³¤ÎÆÃÊ̤ʵ¡Ç½¤Ï¡¢Lisp¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤È¤­¤ËÊØÍø¤Ç¤¹¡£

¥³¥Þ¥ó¥ÉC-x C-e¡Êeval-last-sexp¡Ë¤Ï¡¢ ¥Ý¥¤¥ó¥È¤Î¤Þ¤¨¤Ë¤¢¤ëLisp¼°¤òɾ²Á¤· ¤½¤ÎÃͤò¥¨¥³¡¼Îΰè¤Ëɽ¼¨¤·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ïemacs-lisp¥â¡¼¥É¤À¤±¤Ç¤Ê¤¯¡¢ ¤¹¤Ù¤Æ¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Ç»È¤¨¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢defvar¤òÆÃḚ̂·¤¤¤·¤Þ¤»¤ó¡£

C-M-x¡¢C-x C-e¡¢M-:¤Ë¿ô°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢ Ãͤò¥¨¥³¡¼Îΰè¤Ëɽ¼¨¤¹¤ë¤«¤ï¤ê¤Ë¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È°ÌÃÖ¤ËÁÞÆþ¤·¤Þ¤¹¡£ °ú¿ô¤ÎÃͤϴط¸¤¢¤ê¤Þ¤»¤ó¡£

¥Ð¥Ã¥Õ¥¡¤ÇLisp¼°¤òɾ²Á¤¹¤ë¤â¤Ã¤È¤â°ìÈÌŪ¤Ê¥³¥Þ¥ó¥É¤Ïeval-region¤Ç¤¹¡£ M-x eval-region¤Ï¡¢¥ê¡¼¥¸¥ç¥óÆâ¤Î1¤Ä°Ê¾å¤ÎLisp¼°¤ò²òÀϤ·¤Æ¡¢ ¤½¤ì¤é¤ò1¤Ä¤º¤Ä½ç¤Ëɾ²Á¤·¤Þ¤¹¡£ M-x eval-current-buffer¤âƱÍͤǤ¹¤¬¡¢¥Ð¥Ã¥Õ¥¡Á´ÂΤòɾ²Á¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥Æ¥¹¥È½àÈ÷¤¬À°¤Ã¤¿Lisp¥³¡¼¥É¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ò¼è¤ê¹þ¤à¤¦¤Þ¤¤ÊýË¡¤Ç¤¹¡£ ¸Ä¡¹¤Î´Ø¿ô¤Î¥Ð¥°¤òȯ¸«¤·¤Æ½¤Àµ¤·¤¿¤é¡¢ Êѹ¹¤·¤¿´Ø¿ô¤½¤ì¤¾¤ì¤ËC-M-x¤ò»È¤¤¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢Lisp¤Î´Ä¶­¤È¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬°ìÃפ·¤Þ¤¹¡£