ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



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

3. CÆÄÀÏ¿¡¼­ ÀÓÀÇÀÇ À§Ä¡·Î À̵¿Çϱâ

3.1. ctags

Tag´Â Äڵ忡¼­ »ç¿ëµÇ´Â ³í¸®ÀûÀÎ ¿ä¼ÒµéÀÇ ÁýÇÕÀ» Á¤·ÄÇÑ °ÍÀ¸·Î, Tag¸¦ ÀÌ¿ëÇϸé CÄڵ带 ½±°Ô ºÐ¼®ÇÒ ¼ö ÀÖ´Ù. CÆÄÀÏ¿¡ »ç¿ëµÇ´Â ÇÔ¼öµéÀÇ ºÏ¸¶Å© ¶ó°í ÀÌÇØÇÒ ¼ö ÀÖ´Ù. Tag´Â ƯÈ÷, ÇÔ¼öÀÇ ¿øÇüÀ» º¸°íÀÚ ÇÒ¶§, À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.

foo()
{
	...
	bar();
	...
}
bar()
{
	...
}
fooÇÔ¼ö¸¦ ºÐ¼®ÇÏ´Ùº¸¸é barÇÔ¼ö°¡ »ç¿ëµÇ°í ÀÖÀ½À» ¾Ë ¼ö Àִµ¥, barÇÔ¼ö°¡ ¾î¶²ÀÏÀ» ÇÏ´ÂÁö ¸íÈ®È÷ ¾Ë°í ½Í´Ù¸é, ÇÔ¼öÀÇ ¿øÇüÀ» È®ÀÎÇØ º¸´Â ¼ö ¹Û¿¡ ¾øÀ» °ÍÀÌ´Ù. ¸¸¾à Tag¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é vimÀÇ Ã£±â ±â´ÉÀ̳ª grepµîÀ» ÀÌ¿ëÇØ¼­ ´«À¸·Î È®ÀÎÇØ¼­ ã¾Æ¾ß ÇÒ °ÍÀÌ´Ù.

tag¸¦ ÀÌ¿ëÇϸé CTRL-]¿Í CTRL-T µÎ°³ÀÇ Å°·Î ÇÔ¼ö¿øÇüÀ¸·ÎÀÇ À̵¿À» °£´ÜÇÏ°Ô ³¡³¾ ¼ö ÀÖ´Ù.

tag±â´ÉÀº ¹°·Ð ±×³É ¾µ ¼ö´Â ¾ø´Ù. ¸ðµç ÇÔ¼ö¿¡ ´ëÇØ¼­ ºÏ¸¶Å© ÀÚ·á°¡ ¸¸µé¾îÁ® ÀÖ¾î¾ß¸¸ »ç¿ë°¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ctags¸í·ÉÀ» »ç¿ëÇϸé CÄÚµåµé¿¡ Æ÷ÇÔµÈ ÇÔ¼öÀÇ ºÏ¸¶Å©¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.

# ctags *.c
¸¸¾à ÇϺεð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç CÄڵ忡 ´ëÇÑ ºÏ¸¶Å©(Å×±×)¸¦ ¸¸µé±â¸¦ ¿øÇÑ´Ù¸é -R ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù.
# ctags -R *.c
ctags¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀºctags »ç¿ëÇϱ⸦ Âü°íÇϱ⠹ٶõ´Ù.

3.2. Mark

mark´Â tag¿Í ºñ½ÁÇѸéÀÌÀÖ´Ù. ´Ù¸¥ Á¡À̶ó¸é ÀÚ½ÅÀÌ À§Ä¡ÇÒ ÁöÁ¡À» ´Éµ¿ÀûÀ¸·Î mark(Ç¥½Ã)ÇÒ ¼ö ÀÖ°í, µ¿ÀÏÇÑ ÆÄÀÏ ³»¿¡¼­¸¸ À̵¿ÀÌ °¡´ÉÇÏ´Ù´Â Á¡ÀÌ´Ù.

ÀÚÁÖ Âü°íÇØ¾ß ÇÏ´Â ÇÔ¼ö³ª ÄÚµå¶óÀÎÀº Ç¥½Ã¸¦ ÇØµÎ°í ÇÊ¿äÇÒ ¶§ ¸¶´Ù°¡ ÇѹøÀÇ ´ÜÃàŰ·Î ã¾Æ°¥ ¼ö ÀÖµµ·Ï ÇÑ´Ù¸é ¸Å¿ì Æí¸®ÇÒ °ÍÀÌ´Ù. vimÀº »ç¿ëÀÚ°¡ Ç¥½ÃÇÑ ¶óÀÎÀ» ±â¾ïÇϰí ÀÖ´Ù°¡ ¿äûÇÒ °æ¿ì ¹Ù·Î À̵¿½ÃÄÑÁÖ´Â Mark ±â´ÉÀ» Á¦°øÇÑ´Ù. ¿ª½Ã ÀÏÁ¾ÀÇ ºÏ¸¶Å© ±â´ÉÀ̶ó°í º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

