Next: , Previous: Group Definitions, Up: Customization   [Contents][Index]


13.3 ¥«¥¹¥¿¥Þ¥¤¥ºÊÑ¿ô¤òÄêµÁ¤¹¤ë

defcustom¤ò»È¤Ã¤Æ¡¢¥æ¡¼¥¶¡¼¤¬ÊÔ½¸²Äǽ¤ÊÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£

Macro: defcustom option default doc [keyword value]...

¥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ê¥æ¡¼¥¶¡¼¥ª¥×¥·¥ç¥óÊÑ¿ô¤È¤·¤Æoption¤òÀë¸À¤¹¤ë¡£ option¤ò¥¯¥©¡¼¥È¤·¤Ê¤¤¤³¤È¡£ °ú¿ôdoc¤ÏÊÑ¿ô¤ÎÀâÌÀʸ»úÎó¤ò»ØÄꤹ¤ë¡£

option¤¬¶õ¤Ç¤¢¤ë¤È¡¢defcustom¤Ïdefault¤Ç½é´ü²½¤¹¤ë¡£ default¤ÏÃͤò·×»»¤¹¤ë¼°¤Ç¤¢¤ë¤³¤È¡£ ¤³¤ì¤ÏÊ£¿ô²óɾ²Á¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢½ñ¤­Êý¤Ë¤ÏÃí°Õ¤¹¤ë¤³¤È¡£

defcustom¤Ç¤Ï¡¢¤Ä¤®¤ÎÄɲå­¡¼¥ï¡¼¥É¤â»È¤¨¤Þ¤¹¡£

:type type

¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¡¼¥¿·¿¤È¤·¤Ætype¤ò»È¤¦¡£ ¤³¤ì¤Ï¡¢Àµ¤·¤¤ÃͤȤ½¤Îɽ¼¨ÊýË¡¤ò»ØÄꤹ¤ë¡£ ¾Ü¤·¤¯¤Ï¡¢see Customization Types¡£

:options list

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë»È¤¨¤ë¹çÍýŪ¤ÊÃͤΥꥹ¥È¤È¤·¤Ælist¤ò»ØÄꤹ¤ë¡£

¤³¤ì¤Ï¡¢¸½»þÅÀ¤Ç¤Ï¡¢·¿¤¬hook¤Î¤È¤­¤À¤±°ÕÌ£¤ò»ý¤Ä¡£ ¤½¤Î¾ì¹ç¡¢list¤ÎÍ×ÁǤϡ¢¥Õ¥Ã¥¯¤ÎÃͤÎÍ×ÁǤȤ·¤Æ»È¤¨¤ë´Ø¿ô¤Ç¤¢¤ë¤³¤È¡£ ¥æ¡¼¥¶¡¼¤Ï¤³¤ì¤é¤Î´Ø¿ô°Ê³°¤â»È¤¨¤ë¤¬¡¢ÊØÍø¤ÊÁªÂò»è¤È¤·¤ÆÄ󼨤¹¤ë¡£

:version version

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÊÑ¿ô¤òºÇ½é¤ËƳÆþ¤·¤¿¤ê¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤·¤¿¤ê¤·¤¿ Emacs¤ÎÈÇversion¤ò»ØÄꤹ¤ë¡£ ÃÍversion¤Ï¡¢Ê¸»úÎó¤Ç¤¢¤ë¤³¤È¡£ ¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Î¤È¤ª¤ê¡£

(defcustom foo-max 34
  "*Maximum number of foo's allowed."
  :type 'integer
  :group 'foo
  :version "20.3")
:set setfunction

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤòÊѹ¹¤¹¤ëÊýË¡¤È¤·¤Æsetfunction¤ò»ØÄꤹ¤ë¡£ ´Ø¿ôsetfunction¤Ï¡¢2¤Ä¤Î°ú¿ô¡¢¤Ä¤Þ¤ê¡¢¥·¥ó¥Ü¥ë¤È¿·¤·¤¤Ãͤò¼è¤ê¡¢ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤò¡ÊLispÊÑ¿ô¤È¤·¤Æ¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤À¤±¤Ç¤Ê¤¯¡Ë ŬÀڤ˹¹¿·¤¹¤ë¤¿¤á¤ËɬÍפʤ³¤È¤ò¹Ô¤¦¤³¤È¡£ setfunction¤Î¥Ç¥Õ¥©¥ë¥È¤Ïset-default¡£

:get getfunction

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤò¼è¤ê½Ð¤¹ÊýË¡¤È¤·¤Ægetfunction¤ò»ØÄꤹ¤ë¡£ ´Ø¿ôgetfunction¤Ï¡¢1¤Ä¤Î°ú¿ô¡¢¤Ä¤Þ¤ê¡¢¥·¥ó¥Ü¥ë¤ò¼è¤ê¡¢ ¤½¤Î¥·¥ó¥Ü¥ë¡Ê¤ÎLispÃͤȤÏɬ¤º¤·¤â¸Â¤é¤Ê¤¤¡Ë¤Î¡Ø¸½ºßÃ͡٤òÊÖ¤¹¤³¤È¡£ ¥Ç¥Õ¥©¥ë¥È¤Ïdefault-value¡£

