ctags¸¦ ÀÌ¿ëÇÑ ¼Ò½º ºÐ¼®
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>ctags



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 ctags
2 »ç¿ë ¿¹

1 ctags

ctags¸¦ ÀÌ¿ëÇϸé, »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö°¡ ³ª¿ÔÀ»¶§, ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Â ½î½ºÆÄÀÏ·Î ¹Ù·Î Á¡ÇÁÇÒ¼ö ÀÖÀ¸¸ç, ¶ÇÇÑ ¹Ù·Î ¿ø·¡ÀÇ ½î½ºÆÄÀÏ·Î µÇµ¹¾Æ¿Ã¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ½î½ººÐ¼®¿¡ µå´Â ½Ã°£À» »ó´çÈ÷ ÁÙÀϼö ÀÖ´Ù.

À̹ø ¹®¼­¿¡´Â »ç¿ëÀÚ°¡ vi ¸¦ »ç¿ëÇϰí ÀÖ´Ù´Â °¡Á¤ÇÏ¿¡ ctags ÀÇ »ç¿ë¹ýÀ» ¼³¸íÇϵµ·Ï ÇϰڴÙ.

ctags´Â °ø°³ ¼ÒÇÁÆ®¿þ¾î·Î ½±°Ô ¾òÀ»¼ö ÀÖÀ»°ÍÀÌ´Ù. ¸®´ª½ºÀÇ °æ¿ì À¢¸¸ÇÑ ¹èÆ÷ÆÇÀº ±âº»À¸·Î Æ÷ÇԵǾî ÀÖÀ¸´Ï, ¹Ù·Î »ç¿ëÇÏ¸é µÈ´Ù. ¸¸¾à ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù¸é http://ctags.sourceforge.net ¸¦ ¹æ¹®Çغ¸µµ·Ï ÇÑ´Ù.

»ç¿ë¹æ¹ýÀº °£´ÜÇÏ´Ù. ºÐ¼®ÇϰíÀÚ ÇÏ´Â ¼Ò½º°¡ ÀÖ´Â µð·ºÅ丮¿¡¼­ ctags ¸í·ÉÀ» ½ÇÇà½ÃÄÑÁÖ¸é µÈ´Ù.
# ctags * 
 
À§¿¡¼­ ctags ´Â ÇöÀç µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏ¿¡ ´ëÇØ¼­ tags Á¤º¸¸¦ ÀÛ¼ºÇϵµ·Ï Çߴµ¥, ÇöÀç µð·ºÅ丮 »Ó¸¸ ¾Æ´Ï¶ó ¸ðµç ÇÏÀ§µð·ºÅ丮¿¡ ´ëÇØ¼­ tags Á¤º¸¸¦ ÀÛ¼ºÇϰíÀÚ ÇÑ´Ù¸é "-R" ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù.
# ctags -R 
 
ctags ¸í·ÉÀ» ½ÇÇà½ÃŰ°í ³ª¸é, ctags¸¦ ½ÇÇàÇÑ µð·ºÅ丮¿¡ tags ¶õ ÆÄÀÏÀÌ »ý±æ°ÍÀÌ´Ù. ¿©±â¿¡ °¢ ÇÔ¼ö°¡ ¾î´ÀÆÄÀÏ¿¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö¿¡ ´ëÇÑ Á¤º¸°¡ µé¾î ÀÖ°í, vi¸¦ ½ÇÇà ½Ã۸é tags ÆÄÀÏÀ» ÂüÁ¶ÇÏ¿© ÇØ´ç ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Â ÆÄÀÏ·Î ÀÚµ¿À¸·Î À̵¿ÇÏ°Ô µÈ´Ù.

tags ÆÄÀÏÀº ¾Æ·¡¿Í °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
hello  hello.c   /^void hello(void)$/;"    f 
 
°¢Çʵå´Â "tab" À¸·Î ±¸ºÐµÈ´Ù.
  1. ù¹øÂ° Çʵå´Â ÇÔ¼öÀ̸§
  2. µÎ¹øÂ° Çʵå´Â ÇÔ¼ö°¡ Á¤ÀÇµÈ ÆÄÀÏÀÇ À̸§
  3. ¼¼¹øÂ° Çʵå´Â ÇØ´ç ÆÄÀÏ¿¡¼­ vi°¡ ÇÔ¼ö¸íÀ» ã¾Æ°¡µµ·Ï ÇϱâÀ§ÇÑ Á¤±ÔÇ¥Çö½Ä ÀÌ´Ù.
  4. ³×¹øÂ° Çʵå´Â ÇØ´ç ÇÔ¼öÀÇ Å¸ÀÔÀÌ´Ù. "f" ¶ó¸é ÀÏ¹Ý C ÇÔ¼ö¶ó´Â ¶æÀ̸ç, "c" ´Â Ŭ·¡½º¿¡ ¼±¾ðµÈ ¸â¹öÇÔ¼ö, "d" ´Â define µÈ °ªÀ̶õ ¶æÀÌ´Ù.

