3. The power of ex

Á¦°¡ »ý°¢Çϱ⿡ vi°¡ °­·ÂÇÑ ¿¡µðÅͰ¡ µÉ ¼ö ÀÖ¾ú´ø °¡Àå Å« ÀÌÀ¯°¡ ÀÌ ex ¸ðµå ¶§¹®ÀÎ µíÇÕ´Ï´Ù. ex¸ðµå´Â vi¿¡ ¿©·¯ °¡Áö È®ÀåµÈ ±â´É°ú ¿ÜºÎ ÇÁ·Î±×·¥À» »ç ¿ëÇÒ ¼ö ÀÖ´Â Åë·Î¸¦ Á¦°øÇÕ´Ï´Ù. ¼¿ ¸í·ÉÀº ±âº»À̰í, À¯´Ð½ºÀÇ ±âº»ÀûÀ̰í À¯¿ëÇÑ À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
    ex ¸í·ÉÀÇ Çü½Ä
	:<¹üÀ§> ex¸í·É¾î [| ¸í·É ...]
¿ì¼± ex¸í·ÉÀº Çà ´ÜÀ§·Î ¸í·ÉÀÌ ½ÇÇàµÈ´Ù°í ¾Ë¾ÆµÎ½Ã±â ¹Ù¶ø´Ï´Ù.(¿ø·¡ ex ¿¡µðÅͰ¡ ¶óÀδÜÀ§ ¿¡µðÅÍÁÒ) ÀÌ·¸°Ô ÀÌÇØÇÏ´Â °ÍÀÌ °¡Àå ½±½À´Ï´Ù. ¹üÀ§ ¼³Á¤µµ ¹° ·Ð Çà ´ÜÀ§·Î ¼³Á¤ÀÌ µÇ°ÚÁö¿ä? ¹üÀ§¸¦ ¼³Á¤ÇÒ ¶§´Â ,·Î ±¸ºÐÇØ¼­ ½ÃÀÛ°ú ³¡À» ³ªÅ¸ ³À´Ï´Ù. Áï 1, 10 À̸é 1~10Çà¿¡ ´ëÇØ¼­ ¸í·ÉÀ» Àû¿ëÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à¿¡ »ý·«ÇÏ ¸é ÇöÀç À§Ä¡ÇÑ ÇàÀÌ ÇØ´çµË´Ï´Ù. Á¦°¡ À§¿¡¼­ ã±â ¸í·ÉÀÌ ¾î¶»°Ô »ç¿ëµÉÁö »ý°¢ÇØ º¸¶ó°í Çß´ø ¾ê±â°¡ ±â¾ïÀÌ ³ª½Ê´Ï±î? ¹üÀ§ ³»¿¡¼­ ¸í·ÉÀ» ¼öÇàÇÒ ¼öµµ ÀÖÁö¸¸ ¾î¶² ã±â¸¦ ÇÑ ÈÄ¿¡ ±× ÁÙ¿¡, ȤÀº ¾î¶² óÀ½ ÁÙÀ» ÁÖ¾îÁÖ°í ã±â°¡ ¼º°øÇÑ ÁÙ±îÁö ex¸í ·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù´Â ¾ê±â°¡ µÇ´Â °ÅÁÒ... ÀÚ¼¼ÇÑ °ÍÀº ¿ª½Ã µÚ¿¡¼­ ³ª¿À´Â ¿¹¿¡¼­ ã¾Æº¸½Ã±â ¹Ù¶ø´Ï´Ù.
:d	»èÁ¦
:co, t	º¹»ç
:m	À̵¿
:pu	ºÙ¿© ³Ö±â
:y	¹öÆÛ¿¡ º¹»ç
:=	ÇöÀç Çà¹øÈ£ Ç¥½Ã(¹öÀü¿¡ µû¶ó Ʋ¸²)
:p	ÁÙÀÇ ³»¿ëÀ» Ç¥½Ã
¿¹¸¦ µé¾î°¡¸é¼­ ¼³¸íÀ» ÇϰڽÀ´Ï´Ù. :1, $d (¹®¼­ ÀüüÀÇ »èÁ¦) $±âÈ£´Â ¹® ¼­ÀÇ ³¡À» ³ªÅ¸³À´Ï´Ù. Á¤±ÔÇ¥Çö½ÄÀÇ ¸¶Áö¸·¿¡¼­´Â ÁÙÀÇ ³¡À» ³ªÅ¸³»°í ¸í·É¸ðµå¿¡¼­ µµ ÁÙÀÇ ³¡À» ³ªÅ¸³»ÁÒ. $±âÈ£¸¦ ¾Ë¾ÆµÎ½Ã¶ó ¿¹¸¦ µé¾ú½À´Ï´Ù. :%d (¹®¼­ ÀüüÀÇ »è Á¦) %±âÈ£´Â ¹®¼­ Àüü¸¦ ³ªÅ¸³À´Ï´Ù. À§¿¡¼­ ¾´ ½Ä°ú °°Àº ÀÏÀ» ÇÏÁö¸¸ ÈξÀ ª¾ÆÁ³ ÁÒ. :.,+10y (ÇöÀç À§Ä¡¿¡¼­ 10Çà ¾Æ·¡±îÁö ¹öÆÛ¿¡ º¹»ç) ¹öÆÛ¿¡ º¹»ç¸¸ ÇÕ´Ï´Ù. :.,+10y|$|pu (ÇöÀç À§Ä¡¿¡¼­ 10Çà ¾Æ·¡±îÁö ¹öÆÛ¿¡ º¹»ç, ¸¶Áö¸·ÁÙ·Î À̵¿, ºÙ¿©³Ö ±â) | ±âÈ£¸¦ »ç¿ëÇϸé ÇÑ Çà¿¡ ¿©·¯ °³ÀÇ ex¸í·ÉÀ» ½áÁÙ ¼ö ÀÖ½À´Ï´Ù. :.m$ (ÇöÀç ÁÙÀ» Àß¶ó³½ ÈÄ ÁÙÀÇ ¸Ç ¸¶Áö¸·¿¡ Ãß°¡) :-, +y (ÇöÀç ÁÙ°ú À§, ¾Æ·¡ ÁÙÀ» º¹»ç) +- ±âÈ£¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϰí ÀÖ½À´Ï´Ù. ÇöÀç Çà¿¡¼­ -´Â À§ÂÊÀ» +´Â ¾Æ·¡ÂÊ Çà À» ÀǹÌÇÏÁÒ. :.,'xd (ÇöÀç ÁÙ¿¡¼­ x¿¡ ¸¶Å©ÇÑ ÁÙ±îÁö »èÁ¦) ¸¶Å©¸¦ ÅëÇÑ À̵¿ Áß¿¡ ¼­µµ 'X ·Î À̵¿Çϸé Çà´ÜÀ§·Î À̵¿ÇÏ´Â °ÍÀ» À§¿¡¼­ ¼³¸íÀ» Çß¾úÁÒ. ex¸ðµå¿¡¼­µµ ¹Ù·Î ¸¶Å©¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ''µîÀÇ ±âÈ£µµ ´ç¿¬È÷ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. ´Ü Çà´Ü À§´Ï±î `´Â ¹«È¿ÇÕ´Ï´Ù. :., /pattern/d (ÇöÀç ÁÙ¿¡¼­ patternÀÌ Ã³À½ ³ªÅ¸³ª´Â ÁÙ±î Áö »èÁ¦) °Ë»öÀ» ÀÌ¿ëÇÏ¿© ¹üÀ§¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ´Ü ÀÌ·¸°Ô Áö¿ì¸é ÆÐÅÏÀÌ ³ª Ÿ³­ ÁÙ±îÁö »èÁ¦µÈ´Ù´Â Á¡¿¡ À¯ÀÇÇϽñ⠹ٶø´Ï´Ù. :.y a (ÇöÀç ÁÙÀ» named buffer a¿¡ ÀúÀå) named bufferµµ ¿ª½Ã »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. º¹»ç ÇÒ ¹öÆÛ¸¦ ÁöÁ¤ÇÏ¿© yanking À» ÇÏ¿´½À´Ï´Ù. À̸¦ ºÒ·¯³¾ ¶§¿¡´Â :pu a (¹öÆÛ a¿¡ º¹»çµÈ °ÍÀ» ºÙÀ̱â) ¶Ç´Â ap ·Î ÇÏ¸é µÇ°ÚÁÒ... :.co$ (ÇöÀç ÁÙÀ» º¹»çÇØ¼­ ÁÙÀÇ ¸¶Áö¸·¿¡ ºÙÀ̱â) :/pattern/= (ÆÐÅÏÀÌ ³ªÅ¸³­ ÁÙ ¹øÈ£¸¦ Ç¥½Ã), :10+20d (10¹øÂ° ÁÙ¿¡¼­ +20±îÁö »èÁ¦) ÀÌ´Â ÇöÀç À§Ä¡°¡ 10 Çà ÀÌ¿ÜÀÏ ¶§ ÁöÁ¤ÇÑ 10ÁÙ¿¡¼­ +20±îÁö Áö¿î´Ù´Â ÀǹÌÀÔ´Ï´Ù. :10,+20d·Î ÇÏ¸é ¹¹°¡ ´Þ¶óÁú±î¿ä? ÀÌ·¸°Ô Çϸé 10Çà¿¡¼­ ÇöÀç Çà¿¡¼­ 20À» ´õÇÑ ÁÙ±îÁö Áö¿î´Ù ´Â Àǹ̰¡ µË´Ï´Ù. ´õ ±íÀÌ µé¾î°¡½Ã°í ½ÍÀ¸½Å ºÐÀº ¹®¼­¸¦ ÆíÁýÇÒ ¶§ ex¸ðµå·Î ÆíÁý À» ÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù. ex [filename]ÇÏ½Ã¸é µË´Ï´Ù. ÀÌ·¸°Ô ÇØº¸½Ã¸é Á» °©°©ÇϰÚÁö ¸¸ ex¸í·É¾î¸¦ È®½ÇÈ÷ ÀÍÈ÷½Ç ¼ö ÀÖÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù.

3.1. abbreviations

ÀÌ ±â´Éµµ Àß ¾²¸é ¸Å¿ì À¯¿ëÇÑ ±â´ÉÀÔ´Ï´Ù. ±ä ¹®ÀÚ¿­À» ¾à¾î ÀÔ·ÂÀ¸·Î ¾ò ¾î³»´Â °ÍÀÌÁÒ. ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â ÀÚÁÖ Å¸ÀÌÇεǴ ¿ÀŸ¿Í Á¤Å¸¸¦ ¹­¾î¼­ ÀÚµ¿ ¼öÁ¤ ±â´ÉÀ» ÇÏ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ¿ª½Ã ¿¹¸¦ µé¾î ¼³¸íÀ» ÇÏÁÒ. :ab univ. university ¶ó °í ÇØ µÓ½Ã´Ù. ÆíÁý¸ðµå¿¡¼­ univ.¶ó°í ÀÔ·ÂÇϰí white character¸¦ ÀÔ·ÂÇÏ´Â ¼ø°£ univ.°¡ university·Î ¹Ù²ð °ÍÀÔ´Ï´Ù. ³»°¡ the¸¦ teh¶ó°í ÀÚÁÖ ¿ÀŸ¸¦ ³½´Ù¸é :ab teh the¸¦ µî·ÏÇØ µÎ¸é µÇ°ÚÁÒ.

3.2. map, map!

ÀÌ ±â´Éµµ ¸Å¿ì À¯¿ëÇÕ´Ï´Ù. ¸ÅÅ©·Î¸¦ ¸¸µé¾î ¾µ ¼ö ÀÖµµ·Ï µµ¿ÍÁÝ´Ï´Ù. ¿ì ¼± Ư¼öŰÀÇ ÀԷ¿¡ ´ëÇØ¼­ ¾Ë°í ³Ñ¾î°©½Ã´Ù. ex¿¡¼­ [ctrl]-v¸¦ ´©¸£°í [enter]¸¦ ´©¸£¸é ^MÀ̶ó°í Ç¥½ÃµÉ °ÍÀÔ´Ï´Ù. ÀÌ ¹®ÀÚ°¡ [enter]¸¦ ³ªÅ¸³À´Ï´Ù. ºñ½ÁÇÏ°Ô [ctrl]-v¸¦ ´©¸£°í Ư¼ö۸¦ ´©¸£¸é ÇØ´çÇÏ´Â ¹®ÀÚ°¡ Ç¥½ÃµË´Ï´Ù. mapÀ¸·Î Á¤ÀÇÇØ ³õ Àº Ű ÀÔ·ÂÀº ¸í·É¸ðµå¿¡¼­ µ¿ÀÛÀ» Çϰí map!·Î ¸¸µé¾î ³õÀ¸¸é ÆíÁý¸ðµå¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. [esc]۰¡ ³Ê¹« ¸Ö¾î¼­ ´©¸£±â Èûµå½Å ºÐÀº :map! ^H ^[ ·Î ÇØ º¸½Ã ±â ¹Ù¶ø´Ï´Ù. [bs]۸¦ ´©¸£°Ô µÇ¸é ÆíÁý¸ðµå¿¡¼­ ¸í·É¸ðµå·Î ¹Ù²î°Ô µË´Ï´Ù. ÀÚÁÖ »ç¿ëÇÏÁö ¾Ê´Â ۸¦ ¸ÅÇÎÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ°ÚÁö¿ä. óÀ½ ½ÃÀÛ¸¸ ¸í·É¾î ¸ðµå¿¡¼­ »ç ¿ëÇÏ°í ÆíÁý¸ðµå¿¡¼­ »ç¿ëÇÑ´Ù´Â Àǹ̰¡ ÀÖÀ» »Ó Ű ÀÔ·ÂÀ» ±×´ë·Î ´ë½ÅÇØ ÁֹǷΠ½Ç Á¦·Î´Â µÎ ¸ðµå°£À» ÀÚÀ¯·Ó°Ô ³Ñ³ªµé ¼ö ÀÖ½À´Ï´Ù. Áï :map & I/*^[A*/^[ ÀÌ·¸°Ô ÇØ ³õÀ¸¸é &۸¦ ´©¸£¸é ÇöÀç ÁÙÀ» C¹®ÀÇ ÁÖ¼®À¸·Î ¸¸µé¾î ¹ö¸³´Ï´Ù. ÀÌ ¸í·É¿¡¼­´Â »ð ÀÔ°ú ¸í·É ¸ðµå¸¦ µÎ ¹øÀ̳ª ³Ñ³ªµé¾úÁÒ. FunctionŰ¿¡ ´ëÇØ¼­µµ ÀÌ·¯ÇÑ ¸ÅÇÎÇÏ´Â °Í ÀÌ °¡´ÉÇѵ¥ Â÷·Ê·Î #1 ~ #9 ¹øÀÌ function۸¦ ³ªÅ¸³À´Ï´Ù. :map #1 commands ÀÌ·± Çü½ÄÀÔ´Ï´Ù. ¾Æ´Ï¸é À§¿¡¼­ Çß´ø °Íó·³ [ctrl]-v ´ÙÀ½¿¡ function۸¦ ´­·¯¼­ ÀÔ·Â À» ¹Þ¾Æµµ µË´Ï´Ù. ¾Æ´Ï¸é [F1] ~ [F9]¸¦ ´ë½Å ½áÁ־ µÇ°í (ÀÌ

¿¡ °ªÀº /etc/termcap ¿¡ Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù.)

3.3. @-function

Named buffer¸¦ ÀÌ¿ëÇÑ macroÀÔ´Ï´Ù. °³³äÀº ¸Å¿ì °£´ÜÇÑ °ÍÀÌÁÒ. insert¸ð µå¿¡¼­ ¸ÅÅ©·Î·Î »ç¿ëÇÒ Å° ÀÔ·ÂÀ» ±×´ë·Î Ä£ ÈÄ¿¡ add ayyµîÀÇ Çü½ÄÀ¸·Î named buffer a¿¡ ÀúÀåÀ» ÇÕ´Ï´Ù. ÀÌ ¸ÅÅ©·Î¸¦ ºÒ·¯¼­ ¾µ ¶§ @¸¦ ¾Õ¿¡ ¾²°í µÚ¿¡ ¹öÆÛ¸íÀ» ¾¹´Ï´Ù. Áï @a¶ó°í Ä¡°Ô µÇ¸é ¾Æ±î ¸¸µé¾î¼­ a¹öÆÛ¿¡ ³Ö¾ú´ø Ű ÀÔ·ÂÀÌ ±×´ë·Î ¹Ýº¹ µÇ´Â °ÍÀÌÁÒ. @@¶ó¸é ¸¶Áö¸·¿¡ ¹öÆÛ¿¡ µé¾î°£ °ÍÀ» ½ÇÇàÇÏ°Ô µË´Ï´Ù. Çã ÀÌ°Ç ex¸í·É °ú º° °ü°è°¡ ¾ø´Â ±ÛÀ̱º¿ä. ÂÁ~ ¼öÁ¤ÇÏ·Á¸é Â÷·Êµµ ¼öÁ¤ÇÏ¿©¾ß ÇÏ´Â ... --

3.4. shell command

¿ì¼± ´Ù¸¥ ¿¡µðÅÍ¿¡¼­Ã³·³ shell¸ðµå·Î ºüÁ®³ª°¡·Á¸é :sh ¶ó°í ÀÔ·ÂÇÏ¸é µË ´Ï´Ù. ´Ù½Ã º¹±ÍÇÏ·Á¸é [ctrl]-d¸¦ ´©¸£¸é ´Ù½Ã vi·Î µÇµ¹¾Æ ¿À°Ô µË´Ï´Ù. ÇÏÁö¸¸ vi ´Â shell·Î ³ª°¡Áö ¾Ê°í ex¿¡¼­ ¹Ù·Î shell»óÀÇ ¸í·ÉÀ» ½ÇÇà ½Ãų ¼ö ÀÖ½À´Ï´Ù. ¹Ù·Î ! ±âÈ£¸¦ ÀÌ¿ëÇÕ´Ï´Ù. !gcc -c % ÀÌ·± ½Äµµ °¡´ÉÇϰÚÁÒ. :r !ls¶ó°í ÃÄ º¾½Ã´Ù. ls°¡ ½ÇÇàµÇ°í ±× °á°ú°¡ Áö±Ý À§Ä¡¿¡ µ¡ºÙ¿©Áý´Ï´Ù.
total 18
drwxrwxr-x 2 nu11 nu11 1024 May 25 22:01 .
drwx------ 11 nu11 nu11 2048 May 25 22:01 ..
-rw------- 1 nu11 nu11 12288 May 25 22:01 .vi-beginner.txt.swp
-rw-rw-r-- 1 nu11 nu11 14 May 25 21:59 test
-rw-rw-r-- 1 nu11 nu11 1583 May 25 22:01 vi-beginner.txt
°°Àº ¹æ¹ýÀ¸·Î ÀÚüÀûÀÎ Á¤·ÄÀ» ÇÏ´Â ¸í·ÉÀº ¾øÁö¸¸ sort¶ó´Â °­·ÂÇÑ ¼ÒÆ® ÇÁ·Î±×·¥À» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. sort¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ´Ù¸¥ Ã¥À» Âü°í ÇÏ½Ã±æ ¹Ù¶ó°í, ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ¿¹¸¸ µé¾îº¸À̵µ·Ï ÇϰڽÀ´Ï´Ù. À§ÀÇ ³»¿ëÀ» Å©±â¿¡ µû ¶ó¼­ Á¤·ÄÀ» ÇØ º¼±î¿ä?
:2,$ !sort +4

total 18
-rw-rw-r-- 1 nu11 nu11 14 May 25 21:59 test
drwxrwxr-x 2 nu11 nu11 1024 May 25 22:01 .
-rw-rw-r-- 1 nu11 nu11 1583 May 25 22:01 vi-beginner.txt
drwx------ 11 nu11 nu11 2048 May 25 22:01 ..
-rw------- 1 nu11 nu11 12288 May 25 22:01 .vi-beginner.txt.swp
ÀÚ ÀÌÁ¦ ¸¹°í ¸¹Àº À¯´Ð½º ¼¿ ¸í·É¾îµéÀ» ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹«¾ùÀ» ´õ ÇÒ ¼ö ÀÖÀ»Áö´Â ... ^^ 4.5 set, Àڽſ¡ ¸Â´Â vi ¸¸µé±â ÀÚ½ÅÀÇ ÀÛ¾÷ȯ°æ¿¡ ¸Â°Ô vi¸¦ ¼¼ÆÃÇÏ´Â ¹ýÀÔ´Ï´Ù. ¿ì¼± setÇÒ ¼ö ÀÖ´Â ¸ñ·Ï Àº set allÇϸé ÁÖ·ç·è ½ºÅ©·ÑÀÌ µÇ¸é¼­ ¿Ã¶ó°©´Ï´Ù. Çϳª¾¿ ¼³¸íÇϸé Áö±Ý±îÁö ½á¿Â °Í ¸¸Å­À̳ª ½á¾ß ÇÒ °Í °°³×¿ä. ^^ ½Ã°£ÀÌ ³ª¸é ³ªÁß¿¡ Ãß°¡Çϵµ·Ï ÇÏÁÒ... set nu È­¸éÀÇ ÁÂÃø¿¡ Çà¹øÈ£¸¦ Ãâ·ÂÇÕ´Ï´Ù. set ruler Ä¿¼­ÀÇ À§Ä¡°¡ ¿ìÃø ÇÏ´Ü¿¡ Ç¥½ÃµË´Ï´Ù. set aw , set ai ...Àú´Â À§¿¡ °ÍµéÀ» ÀÚÁÖ »ç¿ëÇϴ±º¿ä. ÇѰ¡Áö¸¸ ¾ð±ÞÇÏ°í ³Ñ¾î°¡ÁÒ. Àúµµ óÀ½¿¡ ¸ô¶ó¼­ °í»ý Á» ÇßÁÒ. set aw µî À¸·Î ¼¼ÆÃÀ» Çß´Ù¸é ÀÌ¿¡ ´ëÇÑ ÇØÁ¦´Â set noaw ÀÌ·± ½ÄÀ¸·Î ¾Õ¿¡ no¸¸ ºÙÀÌ¸é µÈ´Ù ´Â °Ì´Ï´Ù. -- ( ÀÚ¿ì¶û : Àúµµ ÀÌ ±â´ÉÀ» »ó´çÈ÷ ÁÁ¾ÆÇÕ´Ï´Ù :) )

3.5. ¿¬½À¹®Á¦

(1) ÇöÀç Ä¿¼­°¡ À§Ä¡ÇÑ ¶óÀÎÀ» ÁÖ¼®À¸·Î ¸¸µå´Â @-functionÀ» ¸¸µé¾î¶ó.