¿ø¹®:http://www.linuxnewbie.org/nhf/intel/tools/customize_vim3.html

ÀúÀÚ: Danny "Strike" DiPaolo

³¯Â¥:

Á¦¸ñ:³»°Ô ²À ¸Â´Â vim ȯ°æ ¸¸µé±â
 

ÀÌ ±ÛÀº ´ÙÀ½°ú °°Àº ŸÀÔÀÇ ¸®´ª½º »ç¿ëÀÚ¸¦ À§ÇØ ÀÛ¼ºµÇ¾ú´Ù:

¾Õ¿¡¼­ ¸»ÇÑ ´ë·Î, ³ª´Â ÀÌ ±ÛÀ» Àаí ÀÖ´Â ¿©·¯ºÐÀÌ À§¿¡ ¾ð±ÞµÈ ŸÀÔ Áß Çϳª¿¡ ¼ÓÇÑ´Ù°í °¡Á¤ÇÒ °ÍÀÌ´Ù. ³ª ÀÚ½ÅÀº À§¿¡¼­ ¾ð±ÞÇÑ ¼¼ ŸÀÔ¿¡ ¸ðµÎ ÇØ´çÇÑ´Ù. ÀÌ·± »ç½ÇÀ» ¿°µÎ¿¡ µÎ°í, ÀÌ ±ÛÀÌ ¿©·¯ºÐÀÇ ÇÊ¿ä¿¡ Àû¿ëµÇÁö ¾ÊÀ» °ÍÀ̶ó´Â »ý°¢À» ¹ö¸®µµ·Ï Ç϶ó.

ÇÑ °¡Áö ´õ Ãß°¡ÇÒ °¡Á¤Àº, ÀÌ ±ÛÀ» Àаí ÀÖ´Â ¿©·¯ºÐÀº Àû¾îµµ vim ÆíÁý±â¿¡ »ó´çÈ÷ Àͼ÷ÇÑ »ç¶÷ÀÏ °ÍÀ̶ó´Â °ÍÀÌ´Ù. ÀÌ NHF¿¡¼­ ¾ð±ÞÇÏ°í ÀÖ´Â config ÆÄÀÏÀÇ Çü½Ä¿¡ ´ëÇÑ ³»¿ëÀÌ ¾ó¸¶³ª ´Ù¸¦Áö´Â ¸ð¸£°ÚÁö¸¸ ³ª´Â ÇöÀç 5.6.11À» »ç¿ëÇÏ°í ÀÖ´Ù(5.7ÀÌ °¡Àå ÃֽŠ¹öÀüÀÎ °ÍÀ¸·Î ¾Ë°í ÀÖ´Ù). ¸¸ÀÏ ¿©·¯ºÐÀÌ °¡Áö°í ÀÖ´Â vimÀÇ ¹öÀüÀÌ È®½ÇÇÏÁö ¾Ê´Ù¸é, http://www.vim.orgÀ¸·Î °¡¼­ »õ·Î¿î ¹öÀüÀ» °¡Á® ¿À¸é µÈ´Ù. ÀÌ ±ÛÀ» Àаí ÀÖ´Â ¿©·¯ºÐÀº vimÀÌ ´ÜÀÏ ¸ðµå·Î ÀÛµ¿ÇÏ´Â ÆíÁý±â°¡ ¾Æ´Ï¶ó´Â Á¡À» ¹Ýµå½Ã ¾Ë°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ±×¸®°í Àû¾îµµ vim ÇÁ·ÒÇÁÆ®¿¡¼­ ¸í·ÉÀ» ÀÔ·Â(ÄÝ·Ð[:], ³»¿ëÀ» ÀúÀåÇÏ°í Á¾·áÇÒ ¶§ ¾²´Â :wq°ú °°Àº ¸í·ÉÀÌ ÀԷµǴ ÇÁ·ÒÇÁÆ®) ÇÒ ÁÙ ¾Ë°í ÀÖ¾î¾ß ÇÒ »Ó¸¸ ¾Æ´Ï¶ó ¸í·É ¸ðµå¿Í ÀÔ·Â ¸ðµå ¾çÂÊ¿¡ Àͼ÷Çؾ߸¸ ÇÑ´Ù

---±¸¼º---

ÁÖÀÇ- ÀÌ ºÎºÐ¿¡¼­ ³»°¡ ±ÇÀåÇÏ´Â °ÍÀº ¸» ±×´ë·Î ±ÇÀåÇÏ´Â °Í¿¡ ±×Ä£´Ù. ³»°¡ ±ÇÀåÇÏ´Â ¹æ¹ýº¸´Ù ´õ Àß ±¸¼ºÇÏ´Â ¹æ¹ýµéÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ¿©±â¼­ ±ÇÀåÇÏ´Â ¹æ¹ýÀº ³»°¡ °¡Áø ³ª¸ÓÁö µð·ºÅ丮 ±¸Á¶¿Í ²Ï Àß ¾î¿ï¸®±â ¶§¹®¿¡ ³ª´Â ÀÌ·± ¹æ¹ýÀ» ÁÁ¾ÆÇÑ´Ù.

¹«¾ùº¸´Ùµµ, ±× À§Ä¡¸¦ ¸¶À½´ë·Î Á¤ÇÒ ¼ö ¾ø´Â ÆÄÀÏÀÌ ÀÖ´Ù. ¿©·¯ºÐÀÇ .vimrc ÆÄÀÏÀÌ´Ù. ÀÌ ÆÄÀÏÀº ¹Ýµå½Ã ¿©·¯ºÐÀÇ È¨ µð·ºÅ丮¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ ÆÄÀÏÀº ¶ÇÇÑ ¿©·¯ºÐÀÌ vim ȯ°æÀ» Á¶Á¤ÇÒ ¶§ °¡Àå ÇÙ½ÉÀÌ µÇ´Â ÆÄÀÏÀÌ´Ù. ±×·¡¼­ ³ª´Â ÀÌ Á¡À» ¸»ÇÏÁö ¾Ê°í ³Ñ¾î°¥ ¼ö ¾ø´Ù – .vimrcÀº Áß¿äÇÑ ÆÄÀÏÀÌ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÇ vim ȯ°æÀ» À¯ÁöÇÏ°í ½Í´Ù¸é, Àü¿ø °ø±ÞÀÌ Â÷´ÜµÇ¾î¼­ ¿©·¯ºÐÀÇ ½Ã½ºÅÛÀÌ ¸Á°¡Áö´Â °æ¿ì³ª ¾²°í ÀÖ´Â vim ȯ°æÀ» ´Ù¸¥ ½Ã½ºÅÛÀ¸·Î ¿Å±â´Â °æ¿ì¿¡ ´ëºñÇؼ­ ÇöÀçÀÇ vim ȯ°æÀ» ´Ù¸¥ °÷¿¡ ¹é¾÷ÇÒ °ÍÀ» ±ÇÇÑ´Ù.

ÇÏÁö¸¸, .vimrc ÀÌ¿Ü¿¡µµ ¿ì¸®°¡ ÀÌ¿ëÇÏ°Ô µÉ ¼³Á¤ ÆÄÀϵéÀÌ ÀÖ´Ù. ÀÌ ÆÄÀϵéÀº ºü¸£°Ô ºÒ¾î³ª±â ½ÃÀÛÇϴµ¥, ³ª´Â º¸ÀÌÁö ¾ÊÀº ¸¹Àº ´å-ÆÄÀÏ(.À¸·Î ½ÃÀÛÇÏ´Â ÆÄÀϵé)À» ³» Ȩ µð·ºÅ丮¿¡ µÎ´Â °ÍÀ» ÁÁ¾ÆÇÏÁö ¾Ê´Â´Ù ÀÌ¹Ì ³» Ȩ µð·ºÅ丮¿¡´Â ¸¹Àº ´å µð·ºÅ丮µéÀÌ ÀÖ´Ù - ±×·¡¼­ ³»°¡ ÃëÇÑ ¹æ¹ýÀº .vimrc¸¦  Á¦¿ÜÇÑ ³ª¸ÓÁö vim ¼³Á¤ ÆÄÀϵéÀ» ´ã¾ÆµÎ´Â µð·ºÅ丮¸¦ µû·Î ¸¸µå´Â °ÍÀ̾ú´Ù.

³ª´Â ÀÌ µð·ºÅ丮¸¦ .vim-files¶ó°í À̸§ ºÙ¿´´Ù. ÀÌ µð·ºÅ丮ÀÇ ³»¿ëÀ» Àß ³ªÅ¸³»ÁÖ´Â À̸§À̸鼭 ±×Àú °£´ÜÇÏ°Ô ls ¸í·ÉÀ» ÇÒ ¶§´Â ³ªÅ¸³ªÁö ¾Ê±â ¶§¹®¿¡ ÀÌ À̸§À» ¼±ÅÃÇß´Ù(ÀÌ°Í°ú °°Àº ¼³Á¤°ú °ü·ÃµÈ ÆÄÀϵéÀº ù¹ø° À§Ä¡¿¡ ¿Í¼­´Â ¾È µÈ´Ù). ³»°¡ ¾ð±ÞÇÏ°Ô µÉ ¸ðµç ´Ù¸¥ ÆÄÀϵéÀº ÀÌ µð·ºÅ丮 ¶Ç´Â ÀÌ µð·ºÅ丮ÀÇ ÇÏÀ§ µð·ºÅ丮¿¡ ÀÖ°Ô µÉ °ÍÀÌ´Ù.

ÀÌ µð·ºÅ丮¸¦ ¸¸µé±â À§Çؼ­´Â ´ÙÀ½ÀÇ ¸í·ÉÀ» ³»¸®¸é µÈ´Ù:
cd
mkdir .vim-files

óÀ½¿¡ ³»¸° cd ¸í·ÉÀ¸·Î ¿©·¯ºÐÀÇ È¨ µð·ºÅ丮·Î °¡°Ô µÇ°í, µÎ ¹ø° ¸í·ÉÀÌ ½ÇÁ¦·Î µð·ºÅ丮¸¦ ¸¸µç´Ù.

ÀÌ·¸°Ô Çؼ­ µð·ºÅ丮°¡ ¸¸µé¾îÁö¸é, .vimrcÀ» ÆÄ°í µé¾î¼­ ¸î °¡Áö Áß¿äÇÑ ¼³Á¤ ³»¿ëÀ» °øºÎÇÒ Áغñ°¡ µÈ °ÍÀÌ´Ù!

--- ~/.vimrc ÆÄÀÏ---


º»°ÝÀûÀÎ ³»¿ë¿¡ µé¾î°¡±â Àü¿¡, vimÀ» ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸íÀ» ÇÏ°íÀÚ ÇÑ´Ù. ±×·¯±â À§Çؼ­, Å͹̳ΠÀ©µµ¿ì¿¡¼­ vim ¼¼¼ÇÀ» ½ÃÀÛÇ϶ó. ÄÝ·Ð ÇÁ·ÒÇÁÆ® »ó¿¡¼­ "set "(½ºÆäÀ̽º°¡ Æ÷ÇԵǰÔ)À» ÀÔ·ÂÇÏ°í <TAB>À» ´©¸£µµ·Ï Ç϶ó. ¸¸ÀÏ ¿©·¯ºÐÀÌ Àü¿¡´Â ÀÌ·± Ư¼ºÀÌ ÀÖ´Â ÁÙ ¸ô¶ú´Ù¸é, vimÀº ÆÄÀÏ À̸§°ú °°Àº °ÍÀ» Æ÷ÇÔÇؼ­ ¸ðµç ¸í·É¿¡ ´ëÇؼ­ ÀÚµ¿À¸·Î ÅÇÀ» ä¿ö ÁÙ °ÍÀÌ´Ù. ÇÏÁö¸¸, ¿©·¯ºÐÀº "set all"°ú °°Àº °ÍÀ» ½ÇÇàÇØ¾ß ÇÑ´Ù(ÀÌ°ÍÀÌ ¹Ù·Î ³»°¡ ½ÇÇàÇÑ °ÍÀÌ´Ù). <TAB>À» ¹Ýº¹Çؼ­ ´­·¯¶ó. Àá±ñ µ¿¾È  <TAB>À» ´©¸£°í ÀÖ¾î¶ó. ÀÌ ¶§ º¸ÀÌ´Â °ÍÀº vimÀÇ È¯°æÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¸ðµç ¿É¼ÇµéÀÌ´Ù. À̵é Áß ÀϺδ º¸Åë ¸í¹éÇÑ Àǹ̸¦ °¡Áö°í ÀÖ°í Àû´çÇÑ µðÆúÆ® °ªÀ» °¡Áö°í ÀÖ´Ù. ¶Ç À̵é Áß ÀϺδ »ç¿ëÀÚ°¡ Àͼ÷ÇØÁ® ÀÖ´Â °ÍÀÌ ¾î¶² °ÍÀ̳Ŀ¡ ¸¹ÀÌ ÀÇÁ¸ÇÑ´Ù. À̵é Áß ÀϺδ ¸Å¿ì ÀÌ»óÇÑ °Íµµ Àִµ¥ ÀϹÝÀûÀÎ °æ¿ì¿¡´Â ÀüÇô ½Å°æ ¾²Áö ¾Ê¾Æµµ µÈ´Ù. ¾Æ¹«Æ°, ¸¹Àº ¿É¼ÇµéÀÌ ÀÖ´Ù´Â °ÍÀº Ʋ¸²ÀÌ ¾ø´Ù.

