Next: , Previous: Tag Syntax, Up: Tags   [Contents][Index]


20.13.2 ¥¿¥°¥Æ¡¼¥Ö¥ë¤ÎºîÀ®

¥¿¥°¥Æ¡¼¥Ö¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢etags¥×¥í¥°¥é¥à¤ò»È¤¤¤Þ¤¹¡£ etags¤Ï¡¢¿ô¼ïÎà¤Î¸À¸ì¤Ë¤Ä¤¤¤Æ¡¢ ¹½Ê¸¤ò²òÀϤ·¥¿¥°¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤Ä¤®¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹¡£

etags inputfiles

etags¤Ï»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¡¢ ¥«¥ì¥ó¥Èºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÎTAGS¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë ¥¿¥°¥Æ¡¼¥Ö¥ë¤ò½ñ¤­½Ð¤·¤Þ¤¹¡£ etags¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤È¤½¤ÎÆâÍÆ¤«¤é¼«Æ°Åª¤Ë»ÈÍѸÀ¸ì¤ò¼±Ê̤·¤Þ¤¹¡£ ¸å½Ò¤Î‘--language=name’¥ª¥×¥·¥ç¥ó¤Ç¡¢ ¸À¸ì¤òÌÀ¼¨¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤Ê¤É¤·¤Æ¥¿¥°¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤¬¸Å¤¯¤Ê¤Ã¤¿¾ì¹ç¡¢ ¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ë¤Ë¤Ï¡¢ºÇ½é¤Ë¥¿¥°¥Æ¡¼¥Ö¥ë¤òºîÀ®¤·¤¿¼ê½ç¤ò ·«¤êÊÖ¤·¤Þ¤¹¡£ ÉÑÈˤ˹¹¿·¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

¥¿¥°¥Æ¡¼¥Ö¥ë¤Ëµ­Ï¿¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¸í¤Ã¤¿¥Õ¥¡¥¤¥ë¤òµ­Ï¿¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¡¢ Emacs¤Ï¥¿¥°¤ÎÄêµÁ¤ò¤ß¤Ä¤±¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢¡Ê¥¿¥°¤ÎÄêµÁ¤ò´Þ¤ó¤À¥Õ¥¡¥¤¥ë¤ò¿¾¯ÊÔ½¸¤¹¤ë¤Ê¤É¤·¤¿¤¿¤á¤Ë¡Ë ¥¿¥°¥Æ¡¼¥Ö¥ë¤Ëµ­Ï¿¤µ¤ì¤¿°ÌÃÖ¤¬Â¿¾¯¥º¥ì¤Æ¤¤¤ëÄøÅ٤ʤé¤Ð¡¢ ¥¿¥°¤ò¤ß¤Ä¤±¤ë¤Î¤ËÄ̾ï¤è¤ê¾¯¤·»þ´Ö¤¬¤«¤«¤ë¤À¤±¤Ç¤¹¡£ µ­Ï¿¤µ¤ì¤¿°ÌÃÖ¤¬ÂçÉý¤Ë¶¸¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢ Emacs¤Ï¥¿¥°¤ò¤ß¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢ ¤½¤Î¤¿¤á¤Ë¥Õ¥¡¥¤¥ëÁ´ÂΤòÄ´¤Ù¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

¤Ç¤¹¤«¤é¡¢¿·¤·¤¤¥¿¥°¤òÄêµÁ¤·¤¿¤È¤­¡¢¥¿¥°¤ÎÄêµÁ¤òÊ̤Υե¡¥¤¥ë¤Ë°Üư¤·¤¿¤È¤­¡¢ ¥Õ¥¡¥¤¥ë¤òÁêÅöÊѹ¹¤·¤¿¤È¤­¤Ë¤Ï¡¢¥¿¥°¥Æ¡¼¥Ö¥ë¤Î¹¹¿·¤¬É¬ÍפǤ¹¡£ ¤·¤«¤·¡¢¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¤Ä¤É¥¿¥°¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤·¡¢ ËèÆü¹¹¿·¤¹¤ëɬÍפ¹¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£

