Next: , Previous: The Kill Ring, Up: Text   [Contents][Index]


31.9 ¥¢¥ó¥É¥¥

¤Û¤È¤ó¤É¤Î¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Î¥Æ¥­¥¹¥È¤ËÂФ¹¤ëÊѹ¹¤ò¥¢¥ó¥É¥¥¡Ê¤â¤È¤ËÌ᤹¡Ë ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤Ù¤Æ¤ÎÊѹ¹¤òµ­Ï¿¤¹¤ë ¥¢¥ó¥É¥¥¥ê¥¹¥È¡Êundo list¡Ë¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ê¥¢¥ó¥É¥¥¥ê¥¹¥È¤Î¤Ê¤¤¥Ð¥Ã¥Õ¥¡¤Ï¡¢ Emacs¤¬¥¢¥ó¥É¥¥¤ÏÍ­ÍѤǤϤʤ¤¤È²¾Äꤹ¤ëÆÃ¼ìÌÜŪ¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£¡Ë ¥Ð¥Ã¥Õ¥¡¤Î¥Æ¥­¥¹¥È¤òÊѹ¹¤¹¤ë¤¹¤Ù¤Æ¤Î´ðËÜ´Ø¿ô¤Ï¡¢ ÊÑ¿ôbuffer-undo-list¤Ë¼ý¤á¤¿¥¢¥ó¥É¥¥¥ê¥¹¥È¤ÎÀèÆ¬¤Ë ¼«Æ°Åª¤ËÍ×ÁǤòÄɲä·¤Þ¤¹¡£

Variable: buffer-undo-list

¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥¢¥ó¥É¥¥¥ê¥¹¥È¤Ç¤¢¤ë¡£ ÃÍt¤Ï¥¢¥ó¥É¥¥¾ðÊó¤Îµ­Ï¿¤ò¶Ø»ß¤¹¤ë¡£

¥¢¥ó¥É¥¥¥ê¥¹¥È¤ÎÍ×ÁǤȤ·¤Æ²Äǽ¤Ê¤â¤Î¤ò¤Ä¤®¤Ë¼¨¤·¤Þ¤¹¡£

position

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢¤Þ¤¨¤Î¥Ý¥¤¥ó¥ÈÃͤòµ­Ï¿¤¹¤ë¡£ ¤³¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤¹¤ë¤È¥Ý¥¤¥ó¥È¤òposition¤Ø°Üư¤¹¤ë¡£ Ä̾ï¤Î¥«¡¼¥½¥ë°Üư¤Ç¤Ï¡¢¤¤¤«¤Ê¤ë¼ïÎà¤Î¥¢¥ó¥É¥¥µ­Ï¿¤âºî¤é¤Ê¤¤¤¬¡¢ ºï½üÁàºî¤Ç¤Ï¥³¥Þ¥ó¥É¼Â¹ÔÁ°¤Î¥Ý¥¤¥ó¥È°ÌÃÖ¤òµ­Ï¿¤¹¤ë¤¿¤á¤Ë¤³¤Î¹àÌܤòºî¤ë¡£

(beg . end)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢ÁÞÆþ¤µ¤ì¤¿¥Æ¥­¥¹¥È¤òºï½ü¤¹¤ëÊýË¡¤òɽ¤¹¡£ ÁÞÆþ¤µ¤ì¤¿¥Æ¥­¥¹¥È¤Ï¥Ð¥Ã¥Õ¥¡¤Îbeg¤«¤éend¤Þ¤Ç¤ÎÈϰϤòÀê¤á¤ë¡£

(text . position)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢ºï½ü¤µ¤ì¤¿¥Æ¥­¥¹¥È¤òºÆÅÙÁÞÆþ¤¹¤ëÊýË¡¤òɽ¤¹¡£ ºï½ü¤µ¤ì¤¿¥Æ¥­¥¹¥È¤½¤Î¤â¤Î¤Ïʸ»úÎótext¤Ç¤¢¤ë¡£ ºÆÅÙÁÞÆþ¤¹¤ë°ÌÃÖ¤Ï(abs position)¤Ç¤¢¤ë¡£

