Next: , Previous: Coordinates and Windows, Up: Windows   [Contents][Index]


27.16 ¥¦¥£¥ó¥É¥¦¹½À®

¥¦¥£¥ó¥É¥¦¹½À®¡Êwindow configuration¡Ë¤Ï¡¢ 1¤Ä¤Î¥Õ¥ì¡¼¥à¤ÎÁ´ÂΤÎÇÛÃÖ¡¢¤Ä¤Þ¤ê¡¢ ¤¹¤Ù¤Æ¤Î¥¦¥£¥ó¥É¥¦¡¢¤½¤ì¤é¤ÎÂ礭¤µ¡¢É½¼¨¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¢ ³Æ¥Ð¥Ã¥Õ¥¡¤Îɽ¼¨°ÌÃÖ¡¢¥Ý¥¤¥ó¥È¤È¥Þ¡¼¥¯¤ÎÃͤòµ­Ï¿¤·¤Þ¤¹¡£ Êݸ¤·¤Æ¤ª¤¤¤¿¥¦¥£¥ó¥É¥¦¹½À®¤òÉü¸µ¤¹¤ì¤Ð¡¢ ¤Þ¤¨¤È¤Þ¤Ã¤¿¤¯Æ±¤¸ÇÛÃÖ¤ËÌ᤻¤Þ¤¹¡£

1¤Ä¤Î¥Õ¥ì¡¼¥à¤Ç¤Ï¤Ê¤¯¤¹¤Ù¤Æ¤Î¥Õ¥ì¡¼¥à¤òµ­Ï¿¤¹¤ë¤Ë¤Ï¡¢ ¥¦¥£¥ó¥É¥¦¹½À®¤Î¤«¤ï¤ê¤Ë¥Õ¥ì¡¼¥à¹½À®¤ò»È¤¤¤Þ¤¹¡£ See Frame Configurations¡£

Function: current-window-configuration

¤³¤Î´Ø¿ô¤Ï¡¢ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Õ¥ì¡¼¥à¤Î¸½ºß¤Î¥¦¥£¥ó¥É¥¦¹½À®¤òɽ¤¹ ¿·¤¿¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡£ ¥¦¥£¥ó¥É¥¦¹½À®¤Ë¤Ï¡¢¥¦¥£¥ó¥É¥¦¤Î¸Ä¿ô¡¢¤½¤ì¤é¤ÎÂ礭¤µ¤È¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¡¢ ¤É¤Î¥¦¥£¥ó¥É¥¦¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦¤Ç¤¢¤ë¤«¡¢ ³Æ¥¦¥£¥ó¥É¥¦¤¬É½¼¨¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¢É½¼¨³«»Ï°ÌÃÖ¡¢ ¥Ý¥¤¥ó¥È¤È¥Þ¡¼¥¯¤Î°ÌÃÖ¤¬´Þ¤Þ¤ì¤ë¡£ window-min-height¡¢window-min-width¡¢ minibuffer-scroll-window¤ÎÃͤâ´Þ¤à¡£ Îã³°¤Ï¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤Ç¤¢¤ê¡¢¤½¤ÎÃͤÏÊݸ¤µ¤ì¤Ê¤¤¡£

Function: set-window-configuration configuration

¤³¤Î´Ø¿ô¤Ï¡¢configuration¤Ç»ØÄꤵ¤ì¤ë ¥¦¥£¥ó¥É¥¦¤È¥Ð¥Ã¥Õ¥¡¤Î¹½À®¤ËÉü¸µ¤¹¤ë¡£ °ú¿ôconfiguration¤Ï¡¢ current-window-configuration¤¬ÊÖ¤·¤¿ÃͤǤ¢¤ë¤³¤È¡£ configuration¤òºîÀ®¤·¤¿¥Õ¥ì¡¼¥à¤Ë¤ª¤¤¤Æ¡¢ ¤½¤Î¥Õ¥ì¡¼¥à¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¤³¤Î¹½À®¤òÉü¸µ¤¹¤ë¡£ set-window-configuration¤Ï¡¢¿·¤¿¤Ê¹½À®¤¬¸Å¤¤¤â¤Î¤È ¼ÂºÝ¤Ë°Û¤Ê¤ë¤Î¤«¤É¤¦¤«¼±Ê̤¹¤ëÊýË¡¤òÃΤé¤Ê¤¤¤¿¤á¡¢ ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ÎÊѹ¹¤È¤Ä¤Í¤Ë¤ß¤Ê¤·¤Æ window-size-change-functions¡Êsee Window Hooks¡Ë¤Î ¼Â¹Ô¤ò°ú¤­µ¯¤³¤¹¡£

configuration¤òÊݸ¤·¤¿¥Õ¥ì¡¼¥à¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ ¤³¤Î´Ø¿ô¤Ï¡¢3¤Ä¤ÎÊÑ¿ô¡¢window-min-height¡¢ window-min-width¡¢minibuffer-scroll-window¤ò Éü¸µ¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£

save-window-excursion¤ÈƱ¤¸¸ú²Ì¤òÆÀ¤ë¤¿¤á¤Î ¤³¤Î´Ø¿ô¤Î»È¤¤Êý¤ò¤Ä¤®¤Ë¼¨¤¹¡£

