Previous: Transposition, Up: Text   [Contents][Index]


31.23 Êѹ¹¥Õ¥Ã¥¯

¤³¤ì¤é¤Î¥Õ¥Ã¥¯¤Ë¤è¤ê¡¢¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡ ¡Ê¤½¤ì¤é¤ò¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ë¤·¤Æ¤ª¤±¤ÐÆÃÄê¤Î¥Ð¥Ã¥Õ¥¡¡Ë¤Ë¤ª¤±¤ë ¤¹¤Ù¤Æ¤ÎÊѹ¹¤òÃΤë¤è¤¦¤Ë¤Ç¤­¤Þ¤¹¡£ ¥Æ¥­¥¹¥È¤ÎÆÃÄêÉôʬ¤ÎÊѹ¹¤ò¸¡½Ð¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢ Special Properties¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¤³¤ì¤é¤Î¥Õ¥Ã¥¯¤Ë»È¤¦´Ø¿ô¤Ë¤ª¤¤¤ÆÀµµ¬É½¸½¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢ ¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·Éü¸µ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤µ¤â¤Ê¤¤¤È¡¢¤½¤ì¤é¤ò¸Æ¤Ó½Ð¤¹ÊÔ½¸Áàºî¤È´ñ̯¤Ê´³¾Ä¤ò°ú¤­µ¯¤³¤·¤Þ¤¹¡£

Variable: before-change-functions

¤³¤ÎÊÑ¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¤Þ¤¨¤Ë¸Æ¤Ó½Ð¤¹¤Ù¤­´Ø¿ô¤Î¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¡£ ³Æ´Ø¿ô¤Ï2¤Ä¤Î°ú¿ô¡¢¤Ä¤Þ¤ê¡¢À°¿ô¤Çɽ¤·¤¿Êѹ¹ÂоݤÎÎΰè¤ÎÀèÆ¬¤ÈËöÈø¤ò¼õ¤±¼è¤ë¡£ Êѹ¹ÂоݤΥХåե¡¤Ï¤Ä¤Í¤Ë¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£

Variable: after-change-functions

¤³¤ÎÊÑ¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤·¤¿¤¢¤È¤Ë¸Æ¤Ó½Ð¤¹¤Ù¤­´Ø¿ô¤Î¥ê¥¹¥È¤òÊÝ»ý¤¹¤ë¡£ ³Æ´Ø¿ô¤Ï3¤Ä¤Î°ú¿ô¡¢¤Ä¤Þ¤ê¡¢Êѹ¹¤µ¤ì¤¿¤Ð¤«¤ê¤ÎÎΰè¤ÎÀèÆ¬¤ÈËöÈø¡¢ Êѹ¹Á°¤Ë¸ºß¤·¤Æ¤¤¤¿¥Æ¥­¥¹¥È¤ÎŤµ¤ò¼õ¤±¼è¤ë¡£ 3¤Ä¤Î°ú¿ô¤Ï¤¹¤Ù¤ÆÀ°¿ô¤Ç¤¢¤ë¡£ Êѹ¹ÂоݤΥХåե¡¤Ï¤Ä¤Í¤Ë¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£

¸Å¤¤¥Æ¥­¥¹¥È¤ÎŤµ¤Ï¡¢Êѹ¹Á°¤Î¤½¤Î¥Æ¥­¥¹¥È¤ÎÀèÆ¬¤ÈËöÈø¤Î ¥Ð¥Ã¥Õ¥¡Æâ°ÌÃ֤κ¹¤Ç¤¢¤ë¡£ Êѹ¹ºÑ¤ß¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤Ï¡¢Ã±½ã¤Ë»Ï¤á¤Î2¤Ä¤Î°ú¿ô¤Îº¹¤Ç¤¢¤ë¡£

Macro: combine-after-change-calls body...

¤³¤Î¥Þ¥¯¥í¤ÏÄ̾ï¤É¤ª¤êbody¤ò¼Â¹Ô¤¹¤ë¤¬¡¢ °ìÏ¢¤ÎÊѹ¹¤ËÂФ·¤Æ°ÂÁ´¤È»×¤¨¤ë¤È¤­¤Ë¤Ï¡¢ after-change-functions¤Î´Ø¿ô¤ò°ìÅÙ¤À¤±¸Æ¤Ó½Ð¤¹¡£

¥×¥í¥°¥é¥à¤«¤é¥Ð¥Ã¥Õ¥¡¤ÎƱ¤¸Éôʬ¤Ç¥Æ¥­¥¹¥ÈÊѹ¹¤òÊ£¿ô²ó¹Ô¤¦¾ì¹ç¡¢ ¥×¥í¥°¥é¥à¤ÎÅö³ºÉôʬ¤Î¼þ¤ê¤Ç¥Þ¥¯¥ícombine-after-change-calls¤ò»È¤¦¤È¡¢ ¥Õ¥Ã¥¯after-change-functions¤ò»ÈÍѤ·¤Æ¤ë¤È¤­¤Ë¤Ï ưºî¤¬¤«¤Ê¤ê®¤¯¤Ê¤ê¤¦¤ë¡£ ºÇ½ªÅª¤Ë¥Õ¥Ã¥¯after-change-functions¤¬¸Æ¤Ð¤ì¤ë¤È¡¢ combine-after-change-calls¤ÎËÜÂΤǹԤä¿Êѹ¹¤¹¤Ù¤Æ¤ò´Þ¤à¤è¤¦¤Ê ¥Ð¥Ã¥Õ¥¡Éôʬ¤¬°ú¿ô¤Ë»ØÄꤵ¤ì¤ë¡£

