Previous: Killing Emacs, Up: Getting Out   [Contents][Index]


37.2.2 Emacs¤ÎµÙ»ß

Emacs¤òµÙ»ß¤¹¤ë¤È¤Ï¡¢Emacs¤ò°ì»þŪ¤ËÄä»ß¤·¡¢ ÉáÄ̤ϥ·¥§¥ë¤Ç¤¢¤ë¿Æ¥×¥í¥»¥¹¤ËÀ©¸æ¤òÌ᤹¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢¤¢¤È¤ÇƱ¤¸Emacs¥×¥í¥»¥¹¤Ç¡¢¤Ä¤Þ¤ê¡¢Æ±¤¸¥Ð¥Ã¥Õ¥¡·²¡¢ Ʊ¤¸¥­¥ë¥ê¥ó¥°¡¢Æ±¤¸¥¢¥ó¥É¥¥ÍúÎò¤Ê¤É¤ÇÊÔ½¸¤òºÆ³«¤Ç¤­¤Þ¤¹¡£ Emacs¤òºÆ³«¤¹¤ë¤Ë¤Ï¡¢¿Æ¥·¥§¥ë¤Ë¤ª¤¤¤Æ ¤Û¤È¤ó¤É¤Î¾ì¹çfg¤Ê¤É¤ÎŬÀڤʥ³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£

¥¸¥ç¥Ö¤ÎµÙ»ß¤ò°·¤¨¤Ê¤¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤â¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¡ØµÙ»ß¡Ù¤ÏEmacs¤Î¥µ¥Ö¥×¥í¥»¥¹¤È¤·¤Æ °ì»þŪ¤Ë¿·¤¿¤Ê¥·¥§¥ë¤ò¼ÂºÝ¤Ë¤ÏºîÀ®¤·¤Þ¤¹¡£ ¤½¤Î¥·¥§¥ë¤ò½ªÎ»¤¹¤ë¤ÈEmacs¤ËÌá¤ê¤Þ¤¹¡£

¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ Emacs¥¸¥ç¥Ö¤òºÆ³«¤¹¤ë¿Æ¥×¥í¥»¥¹¤¬¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤·¡¢ Ê̤Υ¦¥£¥ó¥É¥¦¤Ø°Üư¤¹¤ì¤ÐÊ̤Υ¸¥ç¥Ö¤ØÆþÎϤǤ­¤Þ¤¹¤«¤é¡¢ Emacs¤ÎµÙ»ß¤ÏÍ­ÍѤǤϤ¢¤ê¤Þ¤»¤ó¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢Emacs¤¬¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ µÙ»ß¤Ç¤­¤Þ¤»¤ó¡£

Function: suspend-emacs string

¤³¤Î´Ø¿ô¤Ï¡¢Emacs¤òµÙ»ß¤·¡¢¿Æ¥×¥í¥»¥¹¤ØÀ©¸æ¤òÌ᤹¡£ ¿Æ¥×¥í¥»¥¹¤¬Emacs¤òºÆ³«¤·¤¿¾ì¹ç¤Ë¤Î¤ß¡¢ suspend-emacs¤ÏLispÆâ¤Î¸Æ¤Ó½Ð¤·Â¦¤Ønil¤òÊÖ¤¹¡£

string¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ Emacs¤Î¿Æ¥·¥§¥ë¤¬Ã¼ËöÆþÎϤȤ·¤ÆÆÉ¤á¤ë¤è¤¦¤Ë¤½¤Îʸ»ú·²¤òÁ÷¤ë¡£ ¿Æ¥·¥§¥ë¤Ïstring¤Îʸ»ú·²¤òɽ¼¨¤»¤º¡¢ ¤½¤Î·ë²Ì¤Î¤ß¤¬¸½¤ì¤ë¡£

µÙ»ß¤¹¤ë¤Þ¤¨¤Ë¡¢suspend-emacs¤Ï ¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯suspend-hook¤ò¼Â¹Ô¤¹¤ë¡£

¥æ¡¼¥¶¡¼¤¬Emacs¤òºÆ³«¤¹¤ë¤È¡¢suspend-emacs¤Ï ¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯suspend-resume-hook¤ò¼Â¹Ô¤¹¤ë¡£ see Hooks¡£

ºÆ³«¸å¤Î¤Ä¤®¤ÎºÆÉ½¼¨¤Ç¤Ï¡¢ ÊÑ¿ôno-redraw-on-reenter¤¬nil¤Ê¤é¤Ð ¥¹¥¯¥ê¡¼¥óÁ´ÂΤòºÆÉÁ²è¤¹¤ë¡£ ¡Êsee Refresh Screen¡Ë¡£

¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢Emacs¤òµÙ»ß¤·¤Æ¤â‘pwd’¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ ¤·¤«¤·¡¢¥·¥§¥ë¤Ï¤½¤ì¤òÆÉ¤ß¼è¤Ã¤Æ¼Â¹Ô¤¹¤ë¡£

(suspend-emacs)
     ⇒ nil
(add-hook 'suspend-hook
          (function (lambda ()
                      (or (y-or-n-p
                            "Really suspend? ")
                          (error "Suspend cancelled")))))
     ⇒ (lambda nil
          (or (y-or-n-p "Really suspend? ")
              (error "Suspend cancelled")))
(add-hook 'suspend-resume-hook
          (function (lambda () (message "Resumed!"))))
     ⇒ (lambda nil (message "Resumed!"))
(suspend-emacs "pwd")
     ⇒ nil
---------- Buffer: Minibuffer ----------
Really suspend? y
---------- Buffer: Minibuffer ----------
---------- Parent Shell ----------
lewis@slug[23] % /user/lewis/manual
lewis@slug[24] % fg
---------- Echo Area ----------
Resumed!
Variable: suspend-hook

¤³¤ÎÊÑ¿ô¤Ï¡¢µÙ»ß¤¹¤ë¤Þ¤¨¤Ë¼Â¹Ô¤µ¤ì¤ë¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯¤Ç¤¢¤ë¡£

Variable: suspend-resume-hook

¤³¤ÎÊÑ¿ô¤Ï¡¢ºÆ³«¸å¤Ë¼Â¹Ô¤µ¤ì¤ë¥Î¡¼¥Þ¥ë¥Õ¥Ã¥¯¤Ç¤¢¤ë¡£