Previous: Major Modes, Up: Major Modes   [Contents][Index]


17.1 ¥á¥¸¥ã¡¼¥â¡¼¥É¤ÎÁªÂòÊý¼°

¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤ÆÌÀ¼¨Åª¤Ë¥á¥¸¥ã¡¼¥â¡¼¥É¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢¤¿¤¤¤Æ¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤ä¥Õ¥¡¥¤¥ëÆâ¤ÎÆÃÊ̤Υƥ­¥¹¥È¤Ë´ð¤Å¤¤¤Æ Emacs¤Ï¤É¤Î¥â¡¼¥É¤ò»È¤¦¤«¤ò·èÄꤷ¤Þ¤¹¡£

ÌÀ¼¨Åª¤Ë¿·¤·¤¤¥á¥¸¥ã¡¼¥â¡¼¥É¤òÁªÂò¤¹¤ë¤Ë¤Ï¡¢M-x¥³¥Þ¥ó¥É¤Ç¹Ô¤¤¤Þ¤¹¡£ ¥á¥¸¥ã¡¼¥â¡¼¥É¤Î̾Á°¤Ë-mode¤òÉÕ¤±²Ã¤¨¤ë¤È¡¢ ¤½¤Î¥â¡¼¥É¤òÁª¤Ö¥³¥Þ¥ó¥É̾¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢Lisp¥â¡¼¥É¤ËÆþ¤ë¤Ë¤ÏM-x lisp-mode¤ò¼Â¹Ô¤·¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë¤òˬÌ䤹¤ë¤È¡¢Emacs¤ÏÄ̾ï¥Õ¥¡¥¤¥ë̾¤Ë´ð¤Å¤¤¤Æ Àµ¤·¤¤¥á¥¸¥ã¡¼¥â¡¼¥É¤òÁªÂò¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢‘.c’¤Ç½ª¤ë̾Á°¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢C¥â¡¼¥É¤ÇÊÔ½¸¤µ¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤È¥á¥¸¥ã¡¼¥â¡¼¥É¤È¤ÎÂбþ¤Ï¡¢ ÊÑ¿ôauto-mode-alist¤ÇÀ©¸æ¤·¤Þ¤¹¡£ ¤½¤ÎÃͤϡ¢Í×ÁǤ¬¤Ä¤®¤Î¤è¤¦¤Ê·Á¼°¤Î¥ê¥¹¥È¤Ç¤¹¡£

(regexp . mode-function)

¤Þ¤¿¤Ï¡¢¤Ä¤®¤Î·Á¼°¤Ç¤¹¡£

(regexp mode-function flag)

¤¿¤È¤¨¤Ð¡¢¤³¤Î¥ê¥¹¥È¤ËÄ̾濫¤ëÍ×ÁǤϡ¢ ("\\.c\\'". c-mode)¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢.c¤Ç½ª¤ë̾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏC¥â¡¼¥É¤òÁª¤Ó¤Þ¤¹¡£ ¡ÊLisp¤Î¹½Ê¸¤Ç¤Ï¡¢‘\’¤ò´Þ¤á¤ë¤Ë¤Ï‘\\’¤¬É¬Íס£ ¤Þ¤¿¡¢‘\’¤Ï¡¢Àµµ¬É½¸½¤Î‘.’¤ÎÆÃÊ̤ʰÕÌ£¤òÍÞÀ©¤¹¤ë¤¿¤á¤ËɬÍס£¡Ë ¥ê¥¹¥È¤ÎÍ×ÁǤ¬ (regexp mode-function flag)¤Î·Á¼°¤Ç flag¤¬nil°Ê³°¤Ê¤é¤Ð¡¢ function¤ò¸Æ¤ó¤À¤¢¤È¤Ëregexp¤Ë°ìÃפ¹¤ëÀÜÈø¼­¤ò¼Î¤Æ¤Æ¡¢ ¥ê¥¹¥È¤Ç¾¤Ë°ìÃפ¹¤ë¤â¤Î¤ò¤Õ¤¿¤¿¤Óõ¤·¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë¤Î¶õ¹Ô¤Ç¤Ê¤¤ºÇ½é¤Î¹Ô¤ÎÆÃÊ̤ʼïÎà¤Î¥Æ¥­¥¹¥È¤Ë¤è¤Ã¤Æ¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¤É¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤ò»È¤¦¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ ¥â¡¼¥É̾¤Ï¡¢¤½¤Î¹Ô¤Ë‘-*-’¤Ç°Ï¤Þ¤ì¤Æ¸½¤ì¤Þ¤¹¡£ ¾¤Î¥Æ¥­¥¹¥È¤¬¤½¤Î¹Ô¤Ë¤¢¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢

;-*-Lisp-*-

¤Ï¡¢Emacs¤ËLisp¥â¡¼¥É¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤·¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤ÊÌÀ¼¨Åª¤Ê»ØÄê¤Ï¡¢ ¥Õ¥¡¥¤¥ë̾¤Ë´ð¤Å¤¤¤¿¥á¥¸¥ã¡¼¥â¡¼¥É¤ËÍ¥À褷¤Þ¤¹¡£ ¤³¤Î¹Ô¤¬Lisp¤Î¥³¥á¥ó¥È¤Ë¤Ê¤ë¤è¤¦¤Ë ¥»¥ß¥³¥í¥ó¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

¥â¡¼¥É¤ò»ØÄꤹ¤ëÊ̤νñ¼°¤Ï¡¢¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¹¡£

-*- mode: modename;-*-

¤³¤ì¤Ï¡¢Æ±ÍÍ¤Ë¥í¡¼¥«¥ëÊÑ¿ô¤â»ØÄê¤Ç¤­¤Æ¡¢¤Ä¤®¤Î¤è¤¦¤Ë½ñ¤­¤Þ¤¹¡£

-*- mode: modename; var: value; … -*-

¤è¤ê¾Ü¤·¤¯¤Ï¡¢See File Variables¡£

¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤¬‘#!’¤Ç»Ï¤Þ¤ë¤È¤­¤Ï¡¢ ¥Õ¥¡¥¤¥ë¤Î1¹ÔÌܤǻØÄꤷ¤¿¥³¥Þ¥ó¥É¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢ ¼Â¹Ô²Äǽ¤Ê¥·¥§¥ë¥³¥Þ¥ó¥É¤È¤·¤ÆÆ¯¤­¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Ï¡¢¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ø¤ÎÆþÎϤȤ·¤Æ»È¤ï¤ì¤Þ¤¹¡£

Emacs¤Ç¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤òˬÌ䤷¤¿¤È¤­¡¢ ¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬¥á¥¸¥ã¡¼¥â¡¼¥É¤ò»ØÄꤷ¤Ê¤¤¤È¤­¤Ë¤Ï¡¢ Emacs¤Ï¥â¡¼¥É¤òÁªÂò¤¹¤ë¤¿¤á¤Ë1¹ÔÌܤΥ¤¥ó¥¿¡¼¥×¥ê¥¿¤Î̾Á°¤ò»È¤¤¤Þ¤¹¡£ 1¹ÔÌܤ¬¡¢‘perl’¤ä‘tcl’¤Î¤è¤¦¤Êǧ¼±¤µ¤ì¤ë ¥¤¥ó¥¿¡¼¥×¥ê¥¿¥×¥í¥°¥é¥à¤Î̾Á°¤Ê¤é¤Ð¡¢ Emacs¤Ï¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Î¥×¥í¥°¥é¥à¤Ë¤È¤Ã¤ÆÅ¬Àڤʥ⡼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ ÊÑ¿ôinterpreter-mode-alist¤Ï¡¢ ¥¤¥ó¥¿¡¼¥×¥ê¥¿¥×¥í¥°¥é¥à̾¤È¥á¥¸¥ã¡¼¥â¡¼¥É¤È¤ÎÂбþ¤ò»ØÄꤷ¤Þ¤¹¡£