vim ¼¼¼ÇÀ» ¿Ïº®ÇÏ°Ô Á¦¾îÇÏ°í ½Í¾îÇÏ´Â ¿©·¯ºÐ¿¡°Ô °è¼ÓÇϱâ Àü¿¡ Çغ¸¶ó°í ±ÇÇÏ°í ½ÍÀº °ÍÀÌ ÀÖ´Ù. À§¿¡¼­ ³»°¡ °£·«ÇÏ°Ô ¾ð±ÞÇÑ °úÁ¤À» ½ÇÁ¦·Î ¿©·¯ºÐ ÀÚ½ÅÀÌ Çغ¸µµ·Ï Ç϶ó. õõÈ÷ °¢°¢ÀÇ ¿É¼ÇÀÇ ³»¿ëÀ» ÀÐ°í ¿©·¯ºÐÀÇ ¼³Á¤¿¡ »ç¿ëÇÒ ¸¸ÇÑ °ÍÀ̶ó°í »ý°¢µÇ´Â ¿É¼ÇÀº ¸Þ¸ðÇϵµ·Ï Ç϶ó. ¹«¾ùÀ» ¶æÇÏ´Â Áö Àß ¸ð¸£´Â ¿É¼Ç('set cscopeprg' ÀÌ ¶æÇÏ´Â °ÍÀÌ ¹«¾ùÀΰ¡?)¿¡ ´ëÇؼ­µµ ¸¶Âù°¡Áö·Î ¸Þ¸ðÇ϶ó. ÀÌ·¸°Ô Çؼ­ ¿É¼ÇµéÀÇ ¸®½ºÆ®°¡ ¿Ï¼ºµÇ¸é, ´Ù½Ã ÄÝ·Ð ÇÁ·ÒÇÁÆ®·Î µ¹¾Æ°¡¼­ ":h "¸¦ ÀÔ·ÂÇÏ°í´Â ¿©·¯ºÐÀÌ ±Ã±ÝÇØ ÇÏ´Â ¿É¼ÇÀ» ÀÔ·ÂÇ϶ó. ":h"´Â vim »óÀÇ ¿Â¶óÀÎ µµ¿ò¸»ÀÌ´Ù. ÀÌ ¿Â¶óÀÎ µµ¿ò¸»Àº ¾çÀûÀ¸·Î ¸Å¿ì ¹æ´ëÇؼ­ ÀÌ µµ¿ò¸» ÆÄÀÏÀ» ÀÚ¼¼È÷ »ìÆì º¼ ¸¸ÇÏ´Ù. ¹Ýµå½Ã ¿©·¯ºÐÀÌ °ü½É ÀÖ´Â ¼³Á¤°ú ±× ¼³Á¤¿¡ ÇÊ¿äÇÑ Æ¯Á¤ °ª¿¡ ´ëÇÑ ¸®½ºÆ®¸¦ °¡Áö°í ÀÖµµ·Ï Ç϶ó. ³» ÀÚ½ÅÀÇ .vimrc¸¦ ÀÛ¼ºÇÒ ¶§ ÇÑ ÀÏ Áß °¡Àå ÇÙ½ÉÀûÀÎ ÀÏÀÌ ¹Ù·Î ÀÌ°ÍÀ̸ç ÀÌ·¸°Ô ¾Ö¾´ º¸¶÷ÀÌ ÀÖ´Ù.

¹°·Ð, ÀÌ·¸°Ô ÀÛ¼ºµÈ ¸®½ºÆ®¿¡ ÀÖ´Â °ÍµéÀº ¼³Á¤µÇ¾îÁú ¿É¼ÇÀÌ´Ù. ÀÌ NHF¿¡¼­´Â ¸®½ºÆ®¿¡ ÀÖ´Â ¿É¼ÇÀ» ¼³Á¤ÇÏ´Â ÀϺ¸´Ù Á¶±Ý ´õ ¸¹Àº °ÍÀ» ´Ù·ç¾î¼­ vimÀ» º¸´Ù ´õ °­·ÂÇÑ µµ±¸·Î ¸¸µé°íÀÚ ÇÑ´Ù.

ÀÌÁ¦, ÀÌ ±ÛÀ» Àаí ÀÖ´Â ¿©·¯ºÐÀÌ ³»°¡ ¾Õ¼­ ¾ð±ÞÇß´ø ÀÌ NHF¸¦ Àоî¾ß¸¸ ÇÏ´Â ¼¼ °¡Áö ŸÀÔ¿¡ ¼ÓÇÏ´Â »ç¶÷À̸鼭 Àû¾îµµ ÀÌÀü¿¡ .vimrc¿Í °°Àº ¼³Á¤ ÆÄÀÏ¿¡ °üÇÑ ¾à°£ÀÇ °æÇèÀ» °¡Áö°í ÀÖ´Ù´Â °ÍÀ» È®½ÅÇÑ´Ù. ÇÑ °¡Áö .vimrc°¡ ¼³Á¤ ÆÄÀÏ°ú ¾à°£ ´Ù¸¥ °ÍÀº ±âº»ÀûÀ¸·Î .vimrc´Â ½ºÅ©¸³Æ®·Î ¿©°ÜÁø´Ù´Â Á¡ÀÌ´Ù. ¼ÖÁ÷È÷ ¸»Çؼ­, ³»°¡ vimÀ» ½ÃÀÛÇÒ ¶§¸¶´Ù 40ÁÙÀÇ ¸í·ÉÀ» ¼ÕÀ¸·Î ÀÔ·ÂÇÏ·Á°í ÇÑ´Ù¸é, ÄÄÇ»ÅÍ¿¡¼­ ³» .vimrc ÆÄÀÏÀ» »èÁ¦Çصµ µÈ´Ù. ÇÏÁö¸¸, ½ÇÁ¦·Î ±×·± ÀÏÀº ÀϾÁö ¾Ê´Â´Ù. ¾î·µç, vimÀÌ ´Ü¼øÇÏ°Ô ¿©·¯ºÐÀÇ ¸ðµç .vimrc ¸í·ÉÀÌ ¼ÕÀ¸·Î Á÷Á¢ ÀÔ·ÂµÈ °Íó·³ ¿©±â°í ½ÃÀÛÇÒ ¶§ ¼öÇàÇÑ´Ù´Â »ç½ÇÀº ³»°¡ ¾Õ¼­ ¾ð±ÞÇß´ø Ư¼º(¸í·É ÀÚµ¿ ÅÇ ¿Ï¼º) ¶§¹®¿¡ ¿ì¸®¿¡°Ô µµ¿òÀÌ µÈ´Ù. ÀÌ Æ¯¼ºÀº vimÀÌ Á¦°øÇÏ´Â ¸Å¿ì ¹æ´ëÇÑ ¿Â¶óÀÎ µµ¿ò¸»°ú ÇÔ²² ³»°¡ ¿©±â¼­ º¸¿©ÁÖ´Â °ÍÀ» ÀÌÇØÇÒ ¼ö ÀÖ°Ô ÇØÁÖ°í ¿©·¯ºÐÀÌ °ü½ÉÀ» °¡Áö°í ÀÖ´Â ¸í·ÉÀ» Ãß°¡ÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù.