(t high . low)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢Ì¤Êѹ¹¤Î¥Ð¥Ã¥Õ¥¡¤¬Êѹ¹¤µ¤ì¤¿¤³¤È¤òɽ¤¹¡£ high¤Èlow¤Ï2¤Ä¤ÎÀ°¿ô¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¡¢ ¤Þ¤¨¤ËˬÌ䤷¤¿¤È¤­¤äÊݸ¤·¤¿¤È¤­¤ÎˬÌ䤷¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¹¹¿·»þ¹ï¤Î 16¥Ó¥Ã¥È¤òµ­Ï¿¤·¤Æ¤¤¤ë¡£ primitive-undo¤Ï¤³¤ì¤é¤ÎÃͤòÍѤ¤¤Æ¡¢ ¥Ð¥Ã¥Õ¥¡¤òºÆÅṲ̀Êѹ¹¤È°õ¤òÉÕ¤±¤ë¤«¤É¤¦¤«È½Äꤹ¤ë¡£ ¥Õ¥¡¥¤¥ë¤Î¹¹¿·»þ¹ï¤¬¤³¤ì¤Ë°ìÃפ¹¤ë¤È¤­¤Ë¤Î¤ßºÆÅṲ̀Êѹ¹¤È¤¹¤ë¡£

(nil property value beg . end)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢¥Æ¥­¥¹¥È°À­¤ÎÊѹ¹¤òµ­Ï¿¤¹¤ë¡£ Êѹ¹¤ò¥¢¥ó¥É¥¥¤¹¤ë¤Ë¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤¹¤ë¡£

(put-text-property beg end property value)
(marker . adjustment)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢¼þ¤ê¤Î¥Æ¥­¥¹¥È¤¬ºï½ü¤µ¤ì¤¿¤¿¤á¤Ë ¥Þ¡¼¥«marker¤òºÆÇÛÃÖ¤· adjustmentʸ»úʬ°ÌÃÖ¤ò°Üư¤·¤¿¤³¤È¤òµ­Ï¿¤¹¤ë¡£ ¤³¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤¹¤ë¤È¡¢ marker - adjustmentʸ»ú¤Ë°Üư¤¹¤ë¡£

nil

¤³¤ÎÍ×ÁǤ϶­³¦¤Ç¤¢¤ë¡£ 2¤Ä¤Î¶­³¦¤Î¤¢¤¤¤À¤ÎÍ×ÁÇ·²¤òÊѹ¹¥°¥ë¡¼¥×¡Êchange group¡Ë¤È¸Æ¤Ö¡£ Ä̾³ÆÊѹ¹¥°¥ë¡¼¥×¤Ï1¤Ä¤Î¥­¡¼¥Ü¡¼¥É¥³¥Þ¥ó¥É¤ËÂбþ¤·¡¢ ¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï¥°¥ë¡¼¥×Á´ÂΤò1¸Ä¤È¤·¤Æ¥¢¥ó¥É¥¥¤¹¤ë¡£

Function: undo-boundary

¤³¤Î´Ø¿ô¤Ï¡¢¥¢¥ó¥É¥¥¥ê¥¹¥È¤Ë¶­³¦Í×ÁǤòÃÖ¤¯¡£ ¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï¤½¤Î¤è¤¦¤Ê¶­³¦¤ÇÄä»ß¤·¡¢ Ϣ³¤·¤¿¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï¤è¤ê¤Þ¤¨¤Î¶­³¦¤Þ¤Ç¥¢¥ó¥É¥¥¤¹¤ë¡£ ¤³¤Î´Ø¿ô¤Ïnil¤òÊÖ¤¹¡£