¥¿¥°¥Æ¡¼¥Ö¥ë¤ËÊ̤Υ¿¥°¥Æ¡¼¥Ö¥ë¤ò¼è¤ê¹þ¤à¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¼è¤ê¹þ¤à¥¿¥°¥Õ¥¡¥¤¥ë̾¤ò¥ª¥×¥·¥ç¥ó‘--include=file’¤Ç »ØÄꤷ¤Æ¥¿¥°¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤ËºîÀ®¤·¤¿¥¿¥°¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ »ØÄꤷ¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë²Ã¤¨¤Æ¡¢ ¼è¤ê¹þ¤ó¤À¥¿¥°¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤¿¥Õ¥¡¥¤¥ë¤â´Þ¤Þ¤ì¤Þ¤¹¡£

etags¤ò¼Â¹Ô¤¹¤ë¤È¤­¤ËÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ç¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¤È¡¢ ¥¿¥°¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥¿¥°¥Õ¥¡¥¤¥ë¤ò½ñ¤­½Ð¤·¤¿¤È¤­¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò ´ð½à¤Ë¤·¤¿¥Õ¥¡¥¤¥ë̾¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£ ¤³¤¦¤·¤¿¾ì¹ç¡¢ ¥¿¥°¥Õ¥¡¥¤¥ë¤È¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤À¥Ç¥£¥ì¥¯¥È¥êÌÚ¹½Â¤Á´ÂΤò °Üư¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤·¤«¤â¡¢¥¿¥°¥Õ¥¡¥¤¥ë¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òÀµ¤·¤¯»Ø¤·Â³¤±¤Þ¤¹¡£

etags¤Î°ú¿ô¤È¤·¤ÆÀäÂÐ¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ë¤È¡¢ ¥¿¥°¥Õ¥¡¥¤¥ë¤Ë¤ÏÀäÂÐ¥Õ¥¡¥¤¥ë̾¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£ ¤³¤¦¤·¤¿¾ì¹ç¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬Æ±¤¸¾ì½ê¤Ë¤¢¤ë¸Â¤ê¡¢ ¥¿¥°¥Õ¥¡¥¤¥ë¤ò°Üư¤·¤Æ¤â¥¿¥°¥Õ¥¡¥¤¥ë¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤ò»Ø¤·Â³¤±¤Þ¤¹¡£ ÀäÂÐ¥Õ¥¡¥¤¥ë̾¤Ï¡¢‘/’¡¢¤¢¤ë¤¤¤Ï¡¢ MS-DOS¤ÈMS-Windows¤Ç¤Ï‘device:/’¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£

Èó¾ï¤Ë¿¿ô¤Î¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë¾ì¹ç¡¢ ¥³¥Þ¥ó¥É¹Ô¤ÎŤµ¤òÀ©¸Â¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¤Î¤Ç¡¢ ¥Õ¥¡¥¤¥ë̾¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤹ¤ë¤È¤­¤ËÌäÂ꤬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ÎÀ©¸Â¤ò²óÈò¤¹¤ë¤â¤Ã¤È¤âñ½ã¤ÊÊýË¡¤Ï¡¢ ¤Ä¤®¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ë°ÌÃ֤˥À¥Ã¥·¥å¤òÂǤäơ¢ etags¤Ëɸ½àÆþÎϤ«¤é¥Õ¥¡¥¤¥ë̾¤òÆÉ¤ß¹þ¤Þ¤»¤ë¤³¤È¤Ç¤¹¡£

find . -name "*.[chCH]" -print | etags -