¿©·¯ºÐÀÌ ¹«½¼ »ý°¢À» ÇÏ°í ÀÖ´ÂÁö ³ª´Â ¾Ë°í ÀÖ´Ù ¿Ö »¡¸® º»·ÐÀ¸·Î µé¾î°¡¼­ vim ȯ°æ ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ À̾߱âÇÏÁö ¾Ê´Â °É±î ÇÏ°í »ý°¢ÇÏ°í ÀÖÁö ¾ÊÀº°¡? ¸Â¾Ò´Ù°í? ÁÁ´Ù. ³ªµµ ÀÌÁ¦ ±×·¯°í ½Í´Ù. ³»°¡ ÇöÀç »ç¿ëÇÏ°í ÀÖ´Â ~/.vimrc ÆÄÀÏÀ» º¸¿©ÁÖ±â Àü¿¡ ÇÑ °¡Áö ¾ð±ÞÇÏ°í ³Ñ¾î°¡¾ß ÇÒ °ÍÀÌ ÀÖ´Ù. ±×°ÍÀº ¹Ù·Î Ä¿¸ÇÆ® ¹®ÀÚÀÌ´Ù. ~/.vimrc ÆÄÀÏ ¾È¿¡ ÀÖ´Â Ä¿¸ÇÆ® ¹®ÀÚ´Â ÀÌÁß µû¿ÈÇ¥(")ÀÌ´Ù. ÇϳªÀÇ ¶óÀÎ »ó¿¡¼­ ÀÌ ¹®ÀÚ ´ÙÀ½¿¡ ¿À´Â ¸ðµç ¹®ÀÚµéÀº Ä¿¸ÇÆ®·Î °£ÁÖµÇ¾î ½ºÅ©¸³Æ®ÀÇ ÀϺΰ¡ ¾Æ´Ñ °ÍÀ¸·Î ÀνĵȴÙ. ~/.vimrc ÆÄÀÏ¿¡´Â ºí·Ï Ä¿¸ÇÆ®°¡ ¾ø´Ù.

ÁÁ´Ù, ÀÌÁ¦ ³ªÀÇ »ç¶û½º·¯¿î ~/.vimrc ÆÄÀÏÀ» °ø°³ÇÑ´Ù:

----------------------------

" Formatting
set tabstop=4                   " tabsÀº ½ºÆäÀ̽º 4Ä­ÀÌ´Ù 
set bs=2                        " backspace over everything in
insert mode
set smartindent                 " C-style·Î 
 
" Mouse stuff
set mousehide                   " ¹®ÀÚ°¡ ÀÔ·ÂµÈ ´ÙÀ½¿¡´Â ¸¶¿ì½º¸¦ °¨Ãá´Ù
set mousefocus                  " ÀÌ°ÍÀ» À§ÇÑ ½ÇÁ¦ ÀÌÀ¯´Â ¾øÀ½
set mouse=a                     " ¸ðµç ¸ðµå¿¡¼­ ¸¶¿ì½º°¡ ÀÖÀ½
set mousem=popup              " ¸Þ´º Æ˾÷¿¡´Â ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°
Shift-left extends selection      
 
" Other stuff
set autowrite                     " make¿Í shell ¸í·É µîÀ» ÀÛ¼º
set     ruler                     " ruler Ç¥½ÃµÇ°Ô ÇÔ
set nohlsearch                   "°Ë»ö Ç׸ñÀÌ ³ªÅ¸³ª¸é ÇÏÀ϶óÀÌÆ®ÇÔ
annoying
set nocompatible                " vi ȣȯ¼º(compatibility)Àº ¾àÇÔ
 
" ¸í·É ¶óÀÎ ¿Ï¼º¿¡¼­´Â È®ÀåÀÚ ¹«½Ã
set
suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc
 
" ÇöÀç ÆÄÀÏ¿¡¼­ ispellÀ» ½ÇÇà
" map #fi :w:!ispell %:e %
" 
" ¸ÅÅ©·ÎµÈ Å°°¡ ¾î¶² °ÍÀÎÁö È®½ÅÇÒ ¼ö ¾ø°Å³ª ´ÜÁö ¿¬¼ÓµÈ Å°°¡ ¸í½ÃµÈ °Í
 
" ¸ðµç auto-commands¸¦ »èÁ¦ÇÑ´Ù. ÀÌ·¸°Ô Çؼ­ .vimrc ÆÄÀÏÀÌ ÇÑ ¹ø ÀÌ»ó 
" source µÈ °æ¿ì¿¡ autocommands°¡ µÎ ¹ø Àû¿ëµÇ´Â °ÍÀ» ¹æÁöÇÑ´Ù..
autocmd!
 
" LaTeX autocmds
autocmd BufRead                 *.tex   source ~/.vim-files/.vimrc.latex
autocmd BufNewFile              *.tex   source ~/.vim-files/.vimrc.latex
" C autocmds
autocmd BufRead                 *.c             source
~/.vim-files/.vimrc.c
autocmd BufNewFile              *.c             source
~/.vim-files/.vimrc.c
" asm autocmds
autocmd BufRead                 *.s,*.S,*.asm   source
~/.vim-files/.vimrc.asm
autocmd BufNewFile              *.s,*.S,*.asm   0r
~/.vim-files/skeletons/skel.asm      
autocmd BufNewFile              *.s,*.S,*.asm   source
~/.vim-files/.vimrc.asm
" HTML autocmds
autocmd BufRead                 *.htm,*.html    source
~/.vim-files/.vimrc.html
autocmd BufNewFile              *.htm,*.html    0r
~/.vim-files/skeletons/skel.html
autocmd BufNewFile              *.htm,*.html    source
~/.vim-files/.vimrc.html
" Perl autocmds
autocmd BufRead                 *.pl    source  ~/.vim-files/.vimrc.perl
autocmd BufNewFile              *.pl    0r ~/.vim-files/skeletons/skel.pl
autocmd BufNewFile              *.pl    source ~/.vim-files/.vimrc.perl
autocmd BufWrite                *.pl    !chmod +x %
" Java autocmds
autocmd BufRead                 *.java  source ~/.vim-files/.vimrc.java
autocmd BufNewFile              *.java  source ~/.vim-files/.vimrc.java
 
" ´ÙÀ½Àº Vim ¹öÀü 5.0 À̻󿡸¸ Àû¿ëµÈ´Ù
if version >= 500
 
if has("terminfo")
  set t_Co=8
  set t_Sf=[3%p1%dm
  set t_Sb=[4%p1%dm
else
  set t_Co=8
  set t_Sf=[3%dm
  set t_Sb=[4%dm
endif
 
endif
 
" ¹°·Ð, Áß¿äÇÑ ¹®¹ýÀº ÇÏÀ϶óÀÌÆ®µÈ´Ù.
" if °ü·ÃµÈ °ÍÀÌ À§¿¡ ÀÖÀ¸¹Ç·Î ÀÌ°ÍÀº °¡Àå ³ªÁß¿¡ ½ÇÇàµÈ´Ù.
syntax on

-----------------------------------------------------

½ÇÁ¦·Î ÀÌ°ÍÀº ¿¹ºñÀûÀÎ ¹öÀüÀÌ´Ù. ÇÁ·Î±×·¥ Äڵ带 ÀÛ¼ºÇÒ ¶§ »ç¿ëÇÏ´Â ¾ð¾î¿¡ °üÇÑ »çÇ×À» ¾ÆÁ÷ Çϳªµµ ´õÇØ ³ÖÁö ¾Ê¾Ò±â ¶§¹®¿¡ ±× ºÎºÐÀ» Ãß°¡Çϸé ÇöÀçÀÇ ³»¿ëº¸´Ù ÈξÀ ´õ ±æÀÌ°¡ ´Ã¾î³¯ °ÍÀÌ´Ù(ÀÌ ±ÛÀ» Àаí ÀÖ´Â ´ëºÎºÐÀÇ µ¶ÀÚµéÀº ÀÌ¹Ì ´«Ä¡Ã«°ÚÁö¸¸, C++°¡ ºüÁ® ÀÖ´Ù).

³ªÀÇ ~/.vimrc ÆÄÀÏ¿¡¼­´Â Ä¿¸ÇÆ®¸¦ ²Ï ÀÚÀ¯ºÐ¹æÇÏ°Ô ¾²°í Àִµ¥, ÀÌ´Â ³»°¡ ¾î¶² ¿É¼ÇÀ» ¼³Á¤ÇÑ ´ÙÀ½ ã¾Æ º» ÈÄ¿¡´Â Àؾî¹ö¸®±â ¶§¹®ÀÌ´Ù. ±×·¡¼­, ³ª´Â ¼³Á¤ ¿É¼ÇµéÀÌ ÇÏ´Â ±â´ÉÀ» ¼³¸íÇÏ´Â Ä¿¸ÇÆ®¸¦ ºÙ¿© ³õ¾Æ¼­, ¾î¶² ¶óÀεéÀ» Áö¿ö¹ö¸®°í ½ÍÀ» ¶§, ±× ¶óÀÎÀ» Áö¿ö¹ö¸²À¸·Î½á ¾î¶² ±â´ÉµéÀÌ »èÁ¦µÇ´ÂÁö ½±°Ô ¾Ë ¼ö ÀÖµµ·Ï ÇÏ°í ÀÖ´Ù. ¼³Á¤ ¿É¼ÇÀ» ¸¶±¸ÀâÀÌ·Î ´Ã¾î ³õ´Â °ÍÀº ´ë½Å À¯»çÇÑ ³»¿ëÀ» °°Àº ºí·Ï¿¡ ´ã¾Æ¼­ ¸î °³ÀÇ ³í¸®ÀûÀÎ ºí·ÏÀ¸·Î ³ª´©´Â °ÍÀº ÆÄÀÏÀ» °ü¸®Çϱâ ÆíÇÏ°Ô ÇØ ÁØ´Ù.

¿É¼ÇµéÀ» Çѹø Äf¾î º½À¸·Î½á ³»°¡ vimÀ» ¾î¶² ÀÛ¾÷ ȯ°æ¿¡¼­ »ç¿ëÇÏ°í ½Í¾îÇÏ´ÂÁö ¾Ë ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ¼ÖÁ÷È÷ ¸»Çؼ­, ¿ì¸®°¡ ´Ù·ç°Ô µÉ vimÀÇ ¿É¼Ç ¼³Á¤Àº Àç¹ÌÀְųª ¾µ¸ð°¡ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ±×·¯¹Ç·Î, ³»°¡ ±× ³»¿ëµéÀ» ¾ó¹ö¹«·Á ³Ñ°Ü ¹ö¸®´õ¶óµµ ÀÌÇØÇØ Áֱ⠹ٶõ´Ù. °Ô´Ù°¡, ¼³Á¤ÇÒ »õ·Î¿î ¿É¼ÇÀ» ã°í ±×°ÍÀ» ¼³Á¤ÇÏ´Â ÁÁÀº ¹æ¹ýÀ» ¾Õ¼­ ¼³¸íÇßÀ¸´Ï ¸»ÀÌ´Ù.

³»°¡ »ç¿ëÇÏ°í ÀÖ´Â .vimrc ÆÄÀÏ¿¡¼­ Á¤¸» Áß¿äÇÑ ºÎºÐÀº autocmd ¼½¼ÇÀÌ´Ù. ¿©·¯ºÐÀº ¾Æ¸¶µµ "autocmd°¡ ¹¹Áö¿ä?"¶ó°í ¹°À»Áö ¸ð¸¥´Ù. ±Û½ê, À绡¸® ":h autocmd"(±â¾ïÇØ ³õµµ·Ï Ç϶ó. ¿ì¸®ÀÇ .vimrc ÆÄÀÏ¿¡ ÀÖ´Â ¸ðµç ¸í·ÉÀº ":h <command>"À̶õ ¸í·ÉÀ¸·Î ¿Â¶óÀÎ µµ¿ò¸»À» ¾òÀ» ¼ö ÀÖ´Ù)À» ÇØ º¸¸é ´ÙÀ½°ú °°Àº autocmd.txt µµ¿ò¸» ÆÄÀÏÀÌ ³ªÅ¸³¯ °ÍÀÌ´Ù:

--------
¸í·ÉµéÀÌ ÀÚµ¿ÀûÀ¸·Î ¼öÇàµÇµµ·Ï ¸í½ÃÇؼ­ ÆÄÀÏÀ» Àаųª ÀûÀ» ¶§, ¹öÆÛ³ª À©µµ¿ì¿¡ µé¾î¿À°Å³ª ³ª°¥ ¶§, VimÀ» Á¾·áÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, *.c¿Í ÀÏÄ¡ÇÏ´Â ÆÄÀÏÀ» À§ÇÑ 'cindent' ¿É¼ÇÀ» ¼³Á¤Çϱâ À§ÇØ autocommand¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¶ÇÇÑ autocommands¸¦ ÀÌ¿ëÇؼ­ ¾ÐÃàµÈ ÆÄÀÏÀ» ÆíÁýÇÑ´ÙµçÁö ÇÏ´Â °í±Þ ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù(|gzip-example| ¸¦ º¸¶ó). ÀϹÝÀûÀ¸·Î autocommands¸¦ µÎ´Â °÷Àº ¿©·¯ºÐÀÇ .vimrc ¶Ç´Â .exrc ÆÄÀÏÀÌ´Ù.

°æ°í: autocommands´Â ¸Å¿ì °­·ÂÇÑ ÈûÀ» °¡Áö°í ÀÖ°í ¿¹»óÄ¡ ¾ÊÀº ±â´ÉÀ» ÇÒÁöµµ ¸ð¸¥´Ù. ÀÛ¼ºÇÑ ÅؽºÆ®¸¦ ¸ÁÄ¡Áö ¾Êµµ·Ï ÁÖÀÇÇ϶ó.
--------

³»°¡ autocmd°¡ Áß¿äÇÑ ºÎºÐÀ̶ó°í ¸»ÇÒ ¶§ ¹ÏÁö ¾Ê¾Ò´Ù¸é, ÀÌÁ¦´Â ³» ¸»À» ¹ÏÀ¸¸®¶ó°í »ý°¢ÇÑ´Ù ºñ·Ï autocmdÀÇ ÀúÀÚ°¡ ±×°ÍÀÇ °­·ÂÇÔÀ» ¸»ÇÑ °ÍÀ̱â´Â Çصµ.

¸¸ÀÏ ¿©·¯ºÐÀÌ ³»°¡ À§¿¡¼­ ÇÑ ÀÏ(":h autocmd")À» Çß´Ù¸é, autocmd¿¡ °üÇÑ µµ¿ò¸»À» ÃæºÐÈ÷ ¾ò¾úÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸, ¸¸ÀÏ ¿©·¯ºÐÀÌ ±× ¸Å¿ì Æ÷°ýÀûÀÎ µµ¿ò¸» ÆÄÀÏÀ» Àüü¸¦ ÀÐ¾î º¸°í ½ÍÁö ¾Ê´Ù¸é, ³» ÀÚ½ÅÀÇ ¼³Á¤¿¡¼­ »ç¿ëµÈ °Í¸¸À» »ìÆ캸°í µµ¿ò¸» ÆÄÀÏÀ» ³¡±îÁö ÀÐ¾î º¸´Â °ÍÀº ³ªÁßÀ¸·Î ¹Ì·ç±â·Î ÇÏÀÚ.

.vimrc ÆÄÀÏÀÇ autocmd ¼½¼ÇÀÌ 7°³ÀÇ ÁÖ¿ä ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Â °ÍÀ» ½±°Ô ¾Ë¾Æ º¼ ¼ö ÀÖ´Ù.

±× ù¹ø° ºÎºÐÀº:

------------

autocmd!

------------

ÀÌ°ÍÀÌ ÀüºÎÀÌ´Ù. ±×¸®°í ÀÌ ºÎºÐÀÇ À§¿¡ ÀÖ´Â Ä¿¸ÇÆ®°¡ ¼³¸íÇÏ°í ÀÖ´Â ¹Ù¿Í °°ÀÌ, ÀÌ ¸í·ÉÀº ÇöÀç Á¤ÀǵǾî ÀÖ´Â ¸ðµç autocommands¸¦ »èÁ¦Çؼ­ °³º°ÀûÀÎ autocommand°¡ ÇÁ·Î¼¼½ºÀÇ ¾î¶² °÷¿¡ ¿µÇâÀ» ÁÖ´ÂÁö Á¤È®ÇÏ°Ô ¾Ë ¼ö ÀÖ°Ô ÇÑ´Ù. Áï, ¿ì¸®ÀÇ vim ȯ°æÀ» ÄÁÆ®·ÑÇؼ­ ¿ì¸®ÀÇ ¿ëµµ¿¡ ¸Â°Ô ±¸¼ºÇÏ´Â °ÍÀÌ´Ù.

´ÙÀ½ÀÇ ¿©¼¸ °³ÀÇ ºÎºÐÀº °¢°¢ ƯÁ¤ ¾ð¾î¿¡ °üÇÑ ºÎºÐÀÌ´Ù - LaTeX, C, asm, HTML, Perl, ±×¸®°í Java. ÀÌµé ¾ð¾î´Â ¸ðµÎ °°Àº ±ÔÄ¢À» µû¸£¹Ç·Î, °¡Àå º¹ÀâÇÏ°Ô ±¸¼ºµÈ Perl ¼½¼ÇÀ» ¿¹·Î µé¾î ¼³¸íÇϱâ·Î ÇÏ°Ú´Ù.

¼³¸íÇϱâ·Î ÇÑ Perl¿¡ °üÇÑ ºÎºÐÀ» ´Ù½Ã º¸±â·Î ÇÏÀÚ:

------------------

" Perl autocmds
autocmd BufRead                 *.pl    source  ~/.vim-files/.vimrc.perl
autocmd BufNewFile              *.pl    0r ~/.vim-files/skeletons/skel.pl
autocmd BufNewFile              *.pl    source ~/.vim-files/.vimrc.perl
autocmd BufWrite                *.pl    !chmod +x %

------------------

±×·³ ÀÌÁ¦ °¢°¢ÀÇ ¶óÀÎÀÌ ¶æÇÏ´Â °ÍÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æ º¸±â·Î ÇÏÀÚ(½Ã°£ »óÀÇ ¹®Á¦·Î, °¡Àå ù ¶óÀÎÀ̸鼭 Ä¿¸ÇÆ®ÀÎ "Perl autocmds"Àº ³Ñ¾î °¡±â·Î ÇÑ´Ù).

ù¹ø° ¶óÀÎ:

 
autocmd BufRead         *.pl    source ~/.vim-files/.vimrc.perl
 

¾Õ¼­ÀÇ ¼³¸íÀ¸·Î ÀÌ¹Ì ¿ì¸®´Â autocmd°¡ ¹«¾ùÀÎÁö ¾Ë°í ÀÖ´Ù. ÀÌÁ¦ ¿ì¸®°¡ ¾Ë¾Æ ºÁ¾ß ÇÒ °ÍÀº "BufRead"°¡ ¹«¾ùÀ» ¶æÇÏ´À³Ä ÇÏ´Â °ÍÀÌ´Ù. ±×°ÍÀÌ ¶æÇÏ´Â °ÍÀº ±×´ÙÁö ¾î·ÆÁö ¾Ê´Ù. ¿©·¯ºÐÀÌ ¿¹»óÇÏ´Â °Í°ú °ÅÀÇ °°À» °ÍÀÌ´Ù. ÀÌ°ÍÀº ¹öÆÛ°¡ ÀÐÈú ¶§¸¶´Ù Àû¿ëµÇ´Â autocommand¸¦ ¶æÇÑ´Ù.

¸¸ÀÏ ¿©·¯ºÐÀÌ ÇÁ·Î±×·¡¸Ó¶ó¸é ´ÙÀ½ ºÎºÐÀº ²Ï ½¬¿ï °ÍÀÌ´Ù(¶Ç´Â Perl ÆÄÀÏÀÇ È®ÀåÀÚ°¡ ´ë°³ .plÀ̶ó´Â »ç½ÇÀ» ¾È´Ù¸é) . ÀÌ°ÍÀº ±âº»ÀûÀ¸·Î ÀÌ autocommand°¡ ¾î¶² Á¾·ùÀÇ ¹öÆÛ¿¡ Àû¿ëµÉ °ÍÀÎÁö¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ƯÈ÷, ÀÌ ¸í·ÉÀº .pl·Î ³¡³ª´Â ÆÄÀÏ¿¡¸¸ Àû¿ëµÉ °ÍÀÌ´Ù.

°¡Àå ¸¶Áö¸· ºÎºÐÀº ½ÇÁ¦·Î ¼öÇàµÉ ¸í·ÉÀ» ³ªÅ¸³½´Ù.  ÀÌ ¸í·ÉÀÌ ÇÏ´Â ÀÏÀº µÎ ¹ø° .vimrc ÆÄÀÏ¿¡ source ¸í·ÉÀ» ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ÀÌ µÎ ¹ø° .vimrc ÆÄÀÏÀº Perl¿¡ °üÇÑ ¸ÅÅ©·Î Á¤ÀÇ¿Í °°Àº °ÍÀ» ´ã°í ÀÖ´Â ÆÄÀÏÀÌ´Ù. ÀÌ ÆÄÀÏÀº ³»°¡ ¾ð±ÞÇß´ø .vim-files µð·ºÅ丮¿¡ À§Ä¡ÇÑ ÆÄÀÏ ÁßÀÇ ÇϳªÀÌ´Ù. ³»°¡ ¸»Çß´ø °Íó·³, ÀÌ ¸í·ÉÀº ´Ù¸¥ .vimrc ÆÄÀÏ¿¡ source ¸í·ÉÀ» Àû¿ë½ÃÅ°´Â °ÍÀÌÁö¸¸, ±× ÆÄÀÏ¿¡´Â Perl °ü·Ã ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î Perl ½ºÅ©¸³Æ®¸¦ ÆíÁýÇϰųª »õ·Î¿î Perl ½ºÅ©¸³Æ® ÆÄÀÏÀ» ¸¸µé ¶§¸¸ ±× ´Ù¸¥ .vimrc ÆÄÀÏ¿¡ source ¸í·ÉÀÌ Àû¿ëµÈ´Ù.

À§ÀÇ ¼³¸í¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ, ÀÌ autocommand ¶óÀÎÀº ¿ì¸®°¡ ´Ù·ç´Â »óȲÀÇ Àý¹Ý ¹Û¿¡ ´Ù·çÁö ¸øÇÑ´Ù. Áï, ¿ì¸®°¡ ÀÌ¹Ì Á¸ÀçÇÏ°í ÀÖ´Â Perl ½ºÅ©¸³Æ®¸¦ ÆíÁýÇÒ ¶§¸¸ Àû¿ëµÇÁö, »õ Perl ½ºÅ©¸³Æ®¸¦ ¸¸µé ¶§´Â Àû¿ëµÇÁö ¾Ê´Â´Ù(¾ÆÁ÷ Á¸ÀçÇÏÁö ¾Ê´Â °ÍÀ»  ¹öÆÛ¿¡ ÀÐ¾î µéÀÏ ¼ö ¾ø´Ù). ÇÏÁö¸¸, ÀÌ ¶óÀÎ ¾Æ·¡¿¡¼­ µÑ° ¶óÀο¡ Àִ  autocmd¸¦ º¸µµ·Ï ÇÏÀÚ. ÀÌ°ÍÀº "BufRead" ´ë½Å¿¡ "BufNewFile"À» ½è´Ù´Â °Í¸¸ Á¦¿ÜÇϸé ù¹ø° ¶óÀΰú ¶È°°´Ù. "BufNewFile"À» ½è´Ù´Â °ÍÀº »õ·Î¿î ÆÄÀÏÀÌ ¸¸µé¾îÁú ¶§¸¶´Ù ÀÌ autocommand°¡ Àû¿ëµÉ °ÍÀ̶ó´Â °ÍÀ» ¶æÇÑ´Ù(¿©±â¼­µµ "*.pl"À̶ó´Â Á¶°ÇÀÌ »ç¿ëµÇ¾úÀ¸¹Ç·Î .pl·Î ³¡³ª´Â ÆÄÀÏÀÎ °æ¿ì¿¡¸¸À̶ó´Â Á¶°ÇÀÌ ºÙ´Â´Ù).

ÀÌ·¸°Ô Çؼ­ ÀÌ ¼½¼ÇÀÇ ¹Ý(ù¹ø°, ¼¼ ¹ø° autocmds)À» ´Ù·ç¾ú´Ù. ´ÙÀ½¿£ µÎ ¹ø° autocmd¸¦ ´Ù·ç±â·Î ÇÏÀÚ:

 
autocmd BufNewFile              *.pl    0r ~/.vim-files/skeletons/skel.pl
 

¿ì¸®´Â ¹æ±Ý ÀÌ ¶óÀÎÀÇ ´ëºÎºÐÀ» Çؼ®ÇÏ´Â ¹æ¹ýÀ» ¹è¿ü´Ù. óÀ½ÀÇ ¼¼ ¿­Àº ÀÌ ¸í·ÉÀÌ .pl È®ÀåÀÚ¸¦ °®´Â »õ ÆÄÀÏÀ» ¸¸µé ¶§¸¶´Ù Àû¿ëµÈ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. ÇÑ °¡Áö ¾Ë¾Æ³»¾ß ÇÒ °ÍÀº ¸í·É ±× ÀÚüÀÌ´Ù. ÀÌ ¸í·ÉÀº Ä¿¼­¸¦ ÆÄÀÏ(¿ì¸®°¡ »õ ÆÄÀÏÀ» ´Ù·ç±â ¶§¹®¿¡ ºó ¹®¼­·Î °£ÁֵȴÙ)ÀÇ ¸Ç óÀ½¿¡ µÎ°í, ±×·± ´ÙÀ½ ~/.vim-files/skeletons/skel.plÀÇ ³»¿ëÀ» ±× ÆÄÀÏ·Î Àоî¿À´Â °ÍÀÌ´Ù. ÀÌÁ¦, ´ÙÀ½ »çÇ×À» ±â¾ïÇØ µÎµµ·Ï Ç϶ó. ¿©·¯ºÐÀº ~/.vim-files/skeletons/skel.pl ÆÄÀÏÀ» ÆíÁýÇÑ ÀûÀÌ ¾øÀ¸¸ç, ´Ù¸¸ ÀÌ ¸í·ÉÀº ±× ÆÄÀÏÀÇ ³»¿ëÀ» ÇöÀçÀÇ ¹öÆÛ¿¡ ºÒ·¯ µéÀδÙ. ÀÌ °æ¿ì¿¡´Â »õ·Î¿î Perl ½ºÅ©¸³Æ®°¡ ÇöÀçÀÇ ¹öÆÛÀÌ´Ù.

±×·±µ¥ ~/.vim-files/skeletons/skel.pl ÆÄÀÏ ¾È¿¡ Á¤È®È÷ ¹«¾ùÀÌ Àִ°¡? ÀÌ Æ¯º°ÇÑ ÆÄÀÏ¿¡´Â ³»°¡ PerlÀ» ¹è¿ì±â ½ÃÀÛÇÑ ÀÌ·¡ ³ªÀÇ ¸ðµç Perl  ½ºÅ©¸³Æ®¿¡ ÀÖ¾ú´ø ´ÙÀ½¿¡ ÀÖ´Â µÎ ÁÙÀÇ Çì´õ ¿Ü¿¡´Â ¾Æ¹« °Íµµ ¾ø´Ù:

------------------

 
#/usr/bin/perl -w
use strict;
 

------------------

»õ Perl ½ºÅ©¸³Æ®¸¦ ¸¸µé ¶§¸¶´Ù ¸Å¹ø ÀÌ ¶óÀεéÀ» ÀÔ·ÂÇÏ´Â ´ë½Å¿¡, ±×Àú ÀÌ ¶óÀε鸸À» °¡Áö°í ÀÖ´Â "skeleton"À̶õ ÆÄÀÏÀ» ¸¸µé¾î¼­ ³»°¡ ÀÛ¼ºÇÏ´Â ¸ðµç »õ·Î¿î Perl ½ºÅ©¸³Æ®¿¡ ºÒ·¯µéÀ̱â·Î Çß´Ù. ±×·¯¹Ç·Î, ¸¸ÀÏ ¿©·¯ºÐÀÌ °°Àº Á¾·ùÀÇ ±âº» °ñ°ÝÀ» »ç¿ëÇÏ´Â ¿©·¯ °³ÀÇ ÆÄÀÏÀ» ÇÊ¿ä·Î ÇÏ´Â ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù¸é, ³»°¡ ÇÑ °Íó·³ ±âº» °ñ°ÝÀ» ÆÄÀÏ·Î ÀÛ¼ºÇؼ­ ÀÌ¿ëÇÏ´Â Å×Å©´ÐÀ» »ç¿ëÇÒ °ÍÀ» ±ÇÇÑ´Ù.

ÀÌÁ¦ ÀÌ ¼½¼ÇÀÇ ¸¶Áö¸· ºÎºÐÀ» ´Ù·ç±â·Î ÇÏÀÚ:

 
autocmd BufWrite                *.pl    !chmod +x %
 

¾ÆÁ÷ ¿ì¸®°¡ "BufWrite" Á¶°Ç¿¡ ´ëÇؼ­ ¸íÈ®ÇÏ°Ô À̾߱âÇÑ ÀûÀº ¾øÁö¸¸, ÀÌÁ¦´Â ÀÌ ¸í·ÉÀÇ ¸Ç óÀ½ ¼¼ ºÎºÐÀº ½±°Ô ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÆÄÀÏÀ» ÀûÀ» ¶§(ÀúÀåÇÒ ¶§)¸¶´Ù  ÀÌ ¸í·ÉÀÌ Àû¿ëµÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.

ÇÏÁö¸¸, ¿©±â¿¡¼­ »ç¿ëµÈ ¸í·ÉÀº ±×·¸°Ô ½±Áö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ¸í·ÉÀÇ Ã¹¹ø° ¹®ÀÚÀÎ ´À³¦Ç¥(!)´Â vim¿¡°Ô ´ÙÀ½¿¡ ÀÖ´Â ½© ¸í·ÉÀ» ½ÇÇà½ÃÅ°¶ó´Â ¶æÀÌ´Ù. "chmod +x"¶ó´Â ¸í·ÉÀÌ ÆÄÀÏÀ» ¼öÇà °¡´ÉÇÏ°Ô ¸¸µç´Ù´Â °ÍÀ» ¾Ë Á¤µµ·Î ¿©·¯ºÐÀÌ ¸®´ª½º ¸í·ÉÀ» Àß ¾Ë°í ÀÖÀ¸¸é ÁÁ°Ú´Ù(±×·¸Áö ¾Ê´Ù°í Çصµ, Áö±Ý ¿©·¯ºÐÀº ±× »ç½ÇÀ» ¾Ë°Ô µÇ¾ú´Ù). ¸¶Áö¸·¿¡ ÀÖ´Â ¹®ÀÚ´Â ¾ÆÁ÷µµ Àǹ®ÀÇ ´ë»óÀÌ´Ù. Chmod ¸í·ÉÀ» ½ÇÇàÇÏ·Á¸é ÆÄÀÏ À̸§ÀÌ ÇÊ¿äÇÏÁö¸¸, ÀÌ ÆÛ¼¾Æ® ±âÈ£´Â ¿ì¸®ÀÇ ÇöÀç ÆÄÀÏÀÇ À̸§ÀÌ ¾Æ´Ï´Ù. ±×·¯³ª, ÀÌ ÆÛ¼¾Æ® ±âÈ£´Â vimÀÇ Æ¯¼ö ¹®ÀÚ Áß ÇϳªÀÌ´Ù. Vim ¸í·É¿¡¼­, ÆÛ¼¾Æ® ±âÈ£´Â ¾ðÁ¦³ª ÇöÀçÀÇ ÆÄÀÏ À̸§À¸·Î ´ëüµÈ´Ù. ÆÛ¼¾Æ® ±âÈ£¸¦ »ç¿ëÇÏ´Â ¶Ç ´Ù¸¥ Æí¸®ÇÑ ´ëü ¹æ¹ýÀÌ ÀÖ´Ù. ÆÄÀÏ À̸§À¸·ÎºÎÅÍ È®ÀåÀÚ¸¦ Á¦°ÅÇÏ°íÀÚ ÇÒ ¶§´Â %<À» »ç¿ëÇÑ´Ù. ÀÌ ±âÈ£ ´ÙÀ½¿¡ ´Ù¸¥ È®ÀåÀÚ°¡ ¿À°Ô µÇ¸é, ÆÄÀÏ À̸§ ´ÙÀ½¿¡ ±× È®ÀåÀÚ¸¦ ºÙ¿© ÁØ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ foo.texÀ̶õ À̸§ÀÇ ÆÄÀÏÀ» ÀÛ¾÷ ÁßÀε¥, ±× Ãâ·Â °á°ú¸¦ foo.ps¶õ À̸§À¸·Î ÇÏ°í ½Í´Ù°í ÇÏÀÚ. ±×·¯¸é %<.ps¸¦ »ç¿ëÇؼ­ foo.ps¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ¾î¶²°¡? »ó´çÈ÷ °£´ÜÇÏÁö ¾ÊÀº°¡? ÀÌ·¸°Ô Çؼ­, Áö±Ý±îÁö ¿ì¸®´Â ÁÖ .vimrc ÆÄÀÏÀ» »ìÆì º¸¾Ò´Ù.

¾Õ¼­ ¸»ÇÑ ´ë·Î, ´ëÃæÀ̱â´Â ÇÏÁö¸¸ ¿ì¸®´Â ÁÖ ~/.vimrc ÆÄÀÏÀÇ °¡Àå Å« ºÎºÐÀ» ´Ù·ç¾ú´Ù. ÀÌÁ¦´Â source ¸í·ÉÀ» Àû¿ëÇÏ´Â ´Ù¸¥ .vimrc ÆÄÀϵéÀ» »ìÆì º¼ Â÷·ÊÀÌ´Ù.

--´Ù¸¥ .vimrc ÆÄÀϵé ---


¿©·¯ºÐÀº ¾Æ¸¶µµ ´ÙÀ½°ú °°Àº Áú¹®À» ´øÁö¸ç ±Ã±ÝÇØ ÇÒÁöµµ ¸ð¸¥´Ù. "´Ù¸¥ .vimrc ÆÄÀÏÀÌ ÇÊ¿äÇÑ°¡¿ä? ¸ðµç ¿É¼ÇÀ» ù¹ø° .vimrc ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÏÁö ¾Ê¾Ò³ª¿ä?" ±Û½ê, ±× ´ë´äÀº ¡®±×·¸´Ù¡¯¿Í ¡®¾Æ´Ï´Ù¡¯ÀÌ´Ù. ¿ì¸®°¡ ~/.vimrc¿¡¼­ ¼³Á¤ÇÑ ¿É¼ÇµéÀº »ç½Ç Àü¿ª(global)ÀÌ°í ¿ì¸®°¡ vim¿¡¼­ ÆíÁýÇÏ´Â ¸ðµç ÆÄÀÏ¿¡ Àû¿ëµÈ´Ù. ÇÏÁö¸¸, ¿ì¸®´Â vimÀ¸·Î º¸´Ù ´õ ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù. Àá±ñ ±â´Ù·Á º¸¶ó.

¿©·¯ºÐÀÇ Æ¯Á¤ ÀÛ¾÷À» À§ÇÑ .vimrc ÆÄÀÏ¿¡ ³Ö±â À§Çؼ­ ³»°¡ ´Ù·ç·Á°í ÇÏ´Â °ÍÀÌ Çϳª Àִµ¥, ¹Ù·Î ¸ÅÅ©·ÎÀÌ´Ù. ¸ÅÅ©·Î¸¦ »ç¿ëÇϸé LaTeX »ç¿ëÀÌ ´õ¿í ½¬¿öÁø´Ù´Â °ÍÀ» º¸¿©ÁÖ°Ú´Ù. ÇϳªÀÇ ÆÄÀÏÀ» ÆíÁýÇϸ鼭 ±× ÆÄÀÏ¿¡ ´ëÇؼ­ LaTeXÀ» ½ÇÇàÇϱâ À§Çؼ­´Â ,rlÀ» ÀÔ·ÂÇØ¾ß ÇÑ´Ù("run LaTeX"À̶ó´Â ¶æÀ¸·Î ±â¾ïÇϱ⠽±µµ·Ï ³»°¡ ¼±ÅÃÇÑ ¿¬¼ÓµÈ Å°ÀÌ´Ù). ±×·± ´ÙÀ½, ±× ÆÄÀϷκÎÅÍ PS(PostScript) ÆÄÀÏÀ» ¸¸µé±â À§Çؼ­´Â ,cps(¸¶Âù°¡Áö·Î, "create PS"À̶õ ¶æÀ¸·Î ³»°¡ ¼±ÅÃÇÑ Å°ÀÌ´Ù)¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î, ±× ÆÄÀÏÀ» º¸±â À§Çؼ­´Â ,gv¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù(GhostviewÀÇ Ãà¾à¾î·Î gv¶ó°í ½èÁö¸¸, ¾Õ¼­¿Í ¸¶Âù°¡Áö·Î ³»°¡ ÀÓÀÇ·Î ¼±ÅÃÇÑ Å°ÀÌ´Ù). »ç½Ç, ¿©·¯ºÐÀº ¸ÅÅ©·Î¿¡ °üÇÑ ´ÙÀ½ ³»¿ëÀ» º¸±â À§Çؼ­ ±â´Ù¸± ÇÊ¿äµµ ¾ø´Ù. ¿©·¯ºÐÀÇ LaTeX ¼Ò½º ÆÄÀÏ¿¡¼­ºÎÅÍ PostScript ÆÄÀÏÀ» ¾ò±â À§Çؼ­, ¿©·¯ºÐÀÌ ÇØ¾ß ÇÒ ÀÏÀº rl,cps,gvÀ» ÀÔ·ÂÇÏ´Â °Í»ÓÀÌ´Ù. »ç½Ç, ¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é ÀÌ ¸ðµç ÀÛ¾÷À» Çѹø¿¡ Çϵµ·Ï ¿©·¯ºÐ ÀڽŸ¸ÀÇ ¸ÅÅ©·Î¸¦ ¸¸µé ¼öµµ ÀÖ´Ù.

ÀÌ ±Û¿¡¼­ ´Ù·ç°Ô µÉ ¸ÅÅ©·ÎÀÇ Å¸ÀÔÀº Å©°Ô µÎ °¡ÁöÀÌ´Ù ¸í·É ¸ðµå ¸ÅÅ©·Î¿Í ÀÔ·Â ¸ðµå ¸ÅÅ©·ÎÀÌ´Ù. µÑ »çÀÌÀÇ À¯ÀÏÇÑ Å« Â÷ÀÌ´Â ¾ðÁ¦ ºÒ¸®¿ö Áö´Â°¡ ÇÏ´Â °ÍÀÌ´Ù. ±×¸®°í ¹°·Ð ¾ÕÀ¸·Î º¸°Ô µÇ°ÚÁö¸¸ »ç¿ëÇÏ´Â ¹æ¹ý »ó¿¡ ¹Ì¹¦ÇÑ Â÷ÀÌ°¡ ÀÖ´Ù.

::: ¸í·É ¸ðµå ¸ÅÅ©·Î :::


ÀÌ°ÍÀº ¿ì¸®°¡ ¾Õ¼­ º¸¾Ò´ø autocommand ¸í·É°ú °°Àº Á¾·ùÀÌ´Ù. ´Ù¸¸ ƯÁ¤ À̺¥Æ®¿¡ ÀÚµ¿ÀûÀ¸·Î ½ÇÇàµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¿¬¼ÓµÈ ƯÁ¤ Å°¸¦ ´©¸§À¸·Î½á ½ÇÇàµÈ´Ù. ÇÏÁö¸¸, ÀÌµé ¸í·ÉÀº ¸í·É ¸ðµå¿¡¼­ ºÒ¸®¿ö Á®¾ßÁö, autocommand  ¸í·ÉÀ» ÇÒ ¶§Ã³·³ ÄÝ·Ð ¸í·É ÇÁ·ÒÇÁÆ®¿¡¼­ ºÒ¸®¿ö Á®¼­´Â ¾È µÈ´Ù(¾ÕÀ¸·Î º¸°Ô µÇ°ÚÁö¸¸, ÀÌ°ÍÀº ÀÔ·Â ¸ðµå ¸ÅÅ©·Î¿Íµµ ´Ù¸£´Ù). ÀÌÁ¦ ¿¹Á¦ ÇÑ µÎ°³¸¦ º¸±â·Î ÇÏÀÚ. ´ÙÀ½Àº ³»°¡ ¾Õ¿¡¼­ ¾ð±ÞÇß´ø LaTeX ¸ÅÅ©·ÎµéÀÌ´Ù:

-------------------------------

map ,rl :w:!latex %
map ,cps :!dvips %<.dvi -t letter -o %<.ps
map ,gv :!ghostview %<.ps &

-------------------------------

ºÐ¸íÈ÷ ¾Ë ¼ö ÀÖ°ÚÁö¸¸, ÀÌµé ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â Å°¿öµå´Â "map"ÀÌ´Ù. ±× ´ÙÀ½ Ç׸ñÀº ¸ÅÅ©·Î¸¦ ºÎ¸£´Â µ¥ ÇÊ¿äÇÑ ¿¬¼ÓµÈ Å°ÀÌ´Ù(¼¼ ´Ü¶ô ¾ÕÀ» ´Ù½Ã ÀÐ¾î º¸¸é ½±°Ô ¾Ë ¼ö ÀÖ´Ù). ¹°·Ð, ¸¶Áö¸· Ç׸ñÀº ¸í·É ¸ðµå¿¡¼­ ¾Õ¼­ÀÇ ¿¬¼ÓµÈ Å°°¡ ÀÔ·ÂµÉ ¶§ ½ÇÁ¦·Î ¼öÇàµÇ´Â ¸í·ÉÀÌ´Ù.

ù¹ø° °ÍÀ» º¸±â·Î ÇÏÀÚ. ³»°Ô´Â Çص¶ÇÒ ÇÊ¿ä°¡ °ÅÀÇ ¾ø´Â °Íó·³ º¸À̱â´Â ÇÏÁö¸¸, ¿©·¯ºÐ¿¡°Ô´Â ¾Æ´Ò ¼öµµ ÀÖÀ¸´Ï Â÷±ÙÂ÷±Ù ¼³¸íÇϱâ·Î ÇÏÀÚ. ±âº»ÀûÀ¸·Î ¿©·¯ºÐÀÌ »ý°¢ÇØ¾ß ÇÒ °ÍÀº ÀÌµé ¸ÅÅ©·Î°¡ ¿©·¯ºÐÀÌ vimÀ» »ç¿ëÇÒ ¶§ ÀÛ¾÷À» Çϱâ À§Çؼ­ ÀÔ·ÂÇÏ´Â Å°µé·Î ÀÌ·ç¾îÁ® ÀÖ´Ù´Â °ÍÀÌ´Ù. ±×·¸±â ¶§¹®¿¡, ÀÌ ¸ÅÅ©·Î¿¡¼­ ¸Ç óÀ½ ÀϾ´Â °ÍÀº ÄÝ·Ð ¸í·É ÇÁ·ÒÇÁÆ®°¡ ºÒ¸®¿öÁö°í(¸í·É ¸ðµå¿¡¼­Ã³·³ :À» ´©¸§À¸·Î½á), ±×·± ´ÙÀ½ "w"À» ÀÔ·ÂÇؼ­ ÆÄÀÏÀ» ÀúÀåÇÏ°í ¿£Å͸¦ ´©¸¥´Ù(¶Ç´Â ij¸®Áö ¸®ÅÏ, <CR>). ÀÏ´Ü ÆÄÀÏÀÌ ÀúÀåµÇ¸é, ÇöÀç ¹®¼­ »ó¿¡¼­ LaTeX ÄÄÆÄÀÏ·¯¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù. ±×·¸±â ¶§¹®¿¡, ¿ì¸®´Â ¸í·É ¸ðµå·Î °¡¼­(:), ÇöÀç ÆÄÀÏ »ó¿¡¼­ LaTeX ÄÄÆÄÀÏ·¯¸¦ ½ÇÇàÇÑ´Ù(!latex %<CR>). °£´ÜÇÏÁö ¾ÊÀº°¡?

±Û½ê, °£´ÜÇÏ´Ù°í ¿©°ÜÁöÁö ¾Ê´Â´Ù Çصµ Á¶±Ý¸¸ ¿¬½ÀÇÏ¸é µÈ´Ù. ´ÙÀ½ °Íµµ ÀÌ¿Í ºñ½ÁÇؼ­ "dvips foo.dvi -t letter -o foo.ps"À» ½ÇÇàÇÏ´Â °ÍÀÌ´Ù(foo.tex »ó¿¡¼­ ÀÛ¾÷ÇÏ°í ÀÖ´Ù´Â °¡Á¤ ÇÏ¿¡¼­). ÀÌ ¸í·ÉÀ¸·Î LaTeX ÄÄÆÄÀÏ·¯·Î ¸¸µé¾îÁø DVI ÆÄÀϷκÎÅÍ PostScript ÆÄÀÏÀÌ »ý°Ü³­´Ù. ½ÇÁ¦·Î ÀÌ ¸ÅÅ©·Î¿¡¼­ »õ·Î¿î °ÍÀº ¾ø´Ù. ´ÜÁö %<ÀÌ ÇöÀçÀÇ ÆÄÀÏ À̸§¿¡¼­ È®ÀåÀÚ¸¦ »« °ÍÀ̸ç ÀÌ ±âÈ£ ´ÙÀ½¿¡ ¿øÇÏ´Â ¾î¶² È®ÀåÀÚµµ ¾µ ¼ö ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇϵµ·Ï Ç϶ó.

¸¶Áö¸· ¸í·ÉÀº, ¾Õ¿¡¼­µµ ¼³¸íÇßµíÀÌ, ±×Àú »õ·Ó°Ô ¸¸µé¾îÁø PostScript ÆÄÀÏ¿¡ ´ëÇؼ­ ghostview¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ´ÜÁö ¾à°£ÀÇ Â÷ÀÌ´Â vimÀ» °è¼Ó »ç¿ëÇϸ鼭 Ghostview¸¦ »ç¿ëÇϵµ·Ï ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇà½ÃŲ °ÍÀÌ´Ù. ¾ÕÀÇ ¸í·ÉµéÀº È­¸é °¡µæ Ãâ·Â °á°ú(ÀáÀçÀûÀÎ ¿¡·¯µé)¸¦ ³»º¸³»±â ¶§¹®¿¡, ¹é±×¶ó¿îµå·Î ½ÇÇà½ÃÅ°Áö ¾Ê¾Ò´Ù.

ÀÔ·Â ¸ÅÅ©·Î¸¦ ´Ù·ç±â Àü¿¡ ¸¶Áö¸·À¸·Î ¸í·É ¸ÅÅ©·Î ¼ÂÀ» »ìÆì º¸±â·Î ÇÏÀÚ. ÀÌ ¿¹Á¦ ¼ÂÀº ÆíÁý ¾î¼Àºí·¯¸¦ À§ÇÑ °ÍÀÌ´Ù:

-----------------------

" ´ÙÀ½Àº nasmÀ» ½ÇÇà½ÃŲ´Ù
map             ,n              :w:!nasm -f elf %
" ±×¸®°í ld¸¦ ½ÇÇà½ÃŲ´Ù
map             ,l              :w:!ld -s -o %< %<.o
" ±×¸®°í ½ÇÇà °¡´É ÆÄÀÏÀ» ½ÇÇà½ÃŲ´Ù.
map             ,r              :w:!%<
" ¶Ç´Â ÇÑ ¹ø¿¡ ÀÌ ÀüºÎ¸¦ ´Ù ÇÑ´Ù.
map             ,a              ,n,l,r

----------------------

À̵é ÆÄÀÏ¿¡¼­µµ ¿ª½Ã Ä¿¸ÇÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀØÁö ¾Êµµ·Ï Ç϶ó. ¿¹Á¦·Î »ç¿ëÇÏ°í ½ÍÀº ¸ÅÅ©·Î´Â °¡Àå ¸¶Áö¸· °ÍÀÌ´Ù. ÀÌ LaTeX ¿¹Á¦¸¦ ¼³¸íÇϱâ Àü¿¡ ÇÑ °¡Áö¸¦ È®ÀÎÇÏ°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ. ¾Õ¿¡¼­ ³»°¡ ÀÌ·¸°Ô ¸ÅÅ©·Î·Î Á¤ÀÇµÈ ¸ðµç ¸í·ÉµéÀº Çϳª·Î ½ÇÇàµÉ ¼ö ÀÖ´Ù°í À̾߱â ÇÑ °ÍÀ» ±â¾ïÇϴ°¡? ¾ÆÁÖ °£´ÜÇÏ°Ô ¿©·¯ °³ÀÇ ¸í·ÉÀ» ÇϳªÀÇ ¸í·ÉÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ÀÌ ¸ÅÅ©·Î ¼Â(¾Õ¿¡¼­ ¿¹·Î µé¾ú´ø ³ªÀÇ ÁÖ ~/.vimrc ¾È¿¡¼­ ÂüÁ¶µÈ ~/.vim-files/.vimrc.asm ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖ´Ù)¿¡ ÀÖ´Â ",a" ¸ÅÅ©·Î´Â ±× ¾Õ¿¡ ÀÖ´Â ¼¼ °³ÀÇ ¸ÅÅ©·Î¸¦ ¼ø¼­´ë·Î ½ÇÇàÇÑ´Ù. ,n,l,rÀ» ÀÔ·ÂÇÏ´Â ´ë½Å¿¡ ,aÀ» ÀÔ·ÂÇÔÀ¸·Î½á ¿©·¯ °³ÀÇ Å°¸¦ ´©¸£Áö ¾Ê¾Æµµ µÈ´Ù. ¾ó¸¶³ª °£ÆíÇÑ ¹æ¹ýÀΰ¡?

¸í·É ¸ðµå ¸ÅÅ©·Î¸¦ Á¤¸» °£ÆíÇÏ°Ô »ç¿ëÇÏ´Â ¹ý±îÁö º¸¿© ÁÖ¾úÀ¸´Ï ÀÌÁ¦ ´ÙÀ½ ´Ü°è(¸¶Áö¸· ´Ü°è)·Î ³Ñ¾î °¡µµ·Ï ÇÏÀÚ.

:::ÀÔ·Â ¸ðµå ¸ÅÅ©·Î:::

ÀÔ·Â ¸ðµå ¸ÅÅ©·Î´Â ¸í·É ¸ðµå ¸ÅÅ©·Î¿Í ¸Å¿ì ¹ÐÁ¢ÇÏ°Ô ¿¬°üµÇ¾î ÀÖÀ¸¸é¼­µµ, ¾à°£ÀÇ Â÷À̸¦ °¡Áö°í ÀÖ´Ù. ÀÌÁ¦ ¸î °³ÀÇ ¿¹Á¦¸¦ »ìÆ캸µµ·Ï ÇÏÀÚ. À̹ø¿¡ º¸°Ô µÉ  ¿¹Á¦´Â ³ªÀÇ C ¸ÅÅ©·Î ÆÄÀÏÀÌ´Ù:

-----------------------

map!    ]if     if () {^[o}^[keei
map!    ]for    for () {^[o}^[keei
map!    ]while  while () {^[o}^[keei
map!    ]inc    #include <.h>^[hhi

-----------------------

À̵é ÀÔ·Â ¸ðµå ¸ÅÅ©·Î´Â ¾Æ¸¶µµ Ç®±â ¾î·Á¿î ¾Ïȣó·³ º¸ÀÏ °ÍÀÌ´Ù. À̵é Áß ÀϺδ ¾î´À Á¤µµ ±× Àǹ̸¦ ½±°Ô ¾Ë ¼ö ÀÖ°ÚÁö¸¸, ¿©·¯ºÐÀÌ ±×Àú ÀÌ ¸ÅÅ©·ÎµéÀÇ Àǹ̸¦ Çѹø¸¸ º¸°íµµ ¾Ë¾Æ³½´Ù¸é ¸Å¿ì ³î¶ó¿î ÀÏÀÏ °ÍÀÌ´Ù.

ÇÑ °¡Áö ¹Ýº¹ÇØ¾ß ÇÒ Áß¿äÇÑ Á¡Àº ÀÌµé ¸ÅÅ©·Îµé ¸ðµÎ°¡ ½ÇÁ¦ ÀÔ·Â ¸ðµå »ó¿¡¼­ ÀԷµǾî¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ¸¸ÀÏ ³»°¡ ÀÔ·Â ¸ðµå¿¡¼­ "]if"¶ó°í ÃÄ ³Ö´Â´Ù¸é, ù¹ø° ¸ÅÅ©·Î°¡ ½ÇÇàµÉ °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î, "]ifa"¶ó°í ÃÄ ³ÖÀ¸¸é ù¹ø° ¸ÅÅ©·Î°¡ ½ÇÇàµÈ ´ÙÀ½ Ä¿¼­°¡ À§Ä¡ÇÑ °÷¿¡ "a"°¡ ÀԷµǾîÁú °ÍÀÌ´Ù. ±×·¸±â ¶§¹®¿¡, ½ÇÁ¦·Î ÀÔ·ÂÇÒ °Í °°Áö ¾ÊÀº °ÍÀ» ¼±ÅÃÇؼ­ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ƯÁ¤ Å°¸¦ ÀÔ·ÂÇÒ ¶§¸¶´Ù Á¤ÀÇµÈ ¸ÅÅ©·Î°¡ ½ÇÇàµÉ °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ·± ÀÌÀ¯ ¶§¹®¿¡ ³»°¡ Á¤ÀÇÇÑ ¸ÅÅ©·ÎµéÀÌ "]" ±âÈ£·Î ½ÃÀÛÇÑ´Ù. "]"´Â ¹è¿­À» Á¤ÀÇÇÒ ¶§¸¦ Á¦¿ÜÇÏ°í´Â C ¾ð¾î·Î ÀÛ¾÷ÇÒ ¶§ °ÅÀÇ ¾²ÀÌÁö ¾Ê°í ±× ´ÙÀ½¿¡ "if", "for" µîÀÇ ´Ü¾î°¡ ¿À´Â °æ¿ì°¡ °ÅÀÇ ¾øÀ¸¹Ç·Î ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â µ¥¿¡´Â Àû°ÝÀÌ´Ù. ±×¸®°í ¶ÇÇÑ ÀÌ·¸°Ô ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ¸é ±â¾ïÇϱⰡ ½¬¿ì¹Ç·Î, ³» »ý°¢¿£ ÀÌ·¸°Ô ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀº ¾ÆÁÖ ÁÁÀº ¿¹°¡ µÉ °ÍÀÌ´Ù.

¿©·¯ºÐµéÀÌ ´«Ä¡Ã«À» Áö ¸ð¸£Áö¸¸, ÀÌÁ¦ ´õ ÀÌ»ó ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â µ¥ "map"À̶õ Å°¿öµå¸¦ »ç¿ëÇÏÁö ¾Ê°í, ´ë½Å "map!"À» »ç¿ëÇÑ´Ù. ÀÌ°ÍÀÌ ¹Ù·Î ÀÔ·Â ¸ðµå ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀÌ´Ù. ³ª´Â ´ë°³ ÀÔ·Â ¸ðµå ¸ÅÅ©·Î¸¦ ¸í·É ¸ðµå ¸ÅÅ©·Î¿Í ºÐ¸®µÈ ¼½¼Ç¿¡ µÎ¾î¼­ .vimrc ÆÄÀÏÀ» µÚÁ×¹ÚÁ× µÇÁö ¾Êµµ·Ï ÇÑ´Ù. ±×·¸°Ô ÇØ¾ß ³ªÁß¿¡ .vimrc ÆÄÀÏÀ» ³»°Ô ¸Âµµ·Ï Á¤¸®ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

ÁÁ´Ù, ÀÌÁ¦ ÀÌµé ¸ÅÅ©·Î°¡ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö ¾Ë¾Æ º¸±â·Î ÇÏÀÚ. ¸í·É ¸ðµå ¸ÅÅ©·Î¿Í ¸Å¿ì ºñ½ÁÇÏ°Ô, ±âº»ÀûÀ¸·Î ¿ì¸®°¡ ´©¸£°í ½ÍÀº Å°°¡ ¾î¶² °ÍÀÎÁö¸¦ »ý°¢ÇÏ¸é µÈ´Ù. ´Ù¸¸ ÀÔ·Â ¸ðµå¿¡¼­ ½ÃÀÛÇÑ´Ù´Â »ç½Ç¸¸ Ãß°¡·Î ±â¾ïÇϸ鼭. ¿©·¯ºÐÀÌ ÀÌµé ¸ÅÅ©·Î°¡ ¹«¾ùÀ» ÇÏ´ÂÁö ¸ð¸£´Â °æ¿ì¸¦ ´ëºñÇؼ­, ¸ÕÀú ÀÌµé °¢°¢ÀÇ ¸ÅÅ©·Î°¡ ÇÏ´Â ÀϺÎÅÍ ¼³¸íÇϱâ·Î ÇÏ°Ú´Ù. óÀ½¿¡ ÀÖ´Â ¼¼ °³ÀÇ ±âº»ÀûÀÎ ¸ÅÅ©·Î´Â ¹®¹ýÀûÀ¸·Î ¿Ã¹Ù¸¥ if/for/while ·çÇÁ¸¦ ºü¸£°Ô ¸¸µé¾î ³½´Ù. ¸¶Áö¸·¿¡ ÀÖ´Â ¸ÅÅ©·Î´Â ÆÄÀÏÀ» Æ÷ÇÔ½ÃÅ°±â(including) À§ÇÑ ´ÜÃà Å°ÀÌ´Ù. ÀÌµé ¸ÅÅ©·Î°¡ ¾î¶»°Ô ÀÛ¿ëÇÏ´ÂÁö °ð º¸°Ô µÉ °ÍÀÌ´Ù.

¿ì¼± ù¹ø° ¸ÅÅ©·Î¸¦ º¸±â·Î ÇÏÀÚ. ¿ì¸®´Â ¼Ò½º Äڵ带 ÆíÁýÇÏ°í ÀÖÀ¸¸ç ÀÌµé ¸ÅÅ©·ÎÀÇ Á¤ÀÇ¿¡ ÀÌ¹Ì source ¸í·ÉÀÌ Àû¿ëµÇ¾ú´Ù°í °¡Á¤ÇÏÀÚ. ³ª´Â ÀÔ·Â ¸ðµå¿¡ ÀÖ°í if ¹®À» ½ÃÀÛÇÏ·Á°í ÇÑ´Ù. ÀϹÝÀûÀÎ °æ¿ì, ³ª´Â ´ÙÀ½°ú °°Àº ¹®ÀåÀ» ÀÔ·ÂÇؼ­ ½ÃÀÛÇÏ·Á°í ÇÒ °ÍÀÌ´Ù:

-----------------------

        if (a <=

-----------------------

ÇÏÁö¸¸ ¿©±â¼­ÀÇ ¹®Á¦´Â, ³»°¡ ÀÌ¹Ì if ¹®À» ¾²±â·Î °áÁ¤ÇßÁö¸¸, ¹®¹ýÀ» ¿Ã¹Ù¸£°Ô µû¸£±â À§Çؼ­ ·çÇÁ¸¦ ´Ý´Â °ÍÀ» ±â¾ïÇÏ´À¶ó if ¹® ¾È¿¡¼­ ½ÇÇàµÇ¾îÁú ÇÁ·Î¼¼½º¿¡ ¿ÂÀüÈ÷ ÁýÁßÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. »ç½Ç, if ¹®À» ´Ý´Â °ÍÀº ÇÁ·Î±×·¥ ºí·ÏÀ¸·Î º¸¸é °¡Àå ù¹ø° ÀÏÀÌÁö¸¸, ÀϹÝÀûÀÎ ÀÔ·Â ¹æ¹ý¿¡¼­´Â °¡Àå ¸¶Áö¸· ÀÏÀÌ µÈ´Ù. ¸¸ÀÏ ±âº»ÀûÀÎ if ¹®À» ¸ÕÀú ÀÔ·ÂÇØ ³Ö¾î¼­ ¹®¹ýÀûÀ¸·Î ¿Ã¹Ù¸£°Ô ÇÑ ´ÙÀ½¿¡ if ¹® ¾È¿¡ ÀûÀýÇÑ ¹®ÀåÀ» ä¿ö ³ÖÀ» ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ´Ù¸é, Áö±Ý ´çÀå ½ÇÇàÇØ º¸°Ú´Â°¡?

¾Æ¸¶µµ ¿©·¯ºÐÀº ±×·¯°Ú´Ù°í ´ë´äÇÒ °ÍÀÌ´Ù. »ç½Ç, ¿ì¸®°¡ Áö±Ý ÇÏ·Á°í ÇÏ´Â °ÍÀÌ ¹Ù·Î ±×°ÍÀÌ´Ù. ¿ì¸®´Â ±×·± ´Ü°è¸¦ ¸Å¿ì ÀûÀº ¼öÀÇ Å°¸¦ ´©¸§À¸·Î½á ÇÒ ¼ö ÀÖ´Ù(°ð º¸°Ô µÉ °ÍÀÌ´Ù). ¹®¹ýÀûÀ¸·Î ¿Ã¹Ù¸¥ if ¹®Àº ´ÙÀ½°ú °°´Ù:

-----------------------

        if () {
                            
        }

----------------------

¿©±â¼­ <Á¶°Ç(condition)>°ú <ÇÁ·Î±×·¥ ¹®>Àº ÇÏ°íÀÚ ÇÏ´Â ÀÛ¾÷¿¡ µû¶ó ´Þ¶óÁø´Ù. ±×·¡¼­ ¿ì¼±Àº ÀÌ°ÍÀÌ ÀԷµDZ⸦ ¿øÇÑ´Ù:

----------------

        if () {
        }

----------------

±×·± ´ÙÀ½ ÀÌ Æ¯º°ÇÑ if ¹®¿¡ ³Ö°í ½ÍÀº Á¶°ÇÀ» »ý°¢ÇÑ´Ù. ÀÌ·¸°Ô Çؼ­, ¹®Á¦Á¡À» ÇØ°áÇß´Ù. ´ÙÀ½¿£ ³»°¡ Á¤ÀÇÇÑ ¸ÅÅ©·Î°¡ ¾î¶»°Ô ¿ì¸®°¡ ¿øÇÏ´Â ¹Ù¸¦ Çس»´Â Áö º¸°Ô µÉ °ÍÀÌ´Ù.

ÀÌÁ¦ ¿©·¯ºÐÀº ÀÔ·Â ¸ðµå ¸ÅÅ©·Î°¡ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö ¾Ë°í ÀÖÀ¸¹Ç·Î °ÅÀÇ ¼³¸íÇÒ °ÍÀÌ ¾ø´Ù. »ç½Ç, ù¹ø° ¶óÀο¡¼­ "if () {"¶ó´Â ºÎºÐÀº ¸Å¿ì °£´ÜÇÏ´Ù. ¿ì¸®°¡ ÀÔ·Â ¸ðµå¿¡ Àֱ⠶§¹®¿¡, ÀÌ ºÎºÐÀº ÆÄÀÏ¿¡ "if () {"À» ÀÔ·ÂÇÑ´Ù. ±× ´ÙÀ½ ºÎºÐÀÌ ¹®Á¦ÀÌ´Ù. Ä¿¼­¸¦ ´ÙÀ½ ¶óÀÎÀ¸·Î ³»¸®°í if ¹®À» ´Ý´Â "}"À» ÀÔ·ÂÇÑ ´ÙÀ½¿¡ Ä¿¼­¸¦ ´Ù½Ã µÎ ¹ø° °ýÈ£ÀÇ ¸Ç óÀ½¿¡ µÎ°í ´Ù½Ã ÀÔ·Â ¸ðµå·Î µ¹¾Æ°¡¾ß ÇÑ´Ù(ÀÔ·Â ¸ðµå¿¡¼­ ½ÃÀÛÇßÀ¸´Ï, ÀÔ·Â ¸ðµå·Î ³¡³ª¾ß ÇÑ´Ù. ¸í·É ¸ðµå ¸ÅÅ©·Î¿¡¼­µµ ¸¶Âù°¡Áö¿´´Ù). ½ÇÁ¦, ´ÙÀ½ ¶óÀÎÀ¸·Î °¡´Â ¹æ¹ý¿¡´Â µÎ °¡Áö°¡ ÀÖ´Ù.

ÇÑ °¡Áö´Â »ó´çÈ÷ ½±°í, ´Ù¸¥ Çϳª´Â ¾à°£ ¾î·ÆÁö¸¸ º¸´Ù ½ÇÁ¦·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. "»ó´çÈ÷ ½¬¿î" ¹æ¹ýÀº ¿£Å͸¦ ´©¸¥ ´ÙÀ½ ´Ý´Â °ýÈ£¸¦ ÀÔ·ÂÇÏ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸, ³ª´Â ´Ù¸¥ ¹æ¹ýÀ» ´õ ÁÁ¾ÆÇϴµ¥ º¸´Ù ½ÇÁ¦·Î »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ÀÌ ¹æ¹ýÀº ÀÔ·Â ¸ðµå¸¦ ¹þ¾î³ª¼­ Å»ÃâÇؼ­(±×·¸´Ù, ¸í·É ¸ðµå·Î µé¾î°£´Ù), vi ¸í·ÉÀÎ "o"·Î ÀÔ·Â ¸ðµå¿¡¼­ »õ ¶óÀÎÀ» ½ÃÀÛÇÑ ´ÙÀ½ ´Ý´Â °ýÈ£¸¦ ÀÔ·ÂÇÑ´Ù. ±×·±µ¥, ¸ÅÅ©·Î¿¡ <Esc>À» ¹®ÀÚ·Î ³ÖÀ¸·Á¸é ¾î¶»°Ô ÇØ¾ß Çϴ°¡?  ±× À¯ÀÏÇÑ ¹æ¹ýÀº ÀÔ·Â ¸ðµå¿¡¼­ CTRL-V¸¦ ´©¸¥ ´ÙÀ½ <Esc> Å°¸¦ ´©¸£´Â °ÍÀÌ´Ù. ±×·¸°Ô Çϸé ^[ °ú °°Àº µÎ °³ÀÇ ¹®ÀÚ°¡ ¸¸µé¾îÁöÁö¸¸ ´Ü¼øÈ÷ ±× µÎ ¹®ÀÚ¸¦ ÀÔ·ÂÇÑ °Í°ú´Â °°Áö ¾Ê´Ù(¸¸ÀÏ ±× µÎ ¹®ÀÚ¸¦ ´Ü¼øÈ÷ ÀÔ·ÂÇϸé if ¹® ³¡¿¡ ")^["ÀÌ ³ªÅ¸³ª´Â °ÍÀ» º¸°Ô µÉ °ÍÀÌ´Ù].

ÁÁ´Ù, ÀÌÁ¦ ¿ì¸®´Â ¸ðµç ¹®ÀÚµéÀÌ Á¦ ÀÚ¸®¿¡ µé¾î°¡°Ô Çߴµ¥ ¾ÆÁ÷ µÎ °¡Áö ÇØ°áÇØ¾ß ÇÒ °ÍÀÌ ÀÖ´Ù °ýÈ£ »çÀÌ¿¡ Ä¿¼­¸¦ À§Ä¡½ÃÅ°´Â °Í(½ÇÁ¦·Î µÎ ¹ø° °ýÈ£ÀÇ ¸Ç óÀ½¿¡)°ú ÀÔ·Â ¸ðµå·Î ³¡³»´Â °Í±îÁö ÇØ¾ß ÇÑ´Ù.

¿ì¼±, ÀÌÁ¦±îÁö ¿ì¸®°¡ ÇÑ °Í°ú ¾î´À À§Ä¡¿¡ ÀÖ´ÂÁö¸¦ ±â¾ïÇÏÀÚ. ´ÙÀ½Àº ¿ì¸®°¡ ÀÌÁ¦±îÁö ÇÑ °ÍÀ» º¸¿©ÁÖ°í ÀÖ´Ù:

-------------------

        if () {
        }_
 
        ---INSERT---

-------------------
(¹ØÁÙÀº Ä¿¼­ÀÇ ÇöÀç À§Ä¡¸¦ º¸¿©ÁÖ°í ÀÖ´Ù)

ÀÌÁ¦ ¿ì¸®´Â Ä¿¼­¸¦ ¿øÇÏ´Â À§Ä¡¿¡ µÑ °ÍÀÌ´Ù. ÇÏÁö¸¸, ÀÔ·Â ¸ðµå¿¡¼­´Â Ä¿¼­¸¦ ¿òÁ÷ÀÏ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾øÀ¸¹Ç·Î, ´Ù½Ã Å»ÃâÇØ¾ß ÇÑ´Ù. ÀÌ ¶§¹®¿¡ ±× ´ÙÀ½¿¡ ÀÖ´Â ^[ ÀÌ ÇÊ¿äÇÑ °ÍÀÌ´Ù. ÀÌ·¸°Ô µÇ¸é Ä¿¼­´Â ¹Ù·Î µÎ ¹ø° ÁÙ¿¡ ÀÖ´Â Áß°ýÈ£ À§¿¡ À§Ä¡ÇÏ°Ô µÈ´Ù. ±×·¯¸é vi À̵¿ Å°ÀÎ HJKLÀ» ÀÌ¿ëÇؼ­ Ä¿¼­¸¦ ÇÑ ¶óÀÎ À§·Î ¿Ã¸®°í ½Í°Ô µÈ´Ù. ÀÌ °æ¿ì¿¡ »ç¿ëÇÒ Å°´Â ¹°·Ð "k"ÀÌ´Ù. ÀÌÁ¦ Ä¿¼­´Â "if"ÀÇ "i" À§¿¡ À§Ä¡ÇÑ´Ù ±× ´ÙÀ½¿¡ ÀÖ´Â "´Ü¾î"ÀÇ ³¡¿¡ ¿Àµµ·Ï Ä¿¼­¸¦ ¿òÁ÷¿©¾ß ÇÑ´Ù(¿©±â¼­ÀÇ "´Ü¾î"´Â ½ÇÁ¦ ´Ü¾î°¡ ¾Æ´Ï¶ó µÎ °³ÀÇ °ýÈ£Áö¸¸). ±×·¡¼­, Ä¿¼­°¡ "if"ÀÇ ³¡¿¡ ¿Àµµ·Ï Çϱâ À§Çؼ­ ´Ü¾îÀÇ ³¡À¸·Î °¡¶ó´Â ¸í·É(e)À» ³»¸®°í ±× ´ÙÀ½¿¡ ÀÖ´Â "´Ü¾î"ÀÇ ³¡¿¡ ¿Àµµ·Ï ´Ù½Ã e ¸í·ÉÀ» ³»¸°´Ù. ÀÌÁ¦ Ä¿¼­°¡ ¹Ù¸¥ À§Ä¡¿¡ ÀÖ°Ô µÇ¾ú´Ù. ÇÏÁö¸¸ ÇÑ °¡Áö ÀÏÀÌ ³²¾Ò´Ù ÀÔ·Â ¸ðµå·Î µ¹¾Æ °¡´Â ÀÏÀÌ ¸»ÀÌ´Ù. Vi »ç¿ëÀÚ¶ó¸é "i" ¸í·ÉÀ¸·Î ¸í·É ¸ðµå¿¡¼­ ÀÔ·Â ¸ðµå·Î µ¹¾Æ °¥ ¼ö ÀÖ´Ù´Â »ç½ÇÀ» ´©±¸³ª ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù.

»ç¿ëµÈ ¸ðµç ¹®ÀÚµéÀ» ¸ð¾Æ º¸´Ï ´ÙÀ½°ú °°Àº ¹®ÀÚ¿­ÀÌ µÇ¾ú´Ù:

--------------------

if () {^[o}^]keei

--------------------

À§ÀÇ ¿¹Á¦¿¡¼­ "if"ÀÇ ³¡À¸·Î °¡±â À§Çؼ­ "e"¸¦ »ç¿ëÇÏ´Â °Í ´ë½Å¿¡ "l"À» »ç¿ëÇؼ­ ÇÑ Ä­ ¿À¸¥ÂÊÀ¸·Î °¥ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë¾ÆëÀ» ¼öµµ ÀÖ°Ú´Ù. ¹°·Ð "if"´Â µÎ ±ÛÀÚ·Î µÈ ´Ü¾î´Ï±î ±×·² ¼ö ÀÖ´Ù. for¿Í while¿¡ °üÇÑ ¸ÅÅ©·Î¸¦ »ìÆ캸°Ô µÇ¸é °£´ÜÇÑ À̵¿ Å°¸¦ »ç¿ëÇÏ´Â ´ë½Å¿¡ "e"¸¦ »ç¿ëÇ߱⠶§¹®¿¡ ÀÌµé ¼¼ °³ÀÇ ¸ÅÅ©·Î°¡ °ÅÀÇ À¯»çÇÑ ÇüŸ¦ °¡Áö°Ô µÇ¾ú´Ù´Â °ÍÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù.

¼¼ °³ÀÇ ¸ÅÅ©·Î¸¦ »ìÆì º¸°í ¸¸Á·Çß´Ù¸é(±×¸®°í ±×°ÍµéÀÌ °¡Áø °øÅëÁ¡À¸·Î ÀÎÇؼ­ Æí¾ÈÇÔÀ» ´À²¼±â¸¦ ¹Ù¶óÁö¸¸ ³Ê¹« ¸¹Àº °ÍÀ» ¹Ù¶ó´Â °ÍÀÎÁöµµ ¸ð¸£°Ú´Ù), ÀÌÁ¦ ¸¶Áö¸·¿¡ ÀÖ´Â ¸ÅÅ©·Î¸¦ ºÐ¼®Çϵµ·Ï ÇÏÀÚ(ÀÌÁ¦ ¹æ±Ý ÈξÀ ¾î·Á¿î °ÍÀ» ÇßÀ¸´Ï ¾ÆÁÖ ½¬¿î ÀÏÀÌ µÉ °ÍÀÌ´Ù).

¸¶Áö¸· ¸ÅÅ©·Î´Â ´ÙÀ½°ú °°´Ù:

--------------------

map!    ]inc    #include <.h>^[hhi

--------------------

C ÇÁ·Î±×·¡¸Ó¶ó¸é ÀÌ°ÍÀÌ ÆÄÀÏ À̸§ÀÌ ºüÁ® ÀÖ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé, Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇϱâ À§ÇÑ #include ¶óÀΰú °°´Ù´Â °ÍÀ» ½±°Ô ¾Ë¾ÆÂ÷¸± °ÍÀÌ´Ù. ÀÌ ¸ÅÅ©·ÎÀÇ ÀÌ·ÐÀû ±Ù°Å´Â Àüü °ñ°Ý ÆÄÀÏ ¾ÆÀ̵ð¾î¸¦ Á¤´çÈ­ÇÏ´Â µ¥ »ç¿ëµÈ °Í°ú À¯»çÇÏ´Ù. ±âº»ÀûÀ¸·Î, ¸ðµç #includeµÇ´Â ÆÄÀϵéÀº °°Àº Çü½ÄÀ» µû¸£¸ç, ¿ÀÁ÷ ¾à°£ ¾¿¸¸ ´Ù¸£´Ù(.h ¾Õ¿¡ ÀÖ´Â ÆÄÀÏ À̸§ ºÎºÐ¸¸ ´Ù¸£´Ù). ±×·¡¼­ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ÀÔ·ÂÇÏ´Â ´ë½Å¿¡:

-------------------

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <unistd.h>

------------------
(ÀÛÀº ¼ÒÄÏ ÇÁ·Î±×·¥ Çϳª¸¦ ÀÛ¼ºÇÏ´Â µ¥ ½ÇÁ¦·Î µé¾î °¡´Â Çì´õ ÆÄÀÏ ¸ñ·ÏÀÌ´Ù)

³ª´Â ´ÙÀ½À» Ãâ·ÂÇØ ÁÖ´Â ÇϳªÀÇ ¸ÅÅ©·Î¸¦ ÀÛ¼ºÇÑ´Ù.

------------------

#include <.h>

------------------

±×·± ´ÙÀ½ ".h" ¾Õ¿¡¼­ ÀÔ·Â ¸ðµå·Î ÀÖ°Ô Çؼ­, Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÅ°´Â ÀÛ¾÷À» ´Ü¼øÈ­Çؼ­ ÈξÀ ºü¸£°Ô ÀÏÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

¿ì¸®°¡ ÇØ¾ß ÇÒ ÀÏÀ» ºÐ¼®Çϱâ·Î ÇÏÀÚ. ¿ì¼±, Ãâ·ÂÇØ¾ß ÇÒ °ÍÀº À§¿¡¼­ º» °ÍÀÌ°í,  Ãâ·ÂÇÑ ´ÙÀ½¿£ ±×Àú Ä¿¼­¸¦ ¸¶Ä§Ç¥ À§¿¡ À§Ä¡½ÃŲ ´ÙÀ½ ÀÔ·Â ¸ðµå·Î µ¹¾Æ°¡´Â °ÍÀÌ´Ù. ³»°¡ ¸»ÇÑ °Íó·³, ¹æ±Ý ÇÑ °Í¿¡ ºñÇϸé ÀÌ°ÍÀº ³Ê¹« ½±´Ù.

ù¹ø° ´Ü°è´Â ÅؽºÆ®¸¸("#include <.h>") ÀÔ·ÂÇÏ¸é µÇ´Ï±î ½±´Ù. ±× ´ÙÀ½¿£ Ä¿¼­¸¦ À̵¿Çϱâ À§ÇØ ÀÔ·Â ¸ðµå¸¦ Å»ÃâÇÑ´Ù("^[",ÀÌÁ¦ Ä¿¼­´Â ">"¿¡ ÀÖ´Ù]. ±×·± ´ÙÀ½ Ä¿¼­¸¦ ¿ÞÂÊÀ¸·Î µÎ ¹ø ¿òÁ÷¿©¼­("hh") "." À§¿¡ ÀÖ°Ô ÇÑ´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î, ´Ù½Ã ÀÔ·Â ¸ðµå·Î µ¹¾Æ°£´Ù("i"). ÀÌ ÀÛ¾÷¿¡ »ç¿ëµÈ Å°¸¦ ÀüºÎ ¸ð¾Æº¸¸é?

"#include <.h>^[hhi"ÀÌ´Ù!!!

ÈǸ¢ÇÏ´Ù! ÀÌÁ¦ ¿©·¯ºÐÀº Àڽſ¡°Ô ²À ¸Â´Â vimÀ» ¸¸µé±â À§ÇÑ ÀÛ¾÷À» ½ÃÀÛÇÒ ¼ö ÀÖ´Â ¸î °³ÀÇ µµ±¸¸¦ °¡Áö°Ô µÈ °ÍÀÌ´Ù. º¸´Ù ¸¹Àº Á¤º¸°¡ ÇÊ¿äÇÏ´Ù¸é, ¿Â¶óÀÎ µµ¿ò¸»À» ÀÐ¾î º¸°Å³ª ¿©·¯ºÐ ½º½º·Î ½ÇÇèÇØ º¸±â ¹Ù¶õ´Ù. ÀÌ ±Û¿¡¼­ ´Ù·é ³»¿ë ¿Ü¿¡µµ ÇØ º¼ ¼ö ÀÖ´Â °ÍµéÀÌ ¹«Ã´À̳ª ¸¹Áö¸¸, ÀÌ ±ÛÀÇ ³»¿ëÀ» ½ÇÇèÇØ º¸´Â °Í¸¸À¸·Îµµ ¿©·¯ºÐÀº ÇÑ µ¿¾È ¹Ù»Ü °ÍÀÌ´Ù(¹°·Ð ³ªµµ ±×·² °ÍÀÌ´Ù). ÀڽŸ¸ÀÇ ¸ÚÁø vim ȯ°æÀ» ¸¸µé±â ¹Ù¶õ´Ù!