Next: Creating Buffer-Local, Previous: Buffer-Local Variables, Up: Buffer-Local Variables [Contents][Index]
¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤Ë¤Ï¡¢ÆÃÄê¤Î¥Ð¥Ã¥Õ¥¡¤Ë´ØÏ¢¤·¤¿¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê «Çû¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î«Çû¤Ï¡¢¤½¤Î¥Ð¥Ã¥Õ¥¡¤¬¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¤È¤¤Ë͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤µ¤â¤Ê¤±¤ì¤Ð¤Ê¤ó¤Î¸ú²Ì¤â¤¢¤ê¤Þ¤»¤ó¡£ ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤¬Í¸ú¤Ê¤È¤¤ËÊÑ¿ô¤ËÀßÄꤹ¤ë¤È¡¢ ¿·¤·¤¤ÃͤϤ½¤Î«Çû¤ËÆþ¤ê¡¢Â¾¤Î«Çû¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¡£ ¤Ä¤Þ¤ê¡¢¤½¤ÎÊѹ¹¤Ï¡¢Êѹ¹¤ò¹Ô¤Ã¤¿¥Ð¥Ã¥Õ¥¡¤À¤±¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤Ç¤¹¡£
ÊÑ¿ô¤ÎÄ̾ï¤Î«Çû¡¢¤Ä¤Þ¤ê¡¢ÆÃÄê¤Î¥Ð¥Ã¥Õ¥¡¤Ë´ØÏ¢¤·¤Æ¤¤¤Ê¤¤Â«Çû¤ò ¥Ç¥Õ¥©¥ë¥È¤Î«Çû¡Êdefault binding¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£ ¿¤¯¤Î¾ì¹ç¡¢¤³¤ì¤Ï¥°¥í¡¼¥Ð¥ë«Çû¤Ç¤¹¡£
ÊÑ¿ô¤Ï¡¢¤¢¤ë¥Ð¥Ã¥Õ¥¡·²¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò»ý¤Á¡¢ ¾¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¤½¤Î¤è¤¦¤Ê«Çû¤ò»ý¤¿¤Ê¤¤¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ ÊÑ¿ô¤ËÂФ¹¤ëÆÈ¼«¤Î«Çû¤ò»ý¤¿¤Ê¤¤¥Ð¥Ã¥Õ¥¡¤¹¤Ù¤Æ¤Ç¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤Î«Çû¤ò¶¦Í¤·¤Þ¤¹¡£ ¡Ê¤³¤ì¤Ë¤Ï¡¢¿·¤¿¤ËºîÀ®¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤â´Þ¤à¡£¡Ë ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò»ý¤¿¤Ê¤¤¥Ð¥Ã¥Õ¥¡¤ÇÊÑ¿ô¤ËÀßÄꤹ¤ë¤È¡¢ ¡Ê¾õ¶·¤òÊ£»¨¤Ë¤¹¤ë¥Õ¥ì¡¼¥à¥í¡¼¥«¥ë¤Ê«Çû¤Ï¤Ê¤¤¤È²¾Äꤷ¤Æ¡Ë ¥Ç¥Õ¥©¥ë¥È¤Î«Çû¤ò»È¤¤¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢¿·¤¿¤ÊÃͤϥǥե©¥ë¥È¤Î«Çû¤ò¸«¤ë¥Ð¥Ã¥Õ¥¡¤¹¤Ù¤Æ¤Ç¸«¤¨¤Þ¤¹¡£
¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤Î¤â¤Ã¤È¤â°ìÈÌŪ¤Ê»È¤¤Êý¤Ï¡¢
¥á¥¸¥ã¡¼¥â¡¼¥É¤Ç¥³¥Þ¥ó¥É¤Î¤Õ¤ë¤Þ¤¤¤òÀ©¸æ¤¹¤ëÊÑ¿ô¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢C¥â¡¼¥É¤äLisp¥â¡¼¥É¤Ç¤Ï¡¢ÊÑ¿ôparagraph-start
¤òÀßÄꤷ¤Æ¡¢
¶õ¹Ô¤À¤±¤¬ÃÊÍî¤ò¶èÀÚ¤ë¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£
¤³¤ì¤Ë¤Ï¡¢C¥â¡¼¥É¤äLisp¥â¡¼¥É¤Ë¤Ê¤Ã¤¿¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢
ÊÑ¿ô¤ò¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤·¤Æ¤«¤é¡¢
¤½¤Î¥â¡¼¥ÉÍѤο·¤¿¤ÊÃͤòÊÑ¿ô¤ËÀßÄꤹ¤ë¤Î¤Ç¤¹¡£
See Major Modes¡£
¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤òºî¤ëÉáÄ̤ÎÊýË¡¤Ï¡¢
make-local-variable
¤Ç¤¹¡£
¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤Ïŵ·¿Åª¤Ë¤³¤ì¤ò»È¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤À¤±¤Ë±Æ¶Á¤·¤Þ¤¹¡£
¡Ê¤³¤ì¤«¤éºîÀ®¤¹¤ë¤â¤Î¤â´Þ¤á¤Æ¡Ë¾¤Î¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤Ï¡¢
¤½¤ìÀìÍѤΥХåե¡¥í¡¼¥«¥ë¤Ê«Çû¤òÌÀ¼¨Åª¤ËÍ¿¤¨¤Ê¤¤¸Â¤ê¡¢
¥Ç¥Õ¥©¥ë¥ÈÃͤò¶¦Í¤·Â³¤±¤Þ¤¹¡£
¤è¤ê¶¯ÎϤÊÁàºî¤Ï¡¢make-variable-buffer-local
¤ò¸Æ¤Ó½Ð¤·¤Æ
ÊÑ¿ô¤ò¼«Æ°Åª¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤¹¤ë¤è¤¦¤Ë°õ¤òÉÕ¤±¤ë¤³¤È¤Ç¤¹¡£
¤³¤ì¤Ï¡¢¤³¤ì¤«¤éºîÀ®¤¹¤ë¤â¤Î¤â´Þ¤á¤¿¥Ð¥Ã¥Õ¥¡¤¹¤Ù¤Æ¤Ç¡¢
ÊÑ¿ô¤ò¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤¹¤ë¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤è¤êÀµ³Î¤Ë¤Ï¡¢ÊÑ¿ô¤¬¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¥í¡¼¥«¥ë¤Ç¤Ê¤±¤ì¤Ð¡¢
¼«Æ°Åª¤ËÊÑ¿ô¤ò¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¥í¡¼¥«¥ë¤Ë¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¸ú²Ì¤¬¤¢¤ê¤Þ¤¹¡£
¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤ÏÄ̾ï¤É¤ª¤êÊÑ¿ô¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò¶¦Í¤·¤Æ»Ï¤Þ¤ê¤Þ¤¹¤¬¡¢
ÊÑ¿ô¤ËÀßÄꤹ¤ë¤È¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤òºî¤ê¤Þ¤¹¡£
¿·¤¿¤ÊÃͤϥХåե¡¥í¡¼¥«¥ë¤Ê«Çû¤Ë³ÊǼ¤µ¤ì¡¢¥Ç¥Õ¥©¥ë¥È¤Î«Çû¤ÏÊѹ¹¤·¤Þ¤»¤ó¡£
¤Ä¤Þ¤ê¡¢¤É¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤â¥Ç¥Õ¥©¥ë¥ÈÃͤòsetq
¤Ç¤ÏÊѹ¹¤Ç¤¤Þ¤»¤ó¡£
¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤¹¤ëÍ£°ì¤ÎÊýË¡¤Ï¡¢setq-default
¤ò»È¤¦¤³¤È¤Ç¤¹¡£
·Ù¹ð¡§
Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤ÆÊÑ¿ô¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃͤ¬¤¢¤ë¤È¤¤Ë¡¢
ÊÑ¿ô¤òlet
¤Ç«Çû¤·¤Æ¤«¤é¡¢
Ê̤ΫÇû¤¬Í¸ú¤Ç¤¢¤ëÊ̤ΥХåե¡¤ËÀÚ¤êÂØ¤¨¤Ælet
¤òÈ´¤±¤ë¤È¡¢
Emacs¤ò¤È¤Æ¤âº®Í𤵤»¤ë¤³¤È¤Ë¤Ê¤ë¡£
¤³¤¦¤¹¤ë¤È¡¢¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤È¥Ç¥Õ¥©¥ë¥È¤Î«Çû¤òº®¤¼¹ç¤ï¤»¤Æ¤·¤Þ¤¦¡£
º®Íð¤òÈò¤±¤ë¤¿¤á¤Ë¡¢¤³¤Î¤è¤¦¤ÊÊÑ¿ô¤Î»È¤¤Êý¤ÏÈò¤±¤Æ¤¯¤À¤µ¤¤¡£
Ê̤ΥХåե¡¤ËÀÚ¤êÂØ¤¨¤ë³Æ¥³¡¼¥ÉÉôʬ¤òsave-excursion
¤Ç°Ï¤á¤Ð¡¢
¤³¤Î¤è¤¦¤ÊÌäÂê¤Ï¤¢¤ê¤Þ¤»¤ó¡£
(setq foo 'b) (set-buffer "a") (make-local-variable 'foo)
(setq foo 'a) (let ((foo 'temp)) (set-buffer "b") body…)
foo ⇒ 'a ; ¥Ð¥Ã¥Õ¥¡‘a’¤Î¸Å¤¤¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃͤ¬ ; ¸½ºß¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ
(set-buffer "a")
foo ⇒ 'temp ; ¾Ã¤¨¤Æ¤¤¤ë¤Ù¤¥í¡¼¥«¥ë¤Êlet
¤ÎÃͤ¬
; ¥Ð¥Ã¥Õ¥¡‘a’¤Î¸½ºß¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃÍ
¤·¤«¤·¡¢¤Ä¤®¤Ë¼¨¤¹¤è¤¦¤Ësave-excursion
¤ò»È¤¨¤Ð¡¢¤³¤ÎÌäÂê¤ò²óÈò¤Ç¤¤Þ¤¹¡£
(let ((foo 'temp)) (save-excursion (set-buffer "b") body…))
bodyÆâ¤Ç¤Îfoo
¤Ø¤Î»²¾È¤Ï¡¢
¥Ð¥Ã¥Õ¥¡‘b’¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò»È¤¤¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤Ç¥í¡¼¥«¥ëÊÑ¿ô¤ÎÃͤò»ØÄꤷ¤Æ¤¤¤ë¤È¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤òˬÌ䤷¤¿¤È¤¤Ë¡¢¤½¤ì¤é¤Ï¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃͤˤʤê¤Þ¤¹¡£ See ¥Õ¥¡¥¤¥ë¤Ë¥í¡¼¥«¥ë¤ÊÊÑ¿ô in GNU Emacs ¥Þ¥Ë¥å¥¢¥ë¡£