100 foo()
101 {
102	int x,y;
103	x = 0;
104	y = 1;
105	x++;
106	y++;
107	if (x != y)
108		x=y;
109	y=x
110 }

Áö±Ý ´ç½ÅÀº fooÇÔ¼ö¿¡¼­ x++ ¶óÀÎÀ» ÆíÁýÇϰí ÀÖ´Ù. ±×·¯´Ù°¡ fooÇÔ¼ö¸¦ ÂüÁ¶ÇÏ´Â ´Ù¸¥ ÇÔ¼ö¸¦ Àӽ÷ΠȮÀÎÇØ¾ß ÇÏ´Â »óȲÀÌ »ý°å´Ù°í °¡Á¤ÇØ º¸ÀÚ. ´Ù¸¥ ÇÔ¼öÀÇ È®ÀÎÀÌ ³¡³µ´Ù¸é, ºÐ¸í ´ç½ÅÀº ¿ø·¡ ÀÛ¾÷ÇÏ´ø À§Ä¡ÀÎ x++·Î µ¹¾Æ¿À±æ ¿øÇÒ °ÍÀÌ´Ù. ´ç½ÅÀÇ ±â¾ï·ÂÀÌ ¸Å¿ì ÁÁ´Ù¸é 105¶óÀÎÀ» ±â¾ïÇØ µÎ°í ÀÖ´Ù°¡ 105G۸¦ ÀÔ·ÂÇØ¼­ À̵¿ÇÒ ¼ö ÀÖ±ä ÇϰÚÁö¸¸ ±×¸® ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù. 105¶óÀο¡¼­ ma·Î ÇöÀçÀ§Ä¡¸¦ ±â¾ï½ÃŰ´Ï ´ÙÀ½ ±â¾ïµÈ À§Ä¡·Î °¡°íÀÚ ÇÒ¶§ 'a·Î À̵¿ÇÏ´Â°Ô ÈξÀ Æí¸®ÇÏ´Ù. ma´Â ÇöÀç À§Ä¡¸¦ a·Î Ç¥½ÃÇϰڴٴ ¶æÀÌ´Ù. mb·Î Çß´Ù¸é b·Î Ç¥½ÃÇϰڴٶó´Â ¶æÀ̰í 'b·Î À§Ä¡¸¦ ã¾Æ°¥ ¼ö ÀÖ´Ù.

Ç¥½Ã¿¡ »ç¿ëµÇ´Â À̸§Àº ´ÜÀÏ ¹®ÀÚ¿©¾ß ÇÑ´Ù. ±×¸®°í ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϹǷÎ, ÇϳªÀÇ ÆÄÀÏ¿¡¼­ ¾à 50°³ Á¤µµÀÇ À§Ä¡¸¦ ±â¾ï½Ãų ¼ö ÀÖ´Ù. ±×·¯³ª Àΰ£ÀÇ ±â¾ïÀÇ ÇѰè·Î º¸ÅëÀº 2-3°³ Á¤µµÀÇ À§Ä¡¸¸ ±â¾ï½ÃŰ°í »ç¿ëÇϸç, ÀÌÁ¤µµ·Îµµ ÃæºÐÈ÷ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.

3.3. gd Ű

¾Æ·¡¿Í °°Àº Äڵ带 ÆíÁýÇÑ´Ù°í °¡Á¤Çغ¸ÀÚ.

struct X x;

void foo()
{
	struct Y y;
	struct Z z;
	...
	/* Lost of lines later */
	x.bar();
	y.bar();
	z.bar();
}
ÄÚµùÀ» ÇÏ´Ùº¸¸é x,y,zÀÌ µµ´ëü ¾î¶»°Ô ¼±¾ðµÈ°ÇÁö¸¦ ±î¸Ô´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ÀÌ·²°æ¿ì x,yÀÇ¿¡¼­ gd۸¦ ÀÔ·ÂÇÏ¸é ¼±¾ðµÈ À§Ä¡·Î ¹Ù·Î À̵¿ÇÑ´Ù. gD´Â Àü¿ª¿¡¼­ ¼±¾ðµÈ À§Ä¡¸¦ ã¾Æ¼­ À̵¿ÇÑ´Ù. ÀÏ´Ü À̵¿ÇÑ ´ÙÀ½¿¡´Â ¿ø·¡ ÀÚ¸®·Î µ¹¾Æ¿À´Â°Ô Á» ºÒÆíÇÒ ¼ö Àִµ¥, 3.2절¿Í ÇÔ²² »ç¿ëÇÏ¸é ºÒÆíÇÔÀ» ÇØ¼ÒÇÒ ¼ö ÀÖ´Ù.

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