¥ª¥×¥·¥ç¥ó‘--language=name’¤ò»È¤¨¤Ð¡¢ ¸À¸ì¤òÌÀ¼¨Åª¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë̾¤Èº®¤¼¤Æ¤¤¤¯¤Ä¤Ç¤â»ÈÍѤǤ­¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¡¢¤¢¤È¤Ë³¤¯¥Õ¥¡¥¤¥ë̾¤ËŬÍѤµ¤ì¤Þ¤¹¡£ ‘--language=auto’¤ò»ØÄꤹ¤ë¤È¡¢ etags¤Ï¥Õ¥¡¥¤¥ë̾¤È¤½¤ÎÆâÍÆ¤«¤é¤Õ¤¿¤¿¤Ó»ÈÍѸÀ¸ì¤ò¿ä¬¤·¤Þ¤¹¡£ ‘--language=none’¤ò»ØÄꤹ¤ì¤Ð¡¢ ¸À¸ì¤Ë°Í¸¤·¤¿½èÍý¤ò¤¤¤Ã¤µ¤¤¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤¹¤ë¤È¡¢etags¤ÏÀµµ¬É½¸½¤Ë¤è¤ë°ìÃפÀ¤±¤Ë ´ð¤Å¤¤¤Æ¥¿¥°¤òǧ¼±¤·¤Þ¤¹¡£ etags¤¬ÃΤäƤ¤¤ë¸À¸ì¤È¡¢¸À¸ì¤ò¿ä¬¤¹¤ë¥Õ¥¡¥¤¥ë̾µ¬Â§¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢ ‘etags --help’¤ò»ØÄꤷ¤Þ¤¹¡£

--regex’¥ª¥×¥·¥ç¥ó¤Ï¡¢ Àµµ¬É½¸½¤Ë¤è¤ë°ìÃפ˴ð¤Å¤¤¤Æ¥¿¥°¤òǧ¼±¤µ¤»¤ë°ìÈÌŪ¤ÊÊýË¡¤Ç¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤È¥Õ¥¡¥¤¥ë̾¤ò¼«Í³¤Ëº®¤¼¤Æ»ÈÍѤǤ­¤Þ¤¹¡£ ³Æ‘--regex’¥ª¥×¥·¥ç¥ó¤Ï¡¢¤½¤ì°ÊÁ°¤Ë»ØÄꤷ¤¿Àµµ¬É½¸½¤ËÄɲ䵤졢 ¥ª¥×¥·¥ç¥ó¤Î¤¢¤È¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËŬÍѤµ¤ì¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó¤Î¹½Ê¸¤Ï¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¹¡£

--regex=/tagregexp[/nameregexp]/

¤³¤³¤Ç¡¢tagregexp¤Ï¡¢¹Ô¤Ë°ìÃפµ¤»¤Æ¥¿¥°¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¤Ä¤Í¤Ë°ÌÃÖ¤¬¸ÇÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢‘^’¤¬Á°ÃÖ¤µ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡£ »ú²¼¤²Ê¬¤ò¹Íθ¤·¤¿¤±¤ì¤Ð¡¢Àµµ¬É½¸½¤ò‘[ \t]*’¤Ç»Ï¤á¤Æ¡¢ ¹ÔƬ¤ÎǤ°Õ¸Ä¤Î¶õÇò¤Ë°ìÃפ¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ Àµµ¬É½¸½¤Ë¤ª¤¤¤Æ¤Ï¡¢‘\’¤Ïľ¸å¤Îʸ»ú¤ò¥¯¥©¡¼¥È¤·¡¢ ‘\t’¤Ï¥¿¥Öʸ»ú¤òɽ¤·¤Þ¤¹¡£ etags¤Ç¤Ï¡¢¤³¤ì¤é°Ê³°¤Ë¤ÏC¤Ç»È¤ï¤ì¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò °·¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

etags¤ÎÀµµ¬É½¸½¤Î¹½Ê¸¤Ï¡¢Emacs¤Î¤â¤Î¤ÈƱ¤¸¤Ç¡¢ È¿Éü²ó¿ô±é»»»Ò¡Êinterval operator¡Ë¤¬³ÈÄ¥¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î±é»»»Ò¤Ï¡¢grep¤äed¤Ç»È¤¨¤ë¤â¤Î¤ÈƱ¤¸Æ°ºî¤ò¤·¤Þ¤¹¡£ È¿Éü²ó¿ô±é»»»Ò¤Î¹½Ê¸¤Ï‘\{m,n\}’¤Ç¤¢¤ê¡¢ ľÁ°¤ÎÀµµ¬É½¸½¤Îm²ó°Ê¾ån²ó°Ê²¼¤Î·«¤êÊÖ¤·¤Ë°ìÃפ·¤Þ¤¹¡£

