Next: Maintaining Undo, Previous: The Kill Ring, Up: Text [Contents][Index]
¤Û¤È¤ó¤É¤Î¥Ð¥Ã¥Õ¥¡¤Ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Î¥Æ¥¥¹¥È¤ËÂФ¹¤ëÊѹ¹¤ò¥¢¥ó¥É¥¥¡Ê¤â¤È¤ËÌ᤹¡Ë
¤Ç¤¤ë¤è¤¦¤Ë¤¹¤Ù¤Æ¤ÎÊѹ¹¤òµÏ¿¤¹¤ë
¥¢¥ó¥É¥¥¥ê¥¹¥È¡Êundo list¡Ë¤¬¤¢¤ê¤Þ¤¹¡£
¡Ê¥¢¥ó¥É¥¥¥ê¥¹¥È¤Î¤Ê¤¤¥Ð¥Ã¥Õ¥¡¤Ï¡¢
Emacs¤¬¥¢¥ó¥É¥¥¤ÏÍÍѤǤϤʤ¤¤È²¾Äꤹ¤ëÆÃ¼ìÌÜŪ¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£¡Ë
¥Ð¥Ã¥Õ¥¡¤Î¥Æ¥¥¹¥È¤òÊѹ¹¤¹¤ë¤¹¤Ù¤Æ¤Î´ðËÜ´Ø¿ô¤Ï¡¢
ÊÑ¿ô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¸Ä¤È¤·¤Æ¥¢¥ó¥É¥¥¤¹¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢¥¢¥ó¥É¥¥¥ê¥¹¥È¤Ë¶³¦Í×ÁǤòÃÖ¤¯¡£
¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï¤½¤Î¤è¤¦¤Ê¶³¦¤ÇÄä»ß¤·¡¢
Ϣ³¤·¤¿¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï¤è¤ê¤Þ¤¨¤Î¶³¦¤Þ¤Ç¥¢¥ó¥É¥¥¤¹¤ë¡£
¤³¤Î´Ø¿ô¤Ïnil
¤òÊÖ¤¹¡£
¥¨¥Ç¥£¥¿¥³¥Þ¥ó¥É¥ë¡¼¥×¤Ï¡¢ ³Æ¥¡¼Îó¤ò¼Â¹Ô¤¹¤ë¤Þ¤¨¤Ë¥¢¥ó¥É¥¥¤Î¶³¦¤ò¼«Æ°Åª¤Ëºî¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢³Æ¥¢¥ó¥É¥¥¤Ï¡¢1¤Ä¤Î¥³¥Þ¥ó¥É¤Î¸ú²Ì¤òÉáÄ̤ϼè¤ê¾Ã¤¹¡£ ¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤ÏÎã³°¤Ç¤¢¤ë¡£ ¥³¥Þ¥ó¥É¥ë¡¼¥×¤Ï¤½¤Î¤è¤¦¤ÊºÇ½é¤Îʸ»ú¤Ë¶³¦¤òºî¤ê¡¢ ¤Ä¤®¤Î19¸Ä¤ÎϢ³¤¹¤ë¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤Ç¤Ï¶³¦¤òºî¤é¤º¡¢ 20ÈÖÌܤǶ³¦¤òºî¤ë¤È¤¤¤¦¤³¤È¤ò¼«¸ÊÁÞÆþ¤ÎÆþÎÏʸ»ú¤¬Â³¤¯¸Â¤ê¹Ô¤¦¡£
Ê̤ΥХåե¡¤Ç¥¢¥ó¥É¥¥²Äǽ¤ÊÊѹ¹¤ò¹Ô¤¦¤¿¤Ó¤Ë ¥Ð¥Ã¥Õ¥¡¤Î¤¹¤Ù¤Æ¤ÎÊѹ¹¤Ç¶³¦¤òÄɲ乤롣 ¤³¤ì¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤¬Êѹ¹¤·¤¿²Õ½ê¤Ç³Æ¥Ð¥Ã¥Õ¥¡¤Ë¶³¦¤òºî¤ë¤³¤È¤ò Êݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
1¤Ä¤Î¥³¥Þ¥ó¥É¤Î¸ú²Ì¤òÊ£¿ô¤Ëʬ¤±¤ë¤¿¤á¤Ë¤³¤Î´Ø¿ô¤òľÀܸƤ֤³¤È¤ÏÍÍѤǤ¢¤ë¡£
¤¿¤È¤¨¤Ð¡¢query-replace
¤Ï³ÆÃÖ´¹¤Î¤¢¤È¤Çundo-boundary
¤ò¸Æ¤Ó½Ð¤·¡¢
¥æ¡¼¥¶¡¼¤¬¸Ä¡¹¤ÎÃÖ´¹¤ò1¤Ä1¤Ä¥¢¥ó¥É¥¥¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¡£
¤³¤ì¤Ï¡¢¥¢¥ó¥É¥¥¥ê¥¹¥È¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤¹¤ë´ðËÜŪ¤Ê´Ø¿ô¤Ç¤¢¤ë¡£ list¤ÎÀèÆ¬¤Îcount¸Ä¤ÎÍ×ÁǤò¥¢¥ó¥É¥¥¤·¡¢list¤Î»Ä¤ê¤òÊÖ¤¹¡£ ¤³¤Î´Ø¿ô¤òLisp¤Ç½ñ¤¯¤³¤È¤â¤Ç¤¤ë¤¬¡¢C¤Ç½ñ¤¤¤¿¤Û¤¦¤¬ÊØÍø¤Ç¤¢¤ë¡£
primitive-undo
¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¤È
¥Ð¥Ã¥Õ¥¡¤Î¥¢¥ó¥É¥¥¥ê¥¹¥È¤ËÍ×ÁǤòÄɲ乤롣
¥¢¥ó¥É¥¥¥³¥Þ¥ó¥É¤Ï°ìÏ¢¤Î¥¢¥ó¥É¥¥Áàºî¤ò»Ï¤á¤ë¤È¤¤Ë
¥¢¥ó¥É¥¥¥ê¥¹¥È¤òÊݸ¤·¤Æº®Íð¤òÈò¤±¤ë¡£
¥¢¥ó¥É¥¥Áàºî¤Ç¤Ï¡¢Êݸ¤·¤Æ¤ª¤¤¤¿Ãͤò»È¤¤¹¹¿·¤¹¤ë¡£
¥¢¥ó¥É¥¥¤Ë¤è¤Ã¤ÆÄɲ䵤ì¤ë¿·¤¿¤ÊÍ×ÁǤϤ³¤ÎÊݸ¤µ¤ì¤¿ÃͤΰìÉô¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢
¤½¤ì¤é¤Ï¥¢¥ó¥É¥¥¤ò³¹Ô¤·¤Æ¤â´³¾Ä¤·¤Ê¤¤¡£