·Ù¹ð¡§ ¥Õ¥©¡¼¥àcombine-after-change-calls¤ÎËÜÂÎ¤ÎÆâ¦¤Ç¤Ï after-change-functions¤Èafter-change-function¤ÎÃͤò Êѹ¹¤·¤Ê¤¤¤³¤È¡£

Ãí°Õ¡§ Êѹ¹¤¬¥Ð¥Ã¥Õ¥¡¤Î¹­¤¯Ê¬»¶¤·¤¿Éôʬ¤Ë¹Ô¤ï¤ì¤ë¤È¤­¤Ë¤â¤³¤ì¤Ïưºî¤¹¤ë¤¬¡¢ ¿ä¾©¤Ç¤­¤Ê¤¤¡£ Èó¸úΨ¤Ê¤Õ¤ë¤Þ¤¤¤ò¤¹¤ë¤è¤¦¤Ê¥Õ¥Ã¥¯´Ø¿ô¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£

Variable: before-change-function

¤³¤ÎÇѤ줿ÊÑ¿ô¤Ï¡¢Ç¤°Õ¤Î¥Ð¥Ã¥Õ¥¡¤ÎÊѹ¹¤ò¹Ô¤¦¤Þ¤¨¤Ë ¸Æ¤Ð¤ì¤ë1¤Ä¤Î´Ø¿ô¤òÊÝ»ý¤¹¤ë ¡Ênil¤Ê¤é¤Ð¤½¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¤Ê¤·¡Ë¡£ before-change-functions¤Î´Ø¿ô¤ÈƱÍͤ˸ƤФì¤ë¡£

Variable: after-change-function

¤³¤ÎÇѤ줿ÊÑ¿ô¤Ï¡¢Ç¤°Õ¤Î¥Ð¥Ã¥Õ¥¡¤ÎÊѹ¹¤ò¹Ô¤Ã¤¿¤¢¤È¤Ë ¸Æ¤Ð¤ì¤ë1¤Ä¤Î´Ø¿ô¤òÊÝ»ý¤¹¤ë ¡Ênil¤Ê¤é¤Ð¤½¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¤Ê¤·¡Ë¡£ after-change-functions¤Î´Ø¿ô¤ÈƱÍͤ˸ƤФì¤ë¡£

¾å¤Î4¤Ä¤ÎÊÑ¿ô¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤¬¼Â¹ÔÃæ¤Ë¤Ï°ì»þŪ¤Ënil¤Ë«Çû¤µ¤ì¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î1¤Ä¤¬¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤·¤Æ¤â¡¢ ¤½¤ÎÊѹ¹¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Þ¤»¤ó¡£ ¥Õ¥Ã¥¯´Ø¿ô¤Ë¤ª¤¤¤Æ¤³¤ì¤é¤Î´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ÊÊѹ¹¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ¥Õ¥Ã¥¯´Ø¿ô¤Ç¤³¤ì¤é¤ÎÊÑ¿ô¤ò¤½¤ì¤é¤ÎÄ̾ï¤ÎÃͤË«Çû¤·Ä¾¤·¤Þ¤¹¡£

¤³¤ÎÊݸîŪ¤Êµ¡¹½¤Î1¤Ä¤ÎÉÔÊØ¤Êµ¢·ë¤Ï¡¢ after-change-functions¤äbefore-change-functions¤Ë¤Ï¡¢ ¤½¤ÎÊÑ¿ô¤ÎÃͤòÊѹ¹¤¹¤ë´Ø¿ô¤ò»ý¤Æ¤Ê¤¤¤³¤È¤Ç¤¹¡£ ¤·¤«¤·¡¢¤³¤ì¤ÏËÜÅö¤ÎÀ©¸Â¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤é¤Î´Ø¿ô¤Ç¼Â¹Ô¤¹¤Ù¤­´Ø¿ô¤Î¥ê¥¹¥È¤òÊѹ¹¤·¤¿¤±¤ì¤Ð¡¢ ñ½ã¤Ë1¤Ä¤ÎÄê¤Þ¤Ã¤¿´Ø¿ô¤ò¥Õ¥Ã¥¯¤ËÄɲä·¡¢ ¤½¤Î´Ø¿ô¤Ç¤Ï¸Æ¤Ó½Ð¤¹¤Ù¤­Ê̤δؿô¤ò»ØÄꤹ¤ëÊ̤ÎÊÑ¿ô¤òÄ´¤Ù¤Þ¤¹¡£ ¤Ä¤®¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

(setq my-own-after-change-functions nil)
(defun indirect-after-change-function (beg end len)
  (let ((list my-own-after-change-functions))
    (while list
      (funcall (car list) beg end len)
      (setq list (cdr list)))))

(add-hooks 'after-change-functions
           'indirect-after-change-function)
Variable: first-change-hook

¤³¤ÎÊÑ¿ô¤Ï¡¢Ì¤Êѹ¹¾õÂ֤ΥХåե¡¤òÊѹ¹¤¹¤ë¤¿¤Ó¤Ë¼Â¹Ô¤µ¤ì¤ë ¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯¤Ç¤¢¤ë¡£