¥¨¥Ç¥£¥¿¥³¥Þ¥ó¥É¥ë¡¼¥×¤Ï¡¢ ³Æ¥­¡¼Îó¤ò¼Â¹Ô¤¹¤ë¤Þ¤¨¤Ë¥¢¥ó¥É¥¥¤Î¶­³¦¤ò¼«Æ°Åª¤Ëºî¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢³Æ¥¢¥ó¥É¥¥¤Ï¡¢1¤Ä¤Î¥³¥Þ¥ó¥É¤Î¸ú²Ì¤òÉáÄ̤ϼè¤ê¾Ã¤¹¡£ ¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤ÏÎã³°¤Ç¤¢¤ë¡£ ¥³¥Þ¥ó¥É¥ë¡¼¥×¤Ï¤½¤Î¤è¤¦¤ÊºÇ½é¤Îʸ»ú¤Ë¶­³¦¤òºî¤ê¡¢ ¤Ä¤®¤Î19¸Ä¤ÎϢ³¤¹¤ë¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤Ç¤Ï¶­³¦¤òºî¤é¤º¡¢ 20ÈÖÌܤǶ­³¦¤òºî¤ë¤È¤¤¤¦¤³¤È¤ò¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤¬Â³¤¯¸Â¤ê¹Ô¤¦¡£

Ê̤ΥХåե¡¤Ç¥¢¥ó¥É¥¥²Äǽ¤ÊÊѹ¹¤ò¹Ô¤¦¤¿¤Ó¤Ë ¥Ð¥Ã¥Õ¥¡¤Î¤¹¤Ù¤Æ¤ÎÊѹ¹¤Ç¶­³¦¤òÄɲ乤롣 ¤³¤ì¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤¬Êѹ¹¤·¤¿²Õ½ê¤Ç³Æ¥Ð¥Ã¥Õ¥¡¤Ë¶­³¦¤òºî¤ë¤³¤È¤ò Êݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£

1¤Ä¤Î¥³¥Þ¥ó¥É¤Î¸ú²Ì¤òÊ£¿ô¤Ëʬ¤±¤ë¤¿¤á¤Ë¤³¤Î´Ø¿ô¤òľÀܸƤ֤³¤È¤ÏÍ­ÍѤǤ¢¤ë¡£ ¤¿¤È¤¨¤Ð¡¢query-replace¤Ï³ÆÃÖ´¹¤Î¤¢¤È¤Çundo-boundary¤ò¸Æ¤Ó½Ð¤·¡¢ ¥æ¡¼¥¶¡¼¤¬¸Ä¡¹¤ÎÃÖ´¹¤ò1¤Ä1¤Ä¥¢¥ó¥É¥¥¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£

Function: primitive-undo count list

¤³¤ì¤Ï¡¢¥¢¥ó¥É¥¥¥ê¥¹¥È¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤¹¤ë´ðËÜŪ¤Ê´Ø¿ô¤Ç¤¢¤ë¡£ list¤ÎÀèÆ¬¤Îcount¸Ä¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤·¡¢list¤Î»Ä¤ê¤òÊÖ¤¹¡£ ¤³¤Î´Ø¿ô¤òLisp¤Ç½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¤¬¡¢C¤Ç½ñ¤¤¤¿¤Û¤¦¤¬ÊØÍø¤Ç¤¢¤ë¡£

primitive-undo¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¤È ¥Ð¥Ã¥Õ¥¡¤Î¥¢¥ó¥É¥¥¥ê¥¹¥È¤ËÍ×ÁǤòÄɲ乤롣 ¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï°ìÏ¢¤Î¥¢¥ó¥É¥¥Áàºî¤ò»Ï¤á¤ë¤È¤­¤Ë ¥¢¥ó¥É¥¥¥ê¥¹¥È¤òÊݸ¤·¤Æº®Íð¤òÈò¤±¤ë¡£ ¥¢¥ó¥É¥¥Áàºî¤Ç¤Ï¡¢Êݸ¤·¤Æ¤ª¤¤¤¿Ãͤò»È¤¤¹¹¿·¤¹¤ë¡£ ¥¢¥ó¥É¥¥¤Ë¤è¤Ã¤ÆÄɲ䵤ì¤ë¿·¤¿¤ÊÍ×ÁǤϤ³¤ÎÊݸ¤µ¤ì¤¿ÃͤΰìÉô¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ ¤½¤ì¤é¤Ï¥¢¥ó¥É¥¥¤ò³¹Ô¤·¤Æ¤â´³¾Ä¤·¤Ê¤¤¡£