¥×¥í¥°¥é¥à¤Î¶É½êŪ¤ÊÉôʬ¤Ç¡Ø°ì»þŪ¤Ë¡Ù¥Ý¥¤¥ó¥È¤ò°Üư¤·¤¿¤ê¡¢
°ì»þŪ¤Ë¥Ð¥Ã¥Õ¥¡¤òÀÚ¤êÂØ¤¨¤é¤ì¤ë¤È¤·¤Ð¤·¤ÐÍÍѤǤ¹¡£
¤³¤ì¤ò¥¨¥¯¥¹¥«¡¼¥¸¥ç¥ó¡Êexcursion¡¢¼þÍ·¡Ë¤È¸Æ¤Ó¡¢
¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àsave-excursion
¤Ç¹Ô¤¤¤Þ¤¹¡£
¤³¤Î¹½Ê¸¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤È¤½¤Î¥Ý¥¤¥ó¥È¤ä¥Þ¡¼¥«¤ÎÃͤòÊݸ¤·¡¢
¥¨¥¯¥¹¥«¡¼¥¸¥ç¥ó¤Î´°Î»¸å¤Ë¤½¤ì¤é¤òÉü¸µ¤·¤Þ¤¹¡£
¥¦¥£¥ó¥É¥¦¤Î¹½À®¤òÊݸ¤·¤¿¤êÉü¸µ¤¹¤ë¥Õ¥©¡¼¥à¤Ï¡¢ Ê̤ΤȤ³¤í¤Ç½Ò¤Ù¤Æ¤¢¤ê¤Þ¤¹ ¡ÊWindow Configurations¤Èsee Frame Configurations¡Ë¡£
¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àsave-excursion
¤Ï¡¢
¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¼±Ê̻ҤȤ½¤Î¥Ý¥¤¥ó¥È¤ä¥Þ¡¼¥«¤ÎÃͤòÊݸ¤·¡¢
forms¤òɾ²Á¤·¡¢ºÇ¸å¤Ë¡¢
¥Ð¥Ã¥Õ¥¡¤ÈÊݸ¤·¤Æ¤ª¤¤¤¿¥Ý¥¤¥ó¥È¤ä¥Þ¡¼¥«¤ÎÃͤòÉü¸µ¤¹¤ë¡£
throw
¤ä¥¨¥é¡¼¤Ë¤è¤ë°Û¾ïæ½Ð¡Êsee Nonlocal Exits¡Ë¤Ç¤¢¤Ã¤Æ¤â¡¢
¤³¤ì¤é¤ÎÊݸ¤·¤¿ÃͤòÉü¸µ¤¹¤ë¡£
¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àsave-excursion
¤Ï¡¢
¥×¥í¥°¥é¥à¤Î°ìÉôʬ¤À¤±¤Ç¥Ð¥Ã¥Õ¥¡¤ä¥Ý¥¤¥ó¥È¤ò°Üư¤·
¥×¥í¥°¥é¥à¤Î¾¤ÎÉôʬ¤Ø¤Î±Æ¶Á¤òËɤ°É¸½àŪ¤ÊÊýË¡¤Ç¤¢¤ë¡£
Emacs¤ÎLisp¥½¡¼¥¹¤Ç¤Ï4000²ó°Ê¾å¤â»È¤ï¤ì¤Æ¤¤¤ë¡£
save-excursion
¤Ï¾¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤ä¥Þ¡¼¥¯¤ÎÃͤÏÊݸ¤·¤Ê¤¤¤Î¤Ç¡¢
¾¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤ÎÊѹ¹¤Ïsave-excursion
¤«¤éÈ´¤±¤Æ¤â»ý³¤¹¤ë¡£
ƱÍͤˡ¢save-excursion
¤Ï¡¢
switch-to-buffer
¤Ê¤É¤Î´Ø¿ô¤ÇÊѹ¹¤µ¤ì¤¿
¥¦¥£¥ó¥É¥¦¤È¥Ð¥Ã¥Õ¥¡¤ÎÂбþ´Ø·¸¤ÏÉü¸µ¤·¤Ê¤¤¡£
¤³¤ì¤é¤ÎÂбþ´Ø·¸¤äÁªÂò¤µ¤ì¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦¤òÉü¸µ¤¹¤ë1¤Ä¤ÎÊýË¡¤Ï¡¢
save-excursion
¤ÎÆâ¦¤Çsave-window-excursion
¤ò
»È¤¦¤³¤È¤Ç¤¢¤ë¡Êsee Window Configurations¡Ë¡£
save-excursion
¤ÎÌá¤êÃͤϡ¢forms¤ÎºÇ¸å¤Î·ë²Ì¤Ç¤¢¤ë¤«¡¢
forms¤òÍ¿¤¨¤Ê¤±¤ì¤Ðnil
¤Ç¤¢¤ë¡£
(save-excursion forms) ≡ (let ((old-buf (current-buffer)) (old-pnt (point-marker))
(old-mark (copy-marker (mark-marker)))) (unwind-protect (progn forms) (set-buffer old-buf)
(goto-char old-pnt) (set-marker (mark-marker) old-mark)))
·Ù¹ð¡§
Êݸ¤µ¤ì¤¿¥Ý¥¤¥ó¥ÈÃͤβսê¤Ë
ÉáÄ̤˥ƥ¥¹¥È¤òÁÞÆþ¤¹¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥Þ¡¼¥«¤òºÆÇÛÃÖ¤¹¤ë¤è¤¦¤Ë
Êݸ¤µ¤ì¤¿¥Ý¥¤¥ó¥ÈÃͤòºÆÇÛÃÖ¤¹¤ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢Êݸ¤µ¤ì¤¿¥Ý¥¤¥ó¥ÈÃͤ¬Éü¸µ¤µ¤ì¤ë¤È¡¢
¥Ý¥¤¥ó¥È¤ÏÁÞÆþ¤µ¤ì¤¿¥Æ¥¥¹¥È¤Î¤Þ¤¨¤ËÉáÄ̤ɤª¤ê¤Ë¤¯¤ë¡£
save-excursion
¤Ï¥Þ¡¼¥«¤Î°ÌÃÖ¤òÊݸ¤·¤Þ¤¹¤¬¡¢
¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë´Ø¿ô¤¬deactivate-mark
¤ò¹Ô¤¦¤³¤È¤òËɤ®¤Þ¤»¤ó¤«¤é¡¢
¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤È¥Þ¡¼¥«¤¬ÉÔ³èÀ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
See The Mark¡£