tagregexp¤¬¥¿¥°¤È¤·¤ÆÇ§¼±¤·¤¿¤¤Éôʬ¤è¤ê¤âŤ¯°ìÃפ¹¤ë¤è¤¦¤Ë¤Ï ¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ tagregexp¤Ë°ìÃפ¹¤ëÉôʬ¤¬É¬Íװʾå¤ËŤ¯¤Ê¤ë¤Î¤¬Èò¤±¤é¤ì¤Ê¤¤¤Ê¤é¤Ð¡¢ ¥¿¥°¤ÎÈϰϤò¶¹¤á¤ë¤¿¤á¤Ënameregexp¤òÄɲ乤ë¤È¤è¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ Àµµ¬É½¸½¤òÍøÍѤ·¤¿Îã¤ò¤¤¤¯¤Ä¤«¾Ò²ð¤·¤Þ¤·¤ç¤¦¡£

-R’¥ª¥×¥·¥ç¥ó¤Ï¡¢¤½¤ì¤Þ¤Ç¤Ë‘--regex’¥ª¥×¥·¥ç¥ó¤ÇÄêµÁ¤·¤¿ ¤¹¤Ù¤Æ¤ÎÀµµ¬É½¸½¤òºï½ü¤·¤Þ¤¹¡£ ¤Ä¤®¤Î»ÈÍÑÎ㤫¤é¤â¤ï¤«¤ë¤è¤¦¤Ë¡¢ ¥ª¥×¥·¥ç¥ó¤Î¤¢¤È¤Ë³¤¯¥Õ¥¡¥¤¥ë¤ËŬÍѤµ¤ì¤Þ¤¹¡£

etags --regex=/reg1/ voo.doo --regex=/reg2/ \
    bar.ber -R --lang=lisp los.er

¤³¤ÎÎã¤Ç¤Ï¡¢etags¤Ï¡¢ voo.doo¤Èbar.ber¤ËÂФ·¤Æ¤Ï¡¢¤½¤ÎÆâÍÆ¤«¤é»ÈÍѸÀ¸ì¤ò¿äÄꤷ¤Þ¤¹¡£ ¤µ¤é¤Ë¡¢voo.doo¤«¤é;ʬ¤Ë¥¿¥°¤òǧ¼±¤¹¤ë¤¿¤á¤Ëreg1¤ò»È¤¤¡¢ bar.ber¤«¤é;ʬ¤Ë¥¿¥°¤òǧ¼±¤¹¤ë¤¿¤á¤Ë¤Ï reg1¤Èreg2¤ÎξÊý¤ò»È¤¤¤Þ¤¹¡£ los.er¤«¤é¥¿¥°¤òǧ¼±¤¹¤ë¤Ë¤Ï¡¢ Lisp¤Î¥¿¥°¹½Ê¸µ¬Â§¤À¤±¤ò»È¤¤¡¢Àµµ¬É½¸½¤Ë¤è¤ë°ìÃפϤ¤¤Ã¤µ¤¤»È¤¤¤Þ¤»¤ó¡£

Ê̤ÎÎã¤ò¼¨¤·¤Þ¤·¤ç¤¦¡£ ¤³¤³¤Ç¤Ï¡¢¥·¥§¥ë¤¬²ò¼á¤·¤Ê¤¤¤è¤¦¤ËÀµµ¬É½¸½¤ò¥¯¥©¡¼¥È¤·¤Þ¤¹¡£

¾¤Î¥ª¥×¥·¥ç¥ó°ìÍ÷¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢ etags --help¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£