Next: , Previous: Intro to Buffer-Local, Up: Buffer-Local Variables   [Contents][Index]


10.10.2 ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ÎºîÀ®¤Èºï½ü

¥³¥Þ¥ó¥É: make-local-variable variable

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤Æ¡¢ variable¡Ê¥·¥ó¥Ü¥ë¡Ë¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤òºî¤ë¡£ ¾¤Î¥Ð¥Ã¥Õ¥¡¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£ ÊÖ¤¹ÃͤÏvariable¡£

variable¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃͤϡ¢ variable¤Î°ÊÁ°¤ÈƱ¤¸ÃͤǻϤޤ롣 variable¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢¶õ¤Î¤Þ¤Þ¤Ç¤¢¤ë¡£

;; ¥Ð¥Ã¥Õ¥¡‘b1’¤Ç¤Ï¡¢
(setq foo 5)                ; ¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤Ë±Æ¶Á¤¹¤ë
     ⇒ 5
(make-local-variable 'foo)  ; b1’¤Ë¥í¡¼¥«¥ë
     ⇒ foo
foo                         ; ¤³¤ì¤ÏÃͤò
     ⇒ 5                   ;   ÊѤ¨¤Ê¤¤
(setq foo 6)                ; b1’¤Ç¤ÎÃͤò
     ⇒ 6                   ;   Êѹ¹¤¹¤ë
foo
     ⇒ 6
;; ¥Ð¥Ã¥Õ¥¡‘b2’¤Ç¤Ï¡¢ÃͤÏÊѤï¤Ã¤Æ¤¤¤Ê¤¤
(save-excursion
  (set-buffer "b2")
  foo)
     ⇒ 5

ÊÑ¿ô¤Îlet«Çû¤ÎÆâ¦¤Ç¤½¤ÎÊÑ¿ô¤ò¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤·¤Æ¤â¡¢ ¤½¤Î¥Ð¥Ã¥Õ¥¡¤¬let¤ËÆþ¤ë¤È¤­¤äÈ´¤±¤ë¤È¤­¤Ë ¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¡¢Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£ ¤³¤ì¤Ï¡¢let¤¬¡¢°Û¤Ê¤ë¼ïÎà¤Î«Çû¤ò¶èÊ̤·¤Ê¤¤¤«¤é¤Ç¤¢¤ê¡¢ ¤É¤ÎÊÑ¿ô¤Î«Çû¤òºî¤ë¤«¤À¤±¤òÃΤäƤ¤¤ë¤«¤é¤Ç¤¢¤ë¡£

ÊÑ¿ô¤¬Ã¼Ëö¤Ë¥í¡¼¥«¥ë¤Ê¤È¤­¤Ë¤Ï¡¢¤³¤Î´Ø¿ô¤Ï¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£ ¤½¤Î¤è¤¦¤ÊÊÑ¿ô¤Ï¡¢Æ±»þ¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò»ý¤Æ¤Ê¤¤¡£ See Multiple Displays¡£

Ãí°Õ¡§ ¥Õ¥Ã¥¯ÊÑ¿ô¤ËÂФ·¤Æmake-local-variable¤ò»È¤ï¤Ê¤¤¤³¤È¡£ ¤½¤Î¤«¤ï¤ê¤Ëmake-local-hook¤ò»È¤¦¡£ see Hooks¡£

¥³¥Þ¥ó¥É: make-variable-buffer-local variable

¤³¤Î´Ø¿ô¤Ï¡¢variable¡Ê¥·¥ó¥Ü¥ë¡Ë¤ò ¼«Æ°Åª¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤¹¤ë¤è¤¦¤Ë°õ¤òÉÕ¤±¡¢ ¤³¤ì°Ê¹ß¤Ë¤½¤ÎÊÑ¿ô¤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È¡¢ ¤½¤Î»þÅÀ¤Î¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¥í¡¼¥«¥ë¤Ë¤¹¤ë¡£

¤³¤Îµ¡Ç½¤Î½ÅÍפÊÅÀ¤Ï¡¢ ¡Êlet¤ä¾¤Î«Çû¤òºî¤ë¹½Ê¸¤Ç¡ËÊÑ¿ô¤ò«Çû¤·¤Æ¤â¡¢ ¤½¤ÎÊÑ¿ô¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤òºî¤é¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£ ¡Êset¤äsetq¤Ç¡ËÊÑ¿ô¤òÀßÄꤷ¤Æ½é¤á¤Æ¤½¤Î¤è¤¦¤Ë¤¹¤ë¡£

ÊÖ¤¹ÃͤÏvariable¤Ç¤¢¤ë¡£

·Ù¹ð¡§ ¥æ¡¼¥¶¡¼¤¬°Û¤Ê¤ë¥Ð¥Ã¥Õ¥¡¤Ç¤Ï°Û¤Ê¤Ã¤¿¥«¥¹¥¿¥Þ¥¤¥º¤ò¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤È ¤¤¤¦¤À¤±¤Ç¡¢¥æ¡¼¥¶¡¼¥ª¥×¥·¥ç¥óÊÑ¿ô¤Ëmake-variable-buffer-local¤ò »È¤¦¤Ù¤­¤À¤È²¾Äꤷ¤Ê¤¤¤³¤È¡£ ¥æ¡¼¥¶¡¼¤Ï¡¢É¬Íפʤé¤Ð¡¢¤É¤ó¤ÊÊÑ¿ô¤Ç¤â¥í¡¼¥«¥ë¤Ë¤Ç¤­¤ë¡£ ÁªÂò¤Ï¥æ¡¼¥¶¡¼¤ËǤ¤»¤ë¤Î¤¬¤è¤¤¡£

2¤Ä¤Î¥Ð¥Ã¥Õ¥¡¤¬Æ±¤¸Â«Çû¤ò¶¦Í­¤·¤Ê¤¤¤³¤È¤¬½ÅÍפʾìÌ̤Ǥϡ¢ make-variable-buffer-local¤ò»È¤¦¡£ ¤¿¤È¤¨¤Ð¡¢°Û¤Ê¤ë¥Ð¥Ã¥Õ¥¡¤Ç¤Ï°Û¤Ê¤ëÃͤò»ý¤Ä¤³¤È¤Ë°Í¸¤¹¤ë¤è¤¦¤Ê Lisp¥×¥í¥°¥é¥à¤ÇÆâÉôÌÜŪ¤ËÊÑ¿ô¤ò»È¤¦¤È¤­¤Ë¤Ï¡¢ make-variable-buffer-local¤ò»È¤¦¤Î¤¬ºÇÎɤǤ¢¤ë¡£

Function: local-variable-p variable &optional buffer

¤³¤ì¤Ï¡¢variable¤¬¥Ð¥Ã¥Õ¥¡buffer ¡Ê¥Ç¥Õ¥©¥ë¥È¤Ï¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¡Ë¤Ë¤ª¤¤¤Æ ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ç¤¢¤ì¤Ðt¤òÊÖ¤·¡¢ ¤µ¤â¤Ê¤±¤ì¤Ðnil¤òÊÖ¤¹¡£

Function: buffer-local-variables &optional buffer

¤³¤Î´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡buffer¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ò µ­½Ò¤·¤¿¥ê¥¹¥È¤òÊÖ¤¹¡£ ¡Êbuffer¤ò¾Êά¤¹¤ë¤È¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤ò»È¤¦¡£¡Ë ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤È¤½¤ÎÃͤòÆþ¤ì¤¿Í×ÁǤ«¤éÀ®¤ëÏ¢Áۥꥹ¥È ¡Êsee Association Lists¡Ë¤òÊÖ¤¹¡£ ¤·¤«¤·¡¢buffer¤Ë¤ª¤±¤ëÊÑ¿ô¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤¬¶õ¤Ç¤¢¤ë¤È¡¢ ÊÑ¿ô¤Ï·ë²Ì¤Î¥ê¥¹¥È¤ËľÀܸ½¤ì¤ë¡£

(make-local-variable 'foobar)
(makunbound 'foobar)
(make-local-variable 'bind-me)
(setq bind-me 69)
(setq lcl (buffer-local-variables))
    ;; ¤Þ¤º¡¢¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¤Ç¥í¡¼¥«¥ë¤ÊÁȤ߹þ¤ßÊÑ¿ô
⇒ ((mark-active . nil)
    (buffer-undo-list . nil)
    (mode-name . "Fundamental")
    …
    ;; ³¤¤¤Æ¡¢ÁȤ߹þ¤ß¤Ç¤Ê¤¤¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô 
    ;; ¤³¤ì¤Ï¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ç¡¢¤«¤Ä¡¢¶õ
    foobar
    ;; ¤³¤ì¤Ï¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ç¡¢¤«¤Ä¡¢¶õ¤Ç¤Ï¤Ê¤¤
    (bind-me . 69))

¤³¤Î¥ê¥¹¥È¤Î¥³¥ó¥¹¥»¥ë¤ÎCDR¤Ë¿·¤¿¤ÊÃͤò³ÊǼ¤·¤Æ¤â¡¢ ÊÑ¿ô¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃͤòÊѹ¹¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤Û¤·¤¤¡£

¥³¥Þ¥ó¥É: kill-local-variable variable

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤±¤ëvariable¡Ê¥·¥ó¥Ü¥ë¡Ë¤Î ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò¡Ê¤¢¤ì¤Ð¡Ëºï½ü¤¹¤ë¡£ ¤½¤Î·ë²Ì¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢variable¤Î¥Ç¥Õ¥©¥ë¥È¤Î«Çû¤¬ ¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ ŵ·¿Åª¤Ë¤Ï¡¢variable¤ÎÃͤ¬ÊѤï¤ë¡£ ¤Ê¤¼¤Ê¤é¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢ºï½ü¤·¤¿¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÃÍ¤È¤Ï ÉáÄ̤ϰۤʤ뤫¤é¤Ç¤¢¤ë¡£

¼«Æ°Åª¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤¹¤ë°õ¤¬ÉÕ¤¤¤¿ÊÑ¿ô¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤ò ºï½ü¤¹¤ë¤È¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤ¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£ ¤·¤«¤·¡¢ÊÑ¿ô¤ËºÆÅÙÀßÄꤹ¤ë¤È¡¢¤½¤ì¤ËÂФ¹¤ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ê«Çû¤¬ ºÆÅÙºîÀ®¤µ¤ì¤ë¡£

kill-local-variable¤Ïvariable¤òÊÖ¤¹¡£

¤³¤Î´Ø¿ô¤¬¥³¥Þ¥ó¥É¤Ç¤¢¤ë¤Î¤Ï¡¢ ÂÐÏÃŪ¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤òºî¤ë¤Î¤¬Í­ÍѤʤ褦¤Ë¡¢ ÂÐÏÃŪ¤Ë¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤òºï½ü¤¹¤ë¤Î¤¬Í­ÍѤʾì¹ç¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£

Function: kill-all-local-variables

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤Æ¡¢ ¡Ø¹±µ×Ū¡Ù¤È°õÉÕ¤±¤·¤Æ¤¢¤ëÊÑ¿ô¤ò½ü¤¤¤Æ¡¢ ¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô«Çû¤òºï½ü¤¹¤ë¡£ ¤½¤Î·ë²Ì¡¢¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢¤Û¤È¤ó¤É¤ÎÊÑ¿ô¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤ¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¤³¤Î´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ë°¤¹¤ë¾¤Î¤¢¤ë¼ï¤Î¾ðÊó¤â¥ê¥»¥Ã¥È¤¹¤ë¡£ ¤Ä¤Þ¤ê¡¢¥í¡¼¥«¥ë¥­¡¼¥Þ¥Ã¥×¤Ënil¡¢ ¹½Ê¸¥Æ¡¼¥Ö¥ë¤Ë(standard-syntax-table)¤ÎÃÍ¡¢ Âçʸ»ú¾®Ê¸»ú¥Æ¡¼¥Ö¥ë¤Ë(standard-case-table)¡¢ ά¸ì¥Æ¡¼¥Ö¥ë¤Ëfundamental-mode-abbrev-table¤ÎÃͤòÀßÄꤹ¤ë¡£

¤³¤Î´Ø¿ô¤¬ºÇ½é¤Ë¹Ô¤¦¤³¤È¤Ï¡¢ ¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯change-major-mode-hook¡Ê²¼µ­»²¾È¡Ë¤ò ¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£

³Æ¥á¥¸¥ã¡¼¥â¡¼¥É¥³¥Þ¥ó¥É¤Ï¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤«¤é»Ï¤á¤ë¡£ ¤Ä¤Þ¤ê¡¢´ðËÜ¡Êfundamental¡Ë¥â¡¼¥É¤ËÀÚ¤êÂØ¤¨¡¢ ¤½¤ì°ÊÁ°¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Î¤Û¤È¤ó¤É¤Î¸ú²Ì¤ò¾Ã¤·¤µ¤ë¡£ ¤³¤Î½èÍý¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢¥á¥¸¥ã¡¼¥â¡¼¥É¤ÇÀßÄꤹ¤ëÊÑ¿ô¤Ë¤Ï¡¢ ¹±µ×Ū¤Î°õ¤òÉÕ¤±¤Ê¤¤¤³¤È¡£

kill-all-local-variables¤Ïnil¤òÊÖ¤¹¡£

Variable: change-major-mode-hook

´Ø¿ôkill-all-local-variables¤Ï¡¢ºÇ½é¤Ë¤³¤Î¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯¤ò¼Â¹Ô¤¹¤ë¡£ ¤³¤Î¥Õ¥Ã¥¯¤Ï¥á¥¸¥ã¡¼¥â¡¼¥É¤ËÂФ·¤Æ¡¢ ¥æ¡¼¥¶¡¼¤¬Ê̤Υ᥸¥ã¡¼¥â¡¼¥É¤ËÀÚ¤êÂØ¤¨¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤Ê¤Ë¤«ÆÃÊ̤ʤ³¤È¤ò¹Ô¤¦¾ðÊó¤òÄ󶡤¹¤ë¡£ ºÇÎɤηë²Ì¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ÎÊÑ¿ô¤ò¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤·¤Æ¤ª¤¯¤È ¤½¤ÎÌòÌܤò½ª¤¨¤ë¤ÈÊÑ¿ô¤Ï¾Ã¤¨¤Æ¤·¤Þ¤¤¡¢¤½¤ì°Ê¹ß¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤Ë´³¾Ä¤·¤Ê¤¤¡£ see Hooks¡£

¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ëÊÑ¿ô¤Ï¡¢ ÊÑ¿ô̾¡Ê¥·¥ó¥Ü¥ë¡Ë¤Î°À­permanent-local¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ ¹±µ×Ū¡Êpermanent¡Ë¤Ç¤¹¡£ ¹±µ×Ū¤Ê¥í¡¼¥«¥ëÊÑ¿ô¤Ï¡¢ÊÔ½¸ºî¶È¤Îʸ̮¤Ç¤Ï¤Ê¤¯¡¢ ¤É¤Î¥Õ¥¡¥¤¥ë¤òˬÌäÃæ¤Ç¤¢¤ë¤È¤«¤É¤Î¤è¤¦¤ËÊݸ¤¹¤ë¤È¤«¤Ë´ØÏ¢¤¹¤ë¾ðÊó¤Ë Ŭ¤·¤Æ¤¤¤Þ¤¹¡£


Next: , Previous: Intro to Buffer-Local, Up: Buffer-Local Variables   [Contents][Index]