ÀÌÁ¦ vi ·Î ºÐ¼®ÇϰíÀÚ ÇÏ´Â ½î½ºÆÄÀÏÀ» ¿­¾îº¸ÀÚ. ºÐ¼®ÇÏ´Â Áß¿¡ hello() ¶ó´Â ¾Ë¼ö¾ø´Â ÇÔ¼ö°¡ ³ª¿Í¼­ ÀÌ ÇÔ¼öÀÇ ¿øÇüÀÌ Àִ°÷À¸·Î À̵¿ÇÏ°í ½ÍÀ» ¶§´Â hello() ÇÔ¼ö¿¡ Ä¿¼­¸¦ À§Ä¡½Ã۰í Ctrl + ] ¸¦ ´©¸£¸é µÈ´Ù. ±×·¯¸é °ð¹Ù·Î hello() ÇÔ¼öÀÇ ¿øÇüÀ¸·Î À̵¿ÇÏ°Ô µÈ´Ù. hello() ÇÔ¼ö¿¡ ´ëÇÑ ºÐ¼®ÀÌ ³¡³ª¼­, ¿ø·¡ ºÐ¼®ÇÏ´ø ½î½º ÆÄÀÏ·Î µ¹¾Æ¿À°í ½Í´Ù¸é Ctrl + t۸¦ ´©¸£¸é µÈ´Ù.

vi¿¡¼­ »ç¿ëµÇ´Â ctags °ü·Ã Ä¿¸Çµå¸¦ Á¤¸®ÇØ º¸¾Ò´Ù.
Tag Command ¼³¸í
Ctrl+] ÇÔ¼ö°¡ Á¤ÀÇµÈ ÆÄÀÏ·Î À̵¿
Ctrl+t À̵¿Çϱâ Àü ´Ü°èÀÇ À§Ä¡·Î À̵¿
:tselect <function-name> °°Àº À̸§ÀÇ function-nameÀÌ ¿©·¯°³ À϶§, ¸ñ·ÏÀ» º¸¿©ÁØ´Ù. ¹øÈ£¸¦ ÀÌ¿ëÇØ¼­ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù
:tnext ¿©·¯°³ÀÇ ÇÔ¼öÀ̸§ÀÌ Á¸ÀçÇÒ ¶§, ´ÙÀ½ ÇÔ¼ö¸¦ ¼±ÅÃÇÑ´Ù.
:tprevious ÀÌÀü ÇÔ¼ö¸¦ ¼±ÅÃÇÑ´Ù.
:tfirst °¡Àå óÀ½¿¡ ã¾Ò´ø ÇÔ¼ö¸¦ ¼±ÅÃÇÑ´Ù.
:tlast °¡Àå ¸¶Áö¸· ÇÔ¼ö¸¦ ¼±ÅÃÇÑ´Ù.

ÀÌ»óÀ¸·Î ctags ¿Í vi ¸¦ ÀÌ¿ëÇÑ ½î¾² ºÐ¼®¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸¾Ò´Ù. emacs ¿ëÀ¸·Î´Â etags ¸¦ »ç¿ëÇϴµ¥, ÀÌ¿¡ °üÇÑ ³»¿ëÀº ³ªÁß¿¡ ±âȸ°¡ µÇ¸é, ¼³¸íÇϵµ·Ï ÇϰڴÙ.

2 »ç¿ë ¿¹

´ÙÀ½°ú °°Àº vi ¸í·ÉÀ» ÀÌ¿ëÇØµµ µÈ´Ù.
  • ts <function-name> : function-name ÇÔ¼öÀÇ ¸ñ·ÏÀ» º¸¿©ÁØ´Ù. ¹øÈ£¸¦ ¼±ÅÃÇØ¼­ ÇÔ¼ö°¡ Á¤ÀÇµÈ À§Ä¡·Î À̵¿ÇÒ ¼ö ÀÖ´Ù.
  • ta <function-name> : function-nameÀÌ Á¤ÀÇ µÇ¾î ÀÖ´Â °÷À¸·Î ¹Ù·Î À̵¿ÇÑ´Ù.

¿¹¸¦ µé¾î º¸°Ú´Ù. °¡º­¿î À¥ ¼­¹ö¸¦ °³¹ßÇÒ ¸ñÀûÀ¸·Î [http]lighthttpd¸¦ ºÐ¼®ÇÏ°Ô µÇ¾ú´Ù. ´Ù¿î·Îµå ¹ÞÀº ´ÙÀ½ ctags¸¦ ÀÌ¿ëÇØ¼­ ű׸¦ ¸¸µé¾ú´Ù.
# tar -xvzf lighthttpd-1.4.28.tar.gz 
# cd lighttpd-1.4.28 
# ctags -R 
 

ÄÚµå ºÐ¼®À» À§Çؼ­ °¡Àå ¸ÕÀú ÇØ¾ßÇÒ ÀÏÀº main ÇÔ¼ö¸¦ ã´Â ÀÏÀÏ °ÍÀÌ´Ù. grep¸¦ ÀÌ¿ëÇØ¼­ È®ÀÎÇÏ´Â ¹æ¹ýµµ ÀÖ±â´Â ÇÏÁö¸¸ ½â È¿À²ÀûÀÌÁö ¾ÊÀ½À» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. °Ô´Ù°¡ ÇÏÀ§ µð·ºÅ丮±îÁö °Ë»çÇÏ·Á¸é ½© ½ºÅ©¸³Æ®¿¡ ¾î´ÀÁ¤µµ Àͼ÷ÇØÁ®¾ß ÇÑ´Ù.
# grep "main(" * 
 

±×³É ¾Æ¹« Äڵ峪 ¿­¾î¼­ :ts ¸í·ÉÀ¸·Î main ÇÔ¼ö¸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ´Ù.
º¸³½ »ç¶÷ Linux

main ÇÔ¼ö¸¦ Æ÷ÇÔÇÑ 5°³ÀÇ ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ´Ù. ´ë·« À̸§À¸·Î ºÁ¼­ server.c°¡ ½ÃÀÛÁ¡ÀÏ °Í °°´Ù. ÀÌÁ¦ 5¸¦ ÀÔ·ÂÇϸé server.cÀÇ main ÇÔ¼ö À§Ä¡·Î À̵¿ÇÑ´Ù.

category_TOOL
category__14
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.