1¹ÔÌܤ¬‘#!’¤Ç»Ï¤Þ¤ë¤È¤­¤Ë¤Ï¡¢ ¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¥·¥¹¥Æ¥à¤¬º®Í𤹤뤿¤á¡¢ 1¹ÔÌܤǤϑ-*-’¤Îµ¡Ç½¤ò»È¤¨¤Þ¤»¤ó¡£ ¤½¤Î¤¿¤á¡¢¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢Emacs¤Ï1¹ÔÌܤ˲䨤Æ2¹ÔÌܤǤ⠑-*-’¤òõ¤·¤Þ¤¹¡£

»ÈÍѤ¹¤ë¥á¥¸¥ã¡¼¥â¡¼¥É¤ò»ØÄꤷ¤Ê¤¤¥Õ¥¡¥¤¥ë¤òˬÌ䤷¤¿¤È¤­¡¢ ¤¢¤ë¤¤¤Ï¡¢C-x b¤Ç¿·¤¿¤Ë¥Ð¥Ã¥Õ¥¡¤òºî¤ë¤È¤­¤Ë¤Ï¡¢ ÊÑ¿ôdefault-major-mode¤¬¡¢»ÈÍѤ¹¤ë¥â¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ Ä̾¤½¤ÎÃͤϡ¢´ðËÜ¡Êfundamental¡Ë¥â¡¼¥É¤ò»ØÄꤹ¤ë ¥·¥ó¥Ü¥ëfundamental-mode¤Ç¤¹¡£ default-major-mode¤¬nil¤Ê¤é¡¢ ¥á¥¸¥ã¡¼¥â¡¼¥É¤Ï¤Þ¤¨¤ËÁªÂò¤·¤Æ¤¤¤¿¥Ð¥Ã¥Õ¥¡¤Î¥â¡¼¥É¤ÈƱ¤¸¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£

¥Ð¥Ã¥Õ¥¡¤Î¥á¥¸¥ã¡¼¥â¡¼¥É¤òÊѹ¹¤·¤Æ¤â¡¢ Emacs¤¬¼«Æ°Åª¤ËÁªÂò¤¹¤ë¥á¥¸¥ã¡¼¥â¡¼¥É¤ËÌá¤ì¤Þ¤¹¡£ ¤½¤ì¤Ë¤Ï¡¢¥³¥Þ¥ó¥ÉM-x normal-mode¤ò»È¤¤¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥á¥¸¥ã¡¼¥â¡¼¥É¤òÁªÂò¤¹¤ë¤¿¤á¤Ë find-file¤¬¸Æ¤Ó½Ð¤¹´Ø¿ô¤ÈƱ¤¸´Ø¿ô¤Ç¤¹¡£ ¤³¤Î´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ëÃæ¤Ë¥í¡¼¥«¥ëÊÑ¿ô¥ê¥¹¥È¤¬¤¢¤ì¤Ð¤½¤ì¤â½èÍý¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥ÉC-x C-w¤Èset-visited-file-name¤Ï¡¢ ¿·¤·¤¤¥Õ¥¡¥¤¥ë̾¤¬¥â¡¼¥É¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¤Ê¤é¡¢ ¿·¤·¤¤¥á¥¸¥ã¡¼¥â¡¼¥É¤ËÊѹ¹¤·¤Þ¤¹¡Êsee Saving¡Ë¡£ ¤·¤«¤·¡¢¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤¬¥á¥¸¥ã¡¼¥â¡¼¥É¤ò»ØÄꤷ¤Æ¤¤¤Æ¡¢¤«¤Ä¡¢ ¤¢¤ë¡ØÆÃÊ̤ʡ٥᥸¥ã¡¼¥â¡¼¥É¤¬¤½¤Î¥â¡¼¥É¤ÎÊѹ¹¤òµö¤µ¤Ê¤¤¤Ê¤é¡¢ ¥á¥¸¥ã¡¼¥â¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¡£ change-major-mode-with-file-name¤ònil¤ËÀßÄꤹ¤ë¤È¡¢ ¤³¤Î¥â¡¼¥ÉÊѹ¹µ¡Ç½¤ò¥ª¥Õ¤Ë¤Ç¤­¤Þ¤¹¡£