:initialize function

function¤Ï¡¢defcustom¤òɾ²Á¤·¤¿¤È¤­¤ËÊÑ¿ô¤Î½é´ü²½¤Ë»È¤¦´Ø¿ô¡£ ¤³¤Î´Ø¿ô¤Ï¡¢2¤Ä¤Î°ú¿ô¡¢¤Ä¤Þ¤ê¡¢¥·¥ó¥Ü¥ë¤ÈÃͤò¼è¤ë¤³¤È¡£ ¤³¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤ò°Õ¿Þ¤·¤¿ÄêµÁºÑ¤ß¤Î´Ø¿ô¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£

custom-initialize-set

ÊÑ¿ô¤Î:set´Ø¿ô¤ò»È¤Ã¤ÆÊÑ¿ô¤ò½é´ü²½¤¹¤ë¤¬¡¢ ÊÑ¿ô¤ÎÃͤ¬¶õ¤Ç¤Ê¤¤¤È¤­¤Ë¤ÏºÆ½é´ü²½¤·¤Ê¤¤¡£ ¤³¤ì¤Ï:initialize¤Î¥Ç¥Õ¥©¥ë¥È¡£

custom-initialize-default

custom-initialize-set¤Ë»÷¤Æ¤¤¤ë¤¬¡¢ ÊÑ¿ô¤Î:set´Ø¿ô¤Î¤«¤ï¤ê¤Ë´Ø¿ôset-default¤ò»È¤Ã¤ÆÊÑ¿ô¤òÀßÄꤹ¤ë¡£ ÊÑ¿ô¤Î:set´Ø¿ô¤¬¥Þ¥¤¥Ê¥â¡¼¥É¤ò¥ª¥ó¡¿¥ª¥Õ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ ÉáÄ̤Ϥ³¤ì¤òÁª¤Ö¡£ ¤³¤ì¤òÁª¤Ö¤È¡¢ÊÑ¿ô¤òÄêµÁ¤·¤Æ¤â¥Þ¥¤¥Ê¥â¡¼¥É´Ø¿ô¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤¬¡¢ ÊÑ¿ô¤ò¥«¥¹¥¿¥Þ¥¤¥º¤¹¤ë¤È¥Þ¥¤¥Ê¥â¡¼¥É´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¡£

custom-initialize-reset

ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¤Ë¤Ï¤Ä¤Í¤Ë:set´Ø¿ô¤ò»È¤¦¡£ ÊÑ¿ô¤ÎÃͤ¬¶õ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¡Ê:get¤ÇÆÀ¤é¤ì¤ë¡Ë¸½ºßÃÍ¤Ç :set´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢ÊÑ¿ô¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£

custom-initialize-changed

ÊÑ¿ô¤¬¤¹¤Ç¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿¤ê¥«¥¹¥¿¥Þ¥¤¥º¤·¤Æ¤¢¤ë¤È¤­¤Ë¡¢ ÊÑ¿ô¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë:set´Ø¿ô¤ò»È¤¦¡£ ¤µ¤â¤Ê¤±¤ì¤Ð¡¢set-default¤ò»È¤¦¡£

:require¥ª¥×¥·¥ç¥ó¤Ï¡¢ ÆÃÄê¤Îµ¡Ç½¤ò¥ª¥ó¤Ë¤¹¤ë¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤Ë¤ÏÊØÍø¤Ç¤¹¡£ ¥Ñ¥Ã¥±¡¼¥¸¤¬¥ª¥×¥·¥ç¥óÊÑ¿ô¤ÎÃͤò¸¡ºº¤¹¤ë¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ ¥Ñ¥Ã¥±¡¼¥¸¤ò¥í¡¼¥É¤¹¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤ò:require¤Ç¹Ô¤¨¤ë¤Î¤Ç¤¹¡£ See Common Keywords¡£ ¥é¥¤¥Ö¥é¥êparen.el¤«¤é¤È¤Ã¤¿Îã¤ò¤Ä¤®¤Ë¼¨¤·¤Þ¤¹¡£

(defcustom show-paren-mode nil
  "Toggle Show Paren mode..."
  :set (lambda (symbol value)
         (show-paren-mode (or value 0)))
  :initialize 'custom-initialize-default
  :type 'boolean
  :group 'paren-showing
  :require 'paren)

ÆâÉôŪ¤Ë¤Ï¡¢defcustom¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥ÈÃͤòÍ¿¤¨¤ë¼°¤Ï°À­standard-value¤ò»È¤Ã¤Æµ­Ï¿¤·¡¢ ¥æ¡¼¥¶¡¼¤¬¥«¥¹¥¿¥Þ¥¤¥º¥Ð¥Ã¥Õ¥¡¤ÇÊݸ¤·¤¿ÃÍ¤Ï Â°À­saved-value¤ò»È¤Ã¤Æµ­Ï¿¤·¤Æ¤¤¤Þ¤¹¡£ °À­saved-value¤Ï¼ÂºÝ¤Ë¤Ï¥ê¥¹¥È¤Ç¤¢¤ê¡¢ ¤½¤ÎCAR¤¬ÃͤËɾ²Á¤µ¤ì¤ë¼°¤Ç¤¹¡£