(let ((config (current-window-configuration)))
  (unwind-protect
      (progn (split-window-vertically nil)
             …)
    (set-window-configuration config)))
Special Form: save-window-excursion forms…

¤³¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥à¤Ï¡¢¥¦¥£¥ó¥É¥¦¹½À®¤òµ­Ï¿¤·¡¢ forms¤ò½ç¤Ëɾ²Á¤·¡¢¤â¤È¤Î¥¦¥£¥ó¥É¥¦¹½À®¤ËÉü¸µ¤¹¤ë¡£ ¥¦¥£¥ó¥É¥¦¹½À®¤Ë¤Ï¡¢¥Ý¥¤¥ó¥È¤ÎÃͤȲĻë¤Ê¥Ð¥Ã¥Õ¥¡¤ÎÉôʬ¤¬´Þ¤Þ¤ì¤ë¡£ ¤Þ¤¿¡¢ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦¤â´Þ¤à¡£ ¤·¤«¤·¡¢¤³¤ì¤Ë¤Ï¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥ÈÃͤϴޤޤì¤Ê¤¤¤¿¤á¡¢ ¥Ý¥¤¥ó¥È°ÌÃÖ¤òÊݸ¤·¤¿¤¤¾ì¹ç¤Ë¤Ïsave-excursion¤â»È¤¦¡£

save-selected-window¤Ç½½Ê¬¤Ê¤È¤­¤Ë¤Ï¡¢¤³¤Î¹½Ê¸¤ò»È¤ï¤Ê¤¤¤³¤È¡£

save-window-excursion¤«¤éÈ´¤±¤ë¤È¡¢ window-size-change-functions¤Î¼Â¹Ô¤ò¤Ä¤Í¤Ë°ú¤­µ¯¤³¤¹¡£ ¡ÊÉü¸µ¤·¤¿¹½À®¤Èforms¤Î½ª¤ê¤Ç¤Î¹½À®¤¬¼ÂºÝ¤Ë°Û¤Ê¤ë¤«¤É¤¦¤«¤ò ¼±Ê̤¹¤ëÊýË¡¤òÃΤé¤Ê¤¤¡£¡Ë

Ìá¤êÃͤϡ¢forms¤ÎºÇ¸å¤Î¥Õ¥©¡¼¥à¤ÎÃͤǤ¢¤ë¡£ Îã¤ò¼¨¤¹¡£

(split-window)
     ⇒ #<window 25 on control.texi>
(setq w (selected-window))
     ⇒ #<window 19 on control.texi>
(save-window-excursion
  (delete-other-windows w)
  (switch-to-buffer "foo")
  'do-something)
     ⇒ do-something
     ;; ¥¹¥¯¥ê¡¼¥ó¤Ï¤³¤³¤Ç¤Õ¤¿¤¿¤Óʬ³ä¤µ¤ì¤ë
Function: window-configuration-p object

¤³¤Î´Ø¿ô¤Ï¡¢object¤¬¥¦¥£¥ó¥É¥¦¹½À®¤Ç¤¢¤ì¤Ðt¤òÊÖ¤¹¡£

Function: compare-window-configurations config1 config2

¤³¤Î´Ø¿ô¤Ï¡¢¥¦¥£¥ó¥É¥¦¤Î¹½Â¤¤ò´ð¤Ë2¤Ä¤Î¥¦¥£¥ó¥É¥¦¹½À®¤òÈæ³Ó¤¹¤ë¡£ ¥Ý¥¤¥ó¥È¤È¥Þ¡¼¥¯¤ÎÃÍ¡¢Êݸ¤µ¤ì¤¿¥¹¥¯¥í¡¼¥ë°ÌÃÖ¤Ï̵»ë¤¹¤ë¤Î¤Ç¡¢ ¤½¤ì¤é¤¬°Û¤Ê¤Ã¤Æ¤¤¤Æ¤ât¤òÊÖ¤¹¡£

´Ø¿ôequal¤Ç¤â2¤Ä¤Î¥¦¥£¥ó¥É¥¦¹½À®¤òÈæ³Ó¤Ç¤­¤ë¤¬¡¢ Êݸ¤µ¤ì¤¿¥Ý¥¤¥ó¥È¤ä¥Þ¡¼¥¯¤¬°ã¤¦¤À¤±¤Ç¤¢¤Ã¤Æ¤â°Û¤Ê¤ëÉôʬ¤¬¤¢¤ë¤È¡¢ Åù¤·¤¯¤Ê¤¤¹½À®¤È¤ß¤Ê¤¹¡£

¥¦¥£¥ó¥É¥¦¹½À®¤ÎÆâÉô¤òÄ´¤Ù¤ë´ðËÜ´Ø¿ô¤Ë¤Ï°ÕÌ£¤¬¤¢¤ë¤Ç¤·¤ç¤¦¤¬¡¢ ¼ÂÁõ¤·¤Æ¤¢¤ê¤Þ¤»¤ó¡£ ¼ÂÁõ¤¹¤ë¤À¤±¤Î²ÁÃͤ¬¤¢¤ë¤Û¤ÉÍ­ÍѤʤΤ«¤Ï¤Ã¤­¤ê¤·¤Ê¤¤¤Î¤Ç¤¹¡£