· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Emacs-KLDP

Emacs ¼Ò°³

Emacs ¼Ò°³

ÀÌ ÈÖÀç hjlee@wisenet.co.kr


óÀ½ Emacs ¸¦ Á¢ÇÑ °ÍÀº ½Ç½À½Ç¿¡¼­ CÇÁ·Î±×·¥À» Â¥±â ½ÃÀÛÇÒ¶§¿´½À´Ï´Ù. óÀ½ vi¸¦ ¹è¿ì°í Æò¼Ò DOS¸¦ »ç¿ëÇÒ ¶§ ¾²´ø ¿¡µðÅÍ¿Í »ç¿ë¹ýÀÌ ´Þ¶ó ¾Ö¸¦ ¸Ô°íÀÖ´ø Â÷¿¡ ±×³ª¸¶ Æò¼Ò ¾²´ø ¿¡µðÅÍ¿Í ºñ½ÁÇÏ°í Àå¾È¿¡ ĪÂùÀÌ ÀÚÀÚÇÑ ÀÌ ¿¡µðÅ͸¦ ¼Ò°³ ¹Þ¾Ò´ø °ÍÀÔ´Ï´Ù. óÀ½ Emacs ¸¦ ¾µ ¶§ Emacs ¿¡¼­ ºüÁ®³ª¿À´Â ¹æ¹ýÀ» ¸ô¶ó ÇÑÂü Çì¸Å´ø »ý°¢À» ÇÏ¸é ¿ôÀ½ÀÌ ³³´Ï´Ù. ±× ´ç½Ã Àú´Â ´ÜÁö ±ÛÀÚ¸¦ »ðÀÔÇÏ°í Áö¿ì°í ÀúÀåÇÏ°í ÇÏ´Â Á¤µµÀÇ ±â´É¸¸ »ç¿ëÇß¾ú½À´Ï´Ù. Linux ¸¦ ¼³Ä¡ÇÏ°í ÀÌÁ¦ Á» Àͼ÷ÇØ Áú ¹«·Æ, Àú´Â Emacs ¸¦ Àß ¹è¿öº¸°í ½ÍÀº »ý°¢ÀÌ µé¾ú½À´Ï´Ù. ±×¸®ÇÏ¿© ±¸ÀÔÇÑ Ã¥ÀÌ ``Learning GNU Emacs''¶ó´Â Ã¥ÀÔ´Ï´Ù. ±× Ã¥À» º¸¸é¼­ Àú´Â »ç¶÷µéÀÌ Á»´õ ½±°Ô Emacs ¸¦ ¹è¿ï ¼ö ÀÖ¾úÀ¸¸é ÁÁ°Ú´Ù¶ó´Â »ý°¢À» Çß½À´Ï´Ù. ±×¸®°í, Çѱ۷ΠÁ¤¸®ÇØ µÎ°í ½ÍÀº ¿å½ÉÀÌ »ý°å½À´Ï´Ù. Àü ÀÌ ±ÛÀÌ Emacs ¸¦ óÀ½ ¹è¿ì´Â »ç¶÷µé°ú ¶ÇÇÑ Àú Àڽſ¡°Ôµµ µµ¿òÀÌ µÇ±â¸¦ ¹Ù¶ø´Ï´Ù. ÇÊÀÚ´Â ÀÌ ±ÛÀ» Emacs ¸¦ ¾ÆÁ÷ Àß ¸ð¸£´Â »ç¶÷µéÀ» ´ë»óÀ¸·Î ¾µ °ÍÀÌ´Ù. ¶ÇÇÑ, Linux »ç¿ëÀÚµéÀ» À§ÇÑ ³»¿ëµéµµ Ãß°¡ µÉ °ÍÀÌ´Ù. ÀÌ ±ÛÀº ``Learning GNU Emacs'' ¶ó´Â Ã¥ÀÇ ³»¿ëÀ» ¸¹ÀÌ(°ÅÀÇ ´ëºÎºÐ) º£²¼´Ù. ¸¸ÀÏ ¿µ¾î¿¡ °ÅºÎ°¨ÀÌ º°·Î ¾ø´Ù¸é, ÀÌ ±ÛÀ» Àб⺸´Ù´Â ÀÌ Ã¥À» »ç¼­ º¸´Â °ÍÀÌ ÈξÀ µµ¿òÀÌ µÇ¸®¶ó »ý°¢ÇÑ´Ù. Ȥ, ¿µ¾î¿¡ °ÅºÎ°¨ÀÌ ÀÖ´õ¶óµµ, »çºÁ¼­ ¼ÕÇسªÁö´Â ¾ÊÀ» °ÍÀÌ´Ù.

1. Emacs ¼Ò°³

GNU Emacs´Â ¿À´Ã³¯, UNIX ¼¼°è¿¡¼­ °¡Àå ³Î¸® »ç¿ëµÇ´Â text ¿¡µðÅÍÁßÀÇ ÇϳªÀÌ´Ù. ±×°ÍÀº º°·Î ÀÌ»ÚÁöµµ ¾Ê°í, »õ·Î¿î °Íµµ ¾Æ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¸¹Àº »ç¶÷µéÀÌ ÀÌ ¿¡µðÅ͸¦ ÁÁ¾ÆÇÏ´Â ÀÌÀ¯´Â ±×°ÍÀÌ ¸Å¿ì À¯¿ëÇÑ toolÀ̶ó°í »ý°¢Çϱ⠶§¹®ÀÏ °ÍÀÌ´Ù. À¯¿ëÇÑ ±â´ÉÀ» ¹ß°ßÇÒ ¶§¸¶´Ù, Àü¿¡ ´Ù·ç´ø ¿¡µðÅ͵鿡¼­ ¸¸³ªº¸Áö ¸øÇÑ °³³äµéÀ» ¸¸³¯ ¶§¸¶´Ù, ÇÊÀÚ´Â ÀÌ ¿¡µðÅÍÀÇ help¹®ÀÌ ¾ÆÁ÷ ¸ðµÎ ¿µ¾î·Î ¾º¿©Á® ÀÖ´Ù´Â µ¥ ´ëÇØ ÇÑźÀ» ´À³¤´Ù. `ÀÌ help¹®µéÀÌ Çѱ۷ΠµÇ¾î ÀÖ¾ú°Å³ª ¿µ¾î¸¦ ÇÑ±Û ÀеíÀÌ ÀÐÀ» ¸¸ÇÑ ´É·ÂÀÌ ³ª¿¡°Ô ÀÖ¾ú´Ù¸é ÁøÀÛ¿¡ ¾Ë¾ÒÀ» ÅÙµ¥... ÀÌ help¹®µéÀÌ ÇѱÛÈ­ µÇ¾î Áø´Ù¸é Àü±¹ÀÇ ¿µ¾î¿¡ °ÅºÎ°¨À» ´À³¢´Â ¸¹Àº UNIX »ç¿ëÀÚµé, ÇÁ·Î±×·¡¸Óµé, ¿¡µðÅÍ »ç¿ëÀÚ, °³¹ßÀÚµé, µîµîµî ¿¡°Ô ÇÑÁٱ⠺ûÀÌ µÉÅÙµ¥...'

EmacsÀÇ °­Á¡Àº ¹«¾ùº¸´Ùµµ, ±× À¯¿¬¼º°ú È®À强¿¡ ÀÖ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ±×·¸Áö ¾Ê´õ¶óµµ ±×·¸°Ô ¸»ÇÒ ¼ö ÀÖ´Ù. ÇÊÀÚ´Â ¿©·¯ºÐÀÌ Emacs¿¡ ´ëÇØ ¾Ë¾Æ°¥¼ö·Ï ³î¶ó¿òÀ» ´À³¢°Ô µÇ¸®¶ó »ý°¢ÇÑ´Ù.

1.1 È­ÀÏ°ú ¹öÆÛ(buffers)ÀÇ ÀÌÇØ

(¿©±â¼­ÀÇ ¹öÆÛ´Â ¿ì¸®°¡ ¹öÆÛÇÏ¸é ¶°¿À¸£´Â °Í ÇÏ°í ´Ù¸£´Ù´Â »ç¶÷ÀÌ ÀÖ¾ú´Ù.) ¿¡µðÅ͵éÀº ½ÇÁúÀûÀÎ È­ÀÏÀ» ÆíÁýÇÏÁö´Â ¾Ê´Â´Ù. ´ë½Å È­ÀÏÀÇ ³»¿ëÀ» Àӽà ¹öÆÛ¿¡ ³Ö°í ±×°ÍÀ» ÆíÁýÇÑ´Ù. ±â¾ïÇ϶ó. ¹öÆÛ´Â È­ÀÏ°ú ¾ÆÁÖ ºñ½ÁÇÏ°Ô º¸ÀÏÁö¶óµµ ´ÜÁö È­ÀÏÀÇ º¹»çº»¸¸À» º¸°üÇÏ´Â Àӽà ÀÛ¾÷¿µ¿ªÀÏ »ÓÀÌ´Ù.

È­ÀÏó·³, ¹öÆÛµµ À̸§À» °¡Áö°í ÀÖ´Ù. ¹öÆÛÀÇ À̸§Àº ÀϹÝÀûÀ¸·Î ÆíÁýÇÏ°í ÀÖ´Â È­ÀÏÀÇ À̸§°ú °°´Ù. ¿©±â¿¡´Â ¸î°¡Áö ¿¹¿Ü°¡ ÀÖ´Ù. ±×·¯³ª ¿©±â¼­ Áß¿äÇÑ °ÍÀº ¹öÆÛ´Â È­ÀÏÀÇ º¹Á¦¶ó´Â Á¡ÀÌ´Ù. ¹öÆÛ¸¦ ¼öÁ¤ÇÏ°í ±× ¼öÁ¤ÀÌ ¸¶À½¿¡ µé¸é È­ÀÏ¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ¼öÁ¤ÀÌ ¸¶À½¿¡ µéÁö ¾Ê´Â´Ù¸é È­ÀÏÀ» ÀúÀåÇÏÁö ¾Ê°í Emacs ¸¦ ºüÁ®³ª¿Ã ¼ö ÀÖ´Ù.

1.2 ¸ðµå

Emacs ´Â ´Ù¾çÇÑ ÆíÁý¸ðµå¸¦ °¡Áö°í ÀÖ´Ù. ÀÌ°ÍÀÌ ÀǹÌÇÏ´Â °ÍÀº ÇÏ°íÀÚ ÇÏ´Â ÀÛ¾÷¿¡ µû¶ó ¾Ë¸Â°Ô ÇൿÇÑ´Ù´Â °ÍÀÌ´Ù. Emacs´Â ¿©·¯°¡Áö ´Ù¸¥ÀÛ¾÷¿¡ µû¶ó ´Þ¸® ÇൿÇÏ´Â ¿¡µðÅÍ°¡ µÈ´Ù. ¸ðµå´Â ÁÖ¸ðµå(majar modes)¿Í ºÎ¸ðµå(minor modes)°¡ ÀÖ´Ù. ¹öÆÛ´Â Çѹø¿¡ ÇÑ°¡Áö ÁÖ¸ðµå¿¡ ¼ÓÇÒ ¼ö ÀÖ´Ù.

        ¸ðµå                            ±â´É

Fundamantal mode                ÀϹÝÀûÀÎ ¸ðµå, Ưº°ÇÑ °ÍÀº ¾ø´Ù. 
Text mode                       ±ÛÀ» ÀÔ·ÂÇÒ ¶§.
Indented text mode              ¸¸ÀÔÀÌ ÀÖ´Â ±Û ÀÔ·Â.
Picture mode                    °£´ÜÇÑ ¼± ±×¸²À» ±×¸± ¶§.
C mode                          C ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§.
FORTRAN mode                    FORTRAN ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§.
Emacs LISP mode                 Emacs LISP ÇÔ¼ö¸¦ ¸¸µé ¶§.
LISP mode                       LISP ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§.
LISP interaction mode           LISP Ç¥ÇöµéÀ» °ËÅäÇÏ°í ÀÛ¼ºÇÒ ¶§.
nroff mode                      nroff¿ë È­ÀÏÀ» ±¸¼ºÇÒ ¶§.
TeX mode                        TeX¿ë È­ÀÏÀ» ±¸¼ºÇÒ ¶§.
LaTeX mode      

ºÎ¸ðµå´Â EmacsÀÇ Çൿ¿¡ Ưº°ÇÑ ¾ç»óÀ» Ãß°¡ÇÑ´Ù.

        ¸ðµå                            ±â´É
Abbrev mode                     ¾àÀÚÀÇ »ç¿ëÀ» °¡´ÉÇÏ°Ô ÇØÁØ´Ù.
Fill mode                       word wrapÀ» °¡´ÉÇÏ°Ô ÇØÁØ´Ù.
Overwrite mode                  ±ÛÀÚ¸¦ »ðÀÔÇϴ´ë½Å ¼öÁ¤ÇÑ´Ù.
Auto-save mode                  È­ÀÏÀ» ÁöÁ¤µÈ ¸¸Å­ ÀÚÁÖ ÀÚµ¿ÀúÀåÇÑ´Ù.
...

¸¸ÀÏ, Ưº°ÇÑ ¸ñÀûÀ» À§ÇÑ ¸ðµå°¡ ÇÊ¿äÇÏ´Ù¸é, ¿©·¯ºÐÀº ±× ¸ðµå¸¦ ÇÁ·Î±×·¥ÇÒ ¼ö ÀÖ´Ù. (Emacs°¡ ÇൿÇÏ´Â ¹æ½ÄÀ» Á¶Á¤ÇÒ ¼ö ÀÖ´Ù.) ¸¸ÀÏ, ±× ¸ðµå¸¦ ÇÊ¿ä·ÎÇÏ´Â »ç¶÷ÀÌ ¸¹´Ù¸é, ¹ú½á ´©±º°¡ ¸ÚÁö°Ô ¸¸µé¾î ³õÀº °ÍÀ» ±¸ÇÒ ¼ö ÀÖÀ»Áöµµ ¸ð¸¥´Ù. (ÀÏ·Ê·Î ÇÊÀÚ´Â c++-mode¸¦ ±¸Çؼ­ ¾²°í ÀÖ´Ù.)

2. ÀÏ´Ü ½áº¸±â

2.1 Emacs °¡µ¿

Emacs¸¦ °¡µ¿ÇÏ·Á¸é emacs ¶ó°í Ä¡°í µÚ¿¡ ÆíÁýÇÏ°íÀÚÇÏ´Â È­ÀÏÀÇ À̸§À» Ä¡¸éµÈ´Ù. ¸¸ÀÏ Á¸ÀçÇÏÁö ¾Ê´Â È­ÀÏÀ̸§À» »ç¿ëÇϸé Emacs´Â »õ·Î¿î Ä¿¼­´Â ``point'' ¶Ç´Â ``dot''¶ó°íµµ ºÒ¸°´Ù. EmacsÀÇ ¿Â¶óÀÎ µµ¿ò¸» ±â´ÉÀº ÀÌ ´Ü¾î¸¦ »ç¿ëÇÑ´Ù. ¸¹Àº ÆíÁý±â µé°ú´Â ´Þ¸®(´ëÇ¥ÀûÀ¸·Î vi) Emacs´Â ±ÛÀÚ¸¦ »ðÀÔÇÏ°í ¸í·ÉÀ» ³»¸®´Â ¸ðµå¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù. È­¸éÀÇ ¸Ç ¾Æ·§ÁÙÀº ``¹Ì´Ï¹öÆÛ''·Î »ç¿ëµÇ°í ¾Æ·¡¿¡¼­ µÎ¹ø° ÁÙÀº ¿©·¯°¡Áö Á¤º¸¸¦ Ç¥½ÃÇØ ÁØ´Ù. ÀÌ ÁÙÀº ``¸ðµå¶óÀÎ'' À̶ó°í ºÒ¸°´Ù. ¸Ç ¿ÞÂÊ¿¡ µÎ°³ÀÇ º°Ç¥(**)°¡ ÀÖ´Ù¸é, ¹öÆÛ°¡ ¼öÁ¤ µÇ¾ú´Ù´Â °ÍÀ» ³ªÅ¸³» ÁØ´Ù. (ÀÌ À§Ä¡¿¡ %%°¡ ÀÖÀ¸¸é Àбâ Àü¿ë ¹öÆÛÀÓÀ» ³ªÅ¸³½´Ù.) Emacs:µÚ¿¡ ¹öÆÛ(ȤÀº È­ÀÏ)ÀÇ À̸§ÀÌ ³ª¿Â´Ù. °ýÈ£ ¾È¿¡ ÇöÀçÀÇ ¸ðµå°¡ ³ª¿À°í, ±× µÚ¿¡ È­¸é¿¡ º¸ÀÌ´Â ºÎºÐÀÌ ÀüüÁß ¾îµðÂëÀÎÁö¸¦ Ç¥½ÃÇØ ÁØ´Ù. ¹öÆÛÀÇ Ã³À½ÀÏ °æ¿ì 'Top', ³¡ÀÏ °æ¿ì 'Bot' ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â %·Î Ç¥½ÃÇØ ÁÖ°í, ¹öÆÛÀÇ ³»¿ë Àüü°¡ È­¸é¿¡ º¸ÀÏ °æ¿ì¿¡´Â 'ALL'À̶ó°í Ç¥½ÃÇØ ÁØ´Ù.

EmacsÀÇ ¼÷·ÃÀÚ°¡ µÇ¸é, ¶§¶§·Î ¿©·¯°³ÀÇ ¹öÆÛ¸¦ °°ÀÌ ¿­¾î ³õ°í ÀÛ¾÷À» ÇÒ ¶§µµ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡µµ °¢°¢ÀÇ ¹öÆÛ´Â °¢°¢ÀÇ ¸ðµå¶óÀÎÀ» °¡Áö°Ô µÈ´Ù.

2.2 Emacs ¸í·É¾îµé

Emacs ´Â ¸îõ ¾Æ´Ï¸é ¸î¹é°³ÀÇ ¸í·É¾îµéÀ» °¡Áö°í ÀÖ´Ù. ¹°·Ð µ¶ÀÚµé·Î ¿¹»óÇÏ°í ÀÖ°ÚÁö¸¸ bindingÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀº ¸í·É¾î µéÀ̳ª, ¾î¶² Å°¿¡ bindingÀÌ ÀÌ·ç¾îÁ® ÀÖ´ÂÁö ¸ð¸£´Â °æ¿ì¿¡´Â M-x ``¸í·É¾î À̸§'' RETURN À» Ä¡¸é µÈ´Ù.

Emacs ´Â »ç¿ëÀÚ°¡ Àڱ⸸ÀÇ bindingÀ» °¡Áö°Å³ª, ±âÁ¸ÀÇ bindingÀ» ¹Ù²Ü ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ``Learning GNU Emacs'' 9ÀåÀ» Âü°íÇϰųª, Emacs Help¸¦ Âü°íÇϱ⠹ٶõ´Ù. (¾Æ´Ï¸é, ÀÌ ±ÛÀÌ È¤½Ã ±× ³»¿ëÀ» ´Ù·ç°Ô µÉÁöµµ ¸ð¸£¹Ç·Î ±× ¶§±îÁö ±â´Ù¸®¸é µÈ´Ù.)

2.3 ±âº» ¸í·Éµé

ÀÚ ÀÌÁ¦ °¡Àå ±âº»ÀûÀÎ ¸í·É¾îµé¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ¿©±â¼­ ºÎÅÍ´Â ¸í·É¾î ¿ä¾àÀ» ¸ÕÀú Á¦½ÃÇÏ°í º¸Ãæ¼³¸íÀÌ ÇÊ¿äÇÑ ºÎºÐÀº µÚ¿¡ ¼³¸íÇÏ´Â ¹æ½ÄÀ¸·Î ÁøÇàÇÏ°Ú´Ù. ¸í·É¾î ¿ä¾àÀº ¸í·É¾î ´ÜÃàÅ°¸¦ ¸ÕÀú Á¦½ÃÇÏ°í ³­ ÈÄ ¸í·É¾î À̸§À» ½á ³õ¾Ò´Ù.

C-x C-f (find-file)

°°Àº À̸§ÀÇ ¹öÆÛ¸¦ ¸¸µé°í, È­ÀÏÀ» Àоî¿Â´Ù. ¸¸ÀÏ È­ÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »õ·Î¿î È­ÀÏÀ» ¸¸µç´Ù. (´Ù¸¥ ¿¡µðÅ͵éÀÇ 'file open' °ú À¯»ç) C-x C-v (find-alternate-file) : ¹æ±Ý ÀÐÀº È­ÀÏ ´ë½Å ´Ù¸¥ È­ÀÏÀ» Àоî¿Â´Ù. À߸øµÈ È­ÀÏÀ» ÀоúÀ» ¶§ »ç¿ëÇÑ´Ù.

help

Emacs help´Â »ç¿ëÀÚ¿ÍÀÇ ´ëÈ­¸¦ À§ÇÏ¿© Á¾Á¾ ´Ù¸¥ À©µµ¿ì¸¦ ¿­°Å³ª, ¹Ì´Ï¹öÆÛ¸¦ »ç¿ëÇϰųª, ¶§·Î´Â Àüü À©µµ¿ì¸¦ Â÷ÁöÇϱ⵵ ÇÑ´Ù. ¹Ì´Ï ¹öÆÛ¿¡ ³ª¿À´Â ³»¿ëµéÀº Á¾Á¾ Áß¿äÇÑ Áö½ÄÀ» ¾ò°Ô ÇØÁֹǷÎ, ¹Ì´Ï ¹öÆÛÀÇ ³»¿ëµéÀ» À¯½ÉÈ÷ º¸´Â °Íµµ Emacs ¸¦ »¡¸® ÀÍÈ÷´Â ÇÑ ¹æ¹ýÀÏ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î C-h ¸¦ ´­·¯º¸ÀÚ. ? ¸¦ ´­·¯º¸¶ó°í ÇÑ´Ù. ?¸¦ ´­·¯º¸ÀÚ. C-h¸¦ Çѹø ´õ ´©¸£¸é ÀÚ¼¼ÇÑ Á¤º¸¸¦ ÁÖ°Ú´Ù°í ÇÑ´Ù. ´­·¯º¸ÀÚ. ¼³¸íÀÌ ³ª¿Â´Ù. ±×¸®°í È­¸é¿¡ ´Ù ¾È ³ª¿À¸é space ¸¦ ´©¸£¸é È­¸éÀÌ ½ºÄÚ·ÑµÈ´Ù°í ¾Ë·ÁÁØ´Ù. (C-h¸¦ ¸¶±¸ ´­·¯µµ °°Àº °á°ú°¡ »ý±ä´Ù.) t¸¦ ´­·¯¼­ TURTORIALÀ» ¼±ÅÃÇØ º¸ÀÚ. ÀÌÁ¦ TURTORIAL À» ÀÌ¿ëÇؼ­ Emacs °øºÎ¸¦ Çغ¸ÀÚ.

C-h f

Describe function: À̶ó°í ³ª¿Â´Ù. ¿©±â´Ù describe-function À̶ó°í Ãĺ¸ÀÚ.(ÀÌ·¯ÇÑ °æ¿ì¿¡µµ completionÀÌ Àû¿ëµÈ´Ù. Çѹø ½ÃµµÇØ º¸ÀÚ.) ±×·¯¸é, È­¸éÀÌ °¥¶óÁö¸é¼­ ¾Æ·¡ À©µµ¿ì¿¡ describe-function À̶ó´Â ¸í·É¿¡ ´ëÇÑ ¼³¸íÀÌ ³ª¿À°í, ¹Ì´Ï¹öÆÛ¿¡´Â Ä£ÀýÇÏ°Ôµµ, C-x 1 À» ´©¸£¸é ´Ù½Ã È­¸éÀÌ Çϳª°¡ µÈ´Ù´Â À̾߱Ⱑ ³ª¿Â´Ù. (ÀÌ ³»¿ëÀº ¹öÁ¯¿¡ µû¶ó Á¶±Ý ´Ù¸¦ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ¾î·µç Áö±Ý ÇÊÀÚ°¡ ¾²°í ÀÖ´Â Emacs ´Â ÀÌ·¸°Ô µ¿ÀÛÇÑ´Ù.)

¾Õ¿¡¼­ ÇÊÀÚ´Â ``Learning GNU Emacs'' ¶ó´Â Ã¥À» ¼Ò°³Çß¾ú´Ù. `À½, À߸øµÈ ³»¿ëÀÌ ÀûÀ¸·Á¸é Ã¥»Ó¸¸¾Æ´Ï¶ó ½ÇÁ¦·Î »ç¿ëÇؼ­ È®ÀÎÇغ¸°í, ¶Ç Emacs ÀÚüÀÇ ¼³¸íµµ Àо´Â °ÍÀÌ ÁÁ°ÚÁö.' ±×·¡¼­, ÇÊÀÚ´Â Emacs ÀÇ `info' ¸¦ Àо±â ½ÃÀÛÇß´ø °ÍÀÌ´Ù. `±×·¡, Emacs ¸¦ ÀÍÈ÷´Âµ¥ µµ¿òÀÌ ¸¹ÀÌ µÇ°Ú±º.'

¸¶À½ °°¾Æ¼± ±× ³»¿ëµéÀ» ´Ù ¹ø¿ªÇؼ­ ¿Ã¸®°í ½ÍÁö¸¸, Âü±â·Î Çß´Ù. ¾î·µç ÀÏ´Ü info ·Î µé¾î°¡ º¸ÀÚ. (`C-h i' ¸¦ ´©¸¥´Ù.) Emacs ³ëµå·Î °¡ÀÚ. (g ¸¦ ´©¸£°í emacs RETURN À» ´©¸¥´Ù. ¾Æ´Ï¸é, `* Emacs: (emacs)' ¶ó°í µÈ ÁÙÀ» ã¾Æ°¡¼­ RETURN À» ´­·¯µµ µÈ´Ù.)

»ðÀÔ

»ðÀÔÀ» À§Çؼ­´Â ±×³É ¹®ÀÚ¸¦ Ä¡¸é µÈ´Ù. ¹æ±Ý Ä£ ¹®ÀÚ¸¦ Áö¿ì·Á¸é DEL Å°¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ``Auto Fill'' ¸ðµå¸¦ »ç¿ëÇϸé ÁÙÀÌ ±æ¾îÁú °æ¿ì ÀÚµ¿À¸·Î ÁÙÀÌ ³ª´©¾îÁö°Ô ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ ¹®ÀÚ°¡ »ðÀԵǾîÁö´Â ´ë½Å¿¡ µ¤¾î¾º¿öÁö±â¸¦ ¹Ù¶õ´Ù¸é Overwrite ¸ðµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

control ¹®ÀÚ³ª 8Áø¼ö 200 ÀÌ»óÀÇ ¹®ÀÚ Äڵ带 °¡Áö´Â ¹®ÀÚµî Á÷Á¢ »ðÀÔÀÌ Èûµç ¹®ÀÚ¸¦ ÀÔ·ÂÇÏ·Á¸é `C-q' ¸í·ÉÀ» »ç¿ëÇÏ¸é µÈ´Ù.

  • C-q ´ÙÀ½ ÀԷ¹®ÀÚ¸¦ Àо »ðÀÔÇÑ´Ù. ¾Æ´Ï¸é »ðÀ﵃ ¹®ÀÚÀÇ Äڵ带 3ÀÚ¸® 8Áø¼ö·Î ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î C-g ¹®ÀÚ¸¦ ÀÔ·ÂÇÏ·Á¸é, `C-q C-g' ȤÀº `C-q 0 0 7' À» Ä¡¸é µÈ´Ù.

À̵¿ ¸í·É

  • C-f ¾ÕÀ¸·Î ÇÑÄ­ À̵¿. (`forward-char')
  • C-b µÚ·Î ÇÑÄ­ À̵¿. (`backward-char')
  • C-p Àü ÁÙ·Î À̵¿. (`previous-line')
  • C-n ´ÙÀ½ ÁÙ·Î À̵¿. ¸¸ÀÏ ¹öÆÛÀÇ ³¡ÀÌ¸é »õ·Î¿î ÁÙÀ» ¸¸µç´Ù. (`next-line')
  • M-f ÇÑ ´Ü¾î ¾ÕÀ¸·Î À̵¿. (`forward-word')
  • M-b ÇÑ ´Ü¾î µÚ·Î À̵¿. (`backward-word')
  • C-a ÁÙÀÇ Ã³À½À¸·Î À̵¿. (`beginning-of-line')
  • C-e ÁÙÀÇ ¸Ç µÚ·Î À̵¿. (`end-of-line')
  • M-a ÇÑ ¹®Àå µÚ·Î À̵¿. (`backward-sentence')
  • M-e ÇÑ ¹®Àå ¾ÕÀ¸·Î À̵¿. (`forward-sentence')
  • M-[ ÇÑ Àý µÚ·Î À̵¿. (`backward-paragraph')
  • M-] ÇÑ Àý ¾ÕÀ¸·Î À̵¿. (`forward-paragraph')
  • C-v ÇÑ È­¸é À§·Î À̵¿. (`scroll-up')
  • M-v ÇÑ È­¸é ¾Æ·¡·Î À̵¿. (`scroll-down')
  • C-x [ ÇÑ ÂÊ À§·Î À̵¿. (`backward-page')
  • C-x ] ÇÑ ÂÊ ¾Æ·¡·Î À̵¿. (`forward-page')
  • M-> ¹öÆÛÀÇ ³¡À¸·Î À̵¿. (`end-of-buffer')
  • M-<< ¹öÆÛÀÇ ½ÃÀÛÀ¸·Î À̵¿. (`begging-of-buffer')
  • C-l ÇöÀç ÁÙÀÌ È­¸éÀÇ Áß¾Ó¿¡ ¿Àµµ·Ï ÇÏ°í È­¸éÀ» ´Ù½Ã±×¸°´Ù. (`recenter') ¼ýÀÚ Àμö ´ÂÈ­¸éÀ̳ª À©µµ¿ìÀÇ ¸Ç À§ºÎÅÍ ¸î¹ø° ÁÙ¿¡ Æ÷ÀÎÆ®°¡ À§Ä¡ÇÒÁö ¸»ÇØÁØ´Ù. (0Àº ¸Ç À§ÁÙ). À½¼ö Àμö´Â È­¸éÀÇ ¸Ç ¾Æ·¡¼­ºÎÅÍ ÁÙÀ» ¼¾´Ù. (-1 Àº ¸Ç ¾Æ·¡ÁÙ)
  • M-r point ¸¦ È­¸éÀ̳ª À©µµ¿ìÀÇ ¹Ý À§Ä¡ÀÇ ¿ÞÂʳ¡¿¡ ³õ´Â´Ù. È­¸éÀÇ ±ÛÀº ¿òÁ÷ÀÌÁö ¾Ê´Â´Ù. (`move-to-window-line') ¼ýÀÚ Àμö´Â È­¸éÀ̳ª À©µµ¿ìÀÇ ¸Ç À§ºÎÅÍ ¸î¹ø° ÁÙ¿¡ Æ÷ÀÎÆ®°¡ À§Ä¡ÇÒÁö ¸»ÇØÁØ´Ù. (0Àº ¸Ç À§ÁÙ). À½¼ö Àμö´Â È­¸éÀÇ ¸Ç ¾Æ·¡¼­ºÎÅÍ ÁÙÀ» ¼¾´Ù. (-1 Àº ¸Ç ¾Æ·¡ÁÙ)
  • C-t Ä¿¼­ Àü°ú µÚÀÇ µÎ ¹®ÀÚ¸¦ ¹Ù²Û´Ù. (`transpose-chars').
  • M-x goto-char ¼ýÀÚ N À» Àо Ä¿¼­¸¦ N ¹ø° ¹®ÀÚ·Î ¿Å±ä´Ù. 1 ¹ø À§Ä¡°¡¹öÆÛÀÇ ½ÃÀÛÀÌ´Ù.
  • M-x goto-line ¼ýÀÚ N À» Àо Ä¿¼­¸¦ N ¹ø° ÁÙ·Î ¿Å±ä´Ù. 1 ¹ø ÁÙÀÌ ¹öÆÛÀÇ ½ÃÀÛÀÌ´Ù.

¼ýÀÚ Àμö

ÀÚ, ÀÌ ±ÛÀ» ÀÐÀ¸¸é¼­ ½Ç½ÀÀ» Çغ¸±â ¹Ù¶õ´Ù. ±×³É Àб⸸ ÇÏ´Â°Í º¸´Ù´Â Çѹø Çغ¸´Â °ÍÀÌ ÈξÀ »¡¸® ÀÍÈú ¼ö ÀÖ´Â ¹æ¹ýÀ̴ϱî.

À§ÀÇ `M-r' (`move-to-window-line') ¸í·ÉÀ» º¸¸é ¼ýÀÚ Àμö¸¦ ¹Þ¾ÆµéÀδٴ ³»¿ëÀÌ Àִµ¥, ¸í·É¿¡ ¾î¶»°Ô ¼ýÀÚ Àμö¸¦ ÁÙ±î?

  • `C-u' ´ÙÀ½¸í·É¿¡ ¼ýÀÚ Àμö¸¦ ÁØ´Ù.(ȤÀº ´ÙÀ½ ¸í·ÉÀ» ¹Ýº¹ÇÑ´Ù.)(`universal- argument'). C-u µÚ¿¡ ¸¶À̳ʽº ºÎÈ£(-)³ª ¼ýÀÚ°¡ ¿À¸é ¼ýÀÚ Àμö¸¦ ¸¸µç´Ù. C-u µÚ¿¡ ¸¶À̳ʽº ºÎÈ£(-)³ª ¼ýÀÚ°¡ ¿ÀÁö ¾ÊÀ¸¸é ±âº»°ªÀº 4ÀÌ´Ù. ¸¶À̳ʽº ºÎÈ£³ª ¼ýÀÚ ¾øÀÌ C-u¸¦ ¹Ýº¹Çؼ­ ´©¸£¸é ´©¸¦ ¶§¸¶´Ù Àμö¸¦ 4¹è ÇÑ´Ù. ¿¹¸¦ µé¾î¼­ `C-u C-u C-u a'¸¦ ´©¸£¸é `a' °¡ 4*4*4 °³ ÂïÈù´Ù. ±×¸®°í, `C-u 30 C-n'À» ´©¸£¸é 30ÁÙ ¾Æ·¡·Î `M-<¼ýÀÚn>' <¼ýÀÚn>À» ´ÙÀ½ ¸í·ÉÀÇ Àμö·Î ÁØ´Ù. (ȤÀº ¹Ýº¹ÇÑ´Ù.) ¿¹¸¦ µé¾î¼­ `M-3 M-5 C-f' ¸¦ ´©¸£¸é 35¹®ÀÚ ¾ÕÀ¸·Î À̵¿ÇÑ´Ù.

»èÁ¦ ¸í·É

  • DEL Ä¿¼­ ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ¸¦ Áö¿î´Ù. (`delete-backward-char').
  • C-d Ä¿¼­ À§ÀÇ ¹®ÀÚ¸¦ Áö¿î´Ù. (`delete-char').
  • C-k ÁÙÀÇ ³¡±îÁö Áö¿î´Ù. (`kill-line').
  • M-d Ä¿¼­ ´ÙÀ½¿¡ ³ª¿À´Â ´Ü¾î¸¦ Áö¿î´Ù.(`kill-word').
  • M-DEL Ä¿¼­ ¾Õ¿¡ ³ª¿À´Â ´Ü¾î¸¦ Áö¿î´Ù.(`backward-kill-word').
  • M-k Ä¿¼­·ÎºÎÅÍ ¹®À峡±îÁö¸¦ Áö¿î´Ù.(`kill-sentence')
  • C-x DEL Ä¿¼­·ÎºÎÅÍ ÀÌÀü ¹®ÀåÀÇ ½ÃÀÛ±îÁö Áö¿î´Ù.

º¯È­ Ãë¼Ò(Undoing Changes)

`Emacs ´Â ¹®¼­³ª ¹öÆÛÀÇ º¯È­¸¦ ¾î¶² ¾ç±îÁö(8000ÀÚ Á¤µµ) Ãë¼ÒÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇØÁشٰí? °¢°¢ÀÇ ¹öÆÛ¿¡ ´ëÇØ Ãë¼Ò°¡ µû·Î Àû¿ëµÈ´Ù. ÀϹÝÀûÀ¸·Î °¢°¢ÀÇ ¸í·ÉÀº ÇϳªÀÇ Ãë¼Ò ±â·ÏÀ» ³²±âÁö¸¸, `query-replace' ó·³ ¿©·¯ ±â·ÏÀ» ³²±â´Â ¸í·Éµµ ÀÖ°í ¹­¿©¼­ ±â·ÏµÇ´Â °æ¿ìµµ ÀÖ´Ù.'

  • C-x u ÇÑ´Ü°è Ãë¼Ò¸¦ ÇàÇÑ´Ù. (`undo').
  • C-_ °°´Ù.

°è¼ÓÀûÀÎ `C-_' ¶Ç´Â `C-x u' ¸í·ÉÀº ±â·ÏµÈ ÇÑ°è±îÁö ÀÌÀüÀÇ, ¶Ç ±× ÀÌÀüÀÇ º¯È­¸¦ Ãë¼ÒÇÑ´Ù. ¸¸ÀÏ ±â·ÏµÈ °ÍÀÌ ¾øÀ¸¸é ¿¡·¯ ¸Þ½ÃÁö¸¦ ³½´Ù. Ãë¼Ò ¸í·ÉÀÌ ¾Æ´Ñ ¾î¶² ¸í·Éµµ Ãë¼Ò ¸í·ÉÀÇ ¿¬¼ÓÀ» ²÷´Â´Ù. ÀÌ ½ÃÁ¡¿¡¼­ ÀÌÀüÀÇ Ãë¼Ò ¸í·ÉµéÀº º¯È­·Î ÀνĵǾî Ãë¼Ò ¸í·É¿¡ÀÇÇØ Ãë¼Ò µÉ ¼ö ÀÖ´Ù. Ãë¼Ò¸¦ Ãë¼ÒÇÏ·Á¸é, `C-f' µîÀÇ ¸í·ÉÀ» ³»¸®°í Ãë¼Ò ¸í·ÉÀ» ³»¸®¸é µÈ´Ù. (Á»´õ ±íÀº ³»¿ëÀ» ¾Ë°í ½ÍÀ¸½Ã´Ù¸é Emacs ÀÇ info ¸¦ ÂüÁ¶Çϼ¼¿ä.)

¹Ì´Ï¹öÆÛ

È­¸éÀÇ ¸Ç ¾Æ·§ÁÙÀº ``minibuffer window'' ȤÀº ``echo area'' ¶ó°í ºÒ¸®¿î´Ù. ÀÌ ¿µ¿ªÀº »ç¿ëÀÚ¿¡°Ô °£´ÜÇÑ Á¤º¸(¿¡·¯ ¸Þ½ÃÁöµî)À» Àü´ÞÇϰųª, È­Àϸí, ¹öÆÛ¸í, Lisp ÇÔ¼ö¸í, µîµîÀÇ º¹ÀâÇÑ Àμö¸¦ ³Ñ°Ü¹Þ´Âµ¥ »ç¿ëµÈ´Ù. ¶§¶§·Î ¹Ì´Ï¹öÆÛ´Â µðÆúÆ® Àμö¸¦ °ýÈ£ ¾È¿¡ Á¦½ÃÇϱ⵵ ÇÑ´Ù. ÀÌ ¶§ ÀÌ µðÆúÆ® Àμö¸¦ ÀÌ¿ëÇÏ·Á¸é ±×³É RETURN À» ´©¸£¸é µÈ´Ù. ¹Ì´Ï¹öÆÛ¸¦ »ç¿ëÇÏ´Â ¸í·ÉÀ» Ãë¼ÒÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀº `C-g'¸¦ ´©¸£´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº, ¹Ì´Ï¹öÆÛ¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¸í·ÉÀÌ¶óµµ ¿©·¯Å°µéÀ» ´©¸£´Â ¸í·ÉÀÇ °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

  • C-g quit ½ÅÈ£¸¦ º¸³½´Ù. (`keyboard-quit').

¹Ì´Ï¹öÆÛ¸¦ »ç¿ëÇÏ´Â ¸í·ÉÀ» ¹Ýº¹ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

  • C-x ESC ÃÖ±ÙÀÇ ¹Ì´Ï¹öÆÛ ¸í·ÉÀ» ´Ù½Ã ½ÇÇàÇÑ´Ù.(`repeat-complex-command').
  • M-p `C-x ESC' »óÅ¿¡¼­ ÀÌÀü¿¡ ±â·ÏµÈ ¸í·ÉÀ¸·Î À̵¿ÇÑ´Ù. (`previous-complex-command').
  • M-n `C-x ESC' »óÅ¿¡¼­ ´ÙÀ½(Á»´õ ÃÖ±Ù)¿¡ ±â·ÏµÈ ¸í·ÉÀ¸·Î À̵¿ÇÑ´Ù. (`next-complex-command').
  • M-x list-command-history ¸ðµç ¸í·É ±â·ÏÀ» º¸¿©ÁØ´Ù. `C-x ESC' ·Î ¹Ýº¹ÇÒ ¼ö ÀÖ´Â ¸ðµç ¸í·ÉÀ» º¸¿©ÁØ´Ù. °¡Àå ÃÖ±ÙÀÇ °ÍÀÌ ¾Õ¿¡ ¿Â´Ù.

µµ¿ò¸» ±â´É

Emacs ÀÇ µµ¿ò¸» ¸í·ÉÀº ¸ðµÎ `C-h' ·Î ½ÃÀÛÇÑ´Ù. h ´Â help ¶ó´Â ´Ü¾î¿¡¼­ µû¿Ô´Ù.

  • C-h a STRING RET À̸§¿¡ STRING À» Æ÷ÇÔÇÏ´Â ¸í·ÉÀÇ ¸ñ·ÏÀ» º¸¿©ÁØ´Ù. (`command-apropos').
  • C-h b ÇöÀç È¿°úÀÖ´Â Å° ``binding'' À» ¸ðµÎ º¸¿©ÁØ´Ù. (`describe-bindings').
  • C-h c KEY KEY °¡ ½ÇÇà½ÃÅ°´Â ¸í·ÉÀÇ À̸§À» Ç¥½ÃÇØ ÁØ´Ù. (`describe-key-briefly'). `c' ´Â `character' ¸¦ ³ªÅ¸³½´Ù.
  • C-h f FUNCTION RET FUNCTION À̶ó´Â À̸§ÀÇ Lisp ÇÔ¼ö¿¡ ´ëÇÑ ¼³¸íÀ» º¸¿©ÁØ´Ù.(`describe-function'). ¸í·ÉÀº Lisp ÇÔ¼ö À̹ǷΠ¸í·ÉÀ̸§ÀÌ »ç¿ëµÉ ¼öµµ ÀÖ´Ù.
  • C-h i Info ¸¦ ½ÇÇàÇÑ´Ù. (`info').
  • C-h k KEY KEY °¡ ½ÇÇà½ÃÅ°´Â ¸í·ÉÀÇ À̸§°ú ³»¿ëÀ» º¸¿©ÁØ´Ù. (`describe-key').
  • C-h l ´ç½ÅÀÌ Ä£ ¸¶Áö¸· 100°³ÀÇ ¹®ÀÚ¸¦ Ç¥½ÃÇØÁØ´Ù. (`view-lossage').
  • C-h m Çö ÁÖ¸ðµå(major mode) ¿¡ ´ëÇØ ¼³¸íÇØÁØ´Ù. (`describe-mode').
  • C-h n Emacs ÀÇ º¯È­¸¦ ¾Ë·ÁÁØ´Ù. (`view-emacs-news').
  • C-h s Çö syntax table ÀÇ ³»¿ë°ú ±×°ÍÀÇ Àǹ̸¦ º¸¿©ÁØ´Ù. (`describe-syntax').
  • C-h t Emacs tutorial À» º¸¿©ÁØ´Ù. (`help-with-tutorial').
  • C-h v VAR RET Lisp º¯¼ö VAR ¿¡ ´ëÇÑ ¼³¸íÀ» ÇØÁØ´Ù. (`describe-variable').
  • C-h w COMMAND RET ¾î¶² Å°°¡ COMMAND ¸í·ÉÀ» ½ÇÇà½ÃÅ°´ÂÁö ¾Ë·ÁÁØ´Ù. (`where-is').

Emacs ¿¡ Á¶±Ý Àͼ÷ÇØÁ³´Ù¸é ÀÌ µµ¿ò¸» ±â´ÉÀ» ¸¹ÀÌ È°¿ëÇϱ⸦ Àû±Ø ±ÇÇÑ´Ù. ¹º°¡ ±Ã±ÝÇÏ´Ù¸é µµ¿ò¸» ±â´ÉÀ» ¾î¶»°Ô ÀÌ¿ëÇÒ±î »ý°¢ÇÏ´Â ½À°üÀ» °¡Áö½Ã±æ. Emacs ¸¦ º¸´Ù ´õ Àß »ç¿ëÇÒ ¼ö ÀÖ´Â ºñ°áÀÏ °ÍÀÌ´Ù.

°£´ÜÇÑ ¼³Á¤ º¯È¯

`customize' ¶õ ´Ü¾î¸¦ ã¾Æº¸¸é `ÁÖ¹®¿¡ µû¶ó ¸¸µé´Ù.' ¶ó´Â ¶æÀÌ ÀÖ´Ù. `customization' À̶õ ´Ü¾î¸¦ Á» ´õ Á¤È®È÷ Ç¥ÇöÇÏÀÚ¸é `ÁÖ¹®¿¡ µû¶ó ¸¸µå±â' Á¤µµ°¡ µÉ ÅÍÀε¥, ±×³É `¼³Á¤ º¯È¯'À̶ó´Â Á» ¾Ö¸ÅÇÑ ´Ü¾î¸¦ »ç¿ëÇÏ¿´´Ù. Àüȸ¿¡ ¸»ÇßµíÀÌ ¿©±â¿¡ ÇÊÀÚÀÇ `.emacs' È­ÀÏÀ» °ø°³ÇÑ´Ù. `.emacs' È­ÀÏÀº Emacs °¡ °¡µ¿µÇ¸é¼­ ÇÏ¿©¾ß ÇÒ ÀϵéÀ» ±â¼úÇØ ³õ´Â È­ÀÏÀÌ´Ù. Emacs ÀÇ ÀÚü Lisp ¾ð¾î·Î ±â¼ú µÇ¾îÁ®ÀÖÁö¸¸, Àß »ìÆ캸¸é ´Ù¸¥ º¯È­¸¦ ÁÖ´Â °Íµµ ±×´ÙÁö ¾î·ÆÁö´Â ¾ÊÀ¸¸®¶ó »ý°¢µÈ´Ù. ±×·¯³ª, ¿ø·¡ÀÇ Ç¥ÁØ Å° binding Àº µÇµµ·ÏÀÌ¸é ¹Ù²ÙÁö ¸» °ÍÀ» ±ÇÇÑ´Ù.

;
;   hwijaeÀÇ 
;  .emacs È­ÀÏ
;  ÁÙ¿¡¼­ ';' ¹®ÀÚÀÇ µÞ ºÎºÐÀº ÁÖ¼®ÀÓ.
;  Linux SLS 1.03 ¼³Ä¡Çϸ鼭 ÀÖ´ø .emacs È­ÀÏ¿¡ »ìÀ» ºÙÀÓ.
; text ¸ðµå°¡ µÉ ¶§ turn-on-auto-fill À» ½ÇÇàÇ϶ó´Â ¶æ.
; (Áï, text ¸ðµå°¡ µÇ¸é auto-fill ¸ðµå°¡ µÊ.)
(setq text-mode-hook 'turn-on-auto-fill) 
(setq make-backup-files t)              ; backup file À» ¸¸µé¾î¶ó.  
(put 'eval-expression 'disabled nil)    ; ¿ø·¡ ÀÖ´ø ³»¿ë. (?)
; È­ÀÏ ¸í¿¡ µû¶ó ¸ðµå°¡ ¼±ÅõÊ.
; µÑ°ÁÙÀº .c ·Î ³¡³ª´Â È­ÀϸíÀ» °¡Áø È­ÀÏÀ» ¿­¸é c-mode ·Î
; µé¾î°¡¶ó´Â¶æ.         
(setq auto-mode-alist (mapcar 'purecopy            
'(("\\.c$" . c-mode) 
 ("\\.h$" . c-mode) 
 ("\\.C$" . c++-mode)
 ("\\.cc$" . c++-mode)
 ("\\.H$" . c++-mode)
 ("\\.hh$" . c++-mode)
 ("\\.cxx$" . c++-mode)
 ("\\.hxx$" . c++-mode)
 ("\\.cpp$" . c++-mode)
 ("\\.hpp$" . c++-mode)
 ("\\.tex$" . TeX-mode)
 ("\\.txi$" . Texinfo-mode)
 ("\\.el$" . emacs-lisp-mode)
 ("\\.a$" . c-mode))))

; Ãß°¡µÈ Å° binding.
; `M-[' (`backward-paragraph')¸í·ÉÀ» »ç¿ëÇÏÁö ¸øÇÏ°Ô µÊ.
; È­»ìǥŰ¿Í Insert, Page Up, Page Down µîÀÇ Å°°¡ ±× Àǹ̿¡ ¸Â°Ô 
; ÇൿÇÑ´Ù.
; ±â´ÉÅ°µé¿¡ (function keys) ¿øÇÏ´Â ±â´ÉÀ» ³ÖÀ» ¼ö ÀÖ´Ù.

(defvar cursor-map-2 (make-keymap)"for ESC-[")      ; ?
(fset 'Cursor-Map-2 cursor-map-2)                   ; ?
(define-key esc-map "[" 'Cursor-Map-2)              ; ?
(define-key esc-map "[3~" 'delete-backward-char)    ; del
(define-key esc-map "[2~" 'overwrite-mode)    ; insert
(define-key esc-map "[5~" 'scroll-down)       ; page-up
(define-key esc-map "[1~" 'beginning-of-line) ; home, X »ó¿¡¼­´Â ¾ÈµÊ.
(define-key esc-map "[4~" 'end-of-line)       ; end,      ''         .
(define-key esc-map "[6~" 'scroll-up)         ; page-down

(setq f1-function 'count-lines-page)
(setq f2-function 'find-file)                   
(setq f3-function 'other-window)            
(setq f4-function 'delete-other-windows)    
(setq f5-function 'split-window-vertically) 
(setq f6-function 'switch-to-buffer)        
(setq f7-function 'recenter)
(setq f8-function 'recenter)
(setq f9-function 'recenter)
(setq f10-function 'goto-line)
(setq f11-function 'where-is) 
(setq f12-function 'describe-function)       
(define-key esc-map "[11~" f1-function) ; F1
(define-key esc-map "[12~" f2-function) ; F2    
(define-key esc-map "[13~" f3-function) ; F3    
(define-key esc-map "[14~" f4-function) ; F4
(define-key esc-map "[15~" f5-function) ; F5
(define-key esc-map "[17~" f6-function) ; F6
(define-key esc-map "[18~" f7-function) ; F7
(define-key esc-map "[19~" f8-function) ; F8
(define-key esc-map "[20~" f9-function) ; F9
(define-key esc-map "[21~" f10-function) ; F10
(define-key esc-map "[23~" f11-function) ; F11
(define-key esc-map "[24~" f12-function) ; F12
(define-key esc-map "[[A"  f1-function) ; F1
(define-key esc-map "[[B"  f2-function) ; F2
(define-key esc-map "[[C"  f3-function) ; F3
(define-key esc-map "[[D"  f4-function) ; F4
(define-key esc-map "[[E"  f5-function) ; F5

(define-key esc-map "[A" 'previous-line)             ; up-arrow
(define-key esc-map "[B" 'next-line)                 ; down-arrow
(define-key esc-map "[C" 'forward-char)              ; right-arrow
(define-key esc-map "[D" 'backward-char)             ; left-arrow

(define-key esc-map "OA"        'previous-line) ;up-arrow
(define-key esc-map "OB"        'next-line)     ;down-arrow
(define-key esc-map "OC"        'forward-char)  ;right-arrow
(define-key esc-map "OD"        'backward-char) ;left-arrow

;
; ¼³Ä¡ÇÒ ¶§ºÎÅÍ ÀÖ´ø ³»¿ë. ÇÊÀÚ´Â Àß ¸ð¸§. 
;
(setq load-path 
      (cons (expand-file-name "PATH_FOR_AUC-TEX") load-path))
(autoload 'tex-mode 
          "auc-tex" "Automatic select TeX or LaTeX mode" t)
(autoload 'plain-tex-mode "auc-tex" "Mode for Plain TeX" t)
(autoload 'latex-mode "auc-tex" "Mode for LaTeX" t)
(autoload 'LaTeX-math-mode    "tex-math"      "Math mode for TeX." t)
(autoload 'outline-minor-mode "outline-m" "Minor Outline Mode." t)
 
(defun Ctl-C-prefix ()
  Ctl-C-keymap)
(setq Ctl-C-keymap (make-keymap))
(global-set-key "\C-c" (Ctl-C-prefix))
 
(define-key Ctl-C-keymap "m" 'LaTeX-math-mode)
(define-key Ctl-C-keymap "o" 'outline-minor-mode)
 
(make-variable-buffer-local 'outline-prefix-char)
(setq-default outline-prefix-char "\C-l")
(make-variable-buffer-local 'outline-regexp)
(setq-default outline-regexp "[*\l]+")
(make-variable-buffer-local 'outline-level-function)
(setq-default outline-level-function 'outline-level-default)

(autoload 'ispell-word "ispell"
  "Check the spelling of word in buffer." t)
(global-set-key "\e$" 'ispell-word)
(autoload 'ispell-region "ispell"
  "Check the spelling of region." t)
(autoload 'ispell-buffer "ispell"
  "Check the spelling of buffer." t)
(autoload 'ispell-complete-word "ispell"
  "Look up current word in dictionary and try to complete it." t)
(autoload 'ispell-change-dictionary "ispell"
  "Change ispell dictionary." t)

(setq-default abbrev-mode t) ; ½ÃÀÛ°ú µ¿½Ã¿¡ abbrev ¸ðµå°¡ µÈ´Ù.
(setq save-abbrevs t)        

(if (equal (nth 0 command-line-args) "mule")     ; ¸¸ÀÏ muleÀ̸é
    (setq load-path 
          (cons (expand-file-name "/usr/local/emacs/lisp") load-path)) 

())
(load "c++mode")                        ; c++mode ¸¦ Àд´Ù.

; c ¿¡¼­ indentation (¸¸ÀÔ?) ÇüÅÂ.
; ÇÊÀÚ´Â ³×Ä­À» ÁÁ¾ÆÇÔ.
(setq c-indent-level 4)                 
(setq c-continued-statement-offset 4)    
(setq c-continued-brace-offset -4)

; c ¿Í c++ ¸ðµå¿¡¼­ RETURN À» ´©¸£¸é 
; ´Ù½Ã indent ÇÏ°í ÁÙ ¹Ù²Ù°í indent ÇÔ.
(define-key c++-mode-map "\r" 'reindent-then-newline-and-indent) 
(define-key c-mode-map "\r" 'reindent-then-newline-and-indent)

(setq explicit-shell-file-name "/bin/bash") ; shell ¸ðµå¿¡¼­ »ç¿ëÇÒ
                                            ; shell À» ¸íÈ®È÷ ÇØÁÜ.
(read-abbrev-file "~/.abbrev_defs")     ; ¾à¾îµéÀ» ÀоîµéÀÓ.

(if (equal (nth 0 command-line-args) "mule") ; ¸¸ÀÏ mule À̸é,
(let () 
; ¼ÛÀç°æ´ÔÀÇ ¿ø .emacs È­ÀÏ
; ¹Ì´Ð½º°¡ Á¶±Ý °íħ.
; ÇÊÀÚ°¡ ¸¹ÀÌ »èÁ¦ÇÏ°í(¾Õ¿¡¼­ °ãÄ¡´Â ºÎºÐ) Á¶±Ý °íħ.
;
; µÎ¹ú½Ä »ç¿ëÀÚ¸¦ À§ÇÑ Å°º¸µå Á¤ÀÇ
; Çѱۿµ¹®ÀüȯÀº ¾ËÆ®+½ºÆäÀ̽º·Î Á¤ÀǵǾî ÀÖÀ½.
; /usr/local/hanauto È­ÀÏÀÌ µÎ¹ú½ÄÀԷ¿ÀÅ丶Ÿ·Î ¾²ÀÓ.
;(load-library "/usr/local/mule/lisp/hangul-mode")
;

;¼¼¹ú½Ä »ç¿ëÀÚ¸¦ À§ÇÑ Å°º¸µåÁ¤ÀÇ
;ÀÚü ÀԷ¿ÀÅ丶Ÿ¸¦ »ç¿ëÇÔ.
;¼¼¹ú½ÄÀ» ¾²±â À§Çؼ­´Â ÀÌ ÁÙ À§·Î ³×¹ø°ÀÇ Ã¹Ä­¿¡ ; Ç¥½Ã¸¦ÇÏ°í
;¾Æ·¡ µÎÁÙÀÇ Ã¹Ä­¿¡ ÀÖ´Â ; ¸¦ Á¦°ÅÇÏ¸é µÊ. (ÇÊÀÚ´Â ¼¼¹ú½ÄÀ» »ç¿ëÇÔ.)
      (require 'quail)
      (load "quail/hangul3")
      (setq kanji-input-code 0)
      )
  ())
;
; ³¡
;

¸¶Å©¿Í ¿µ¿ª(The Mark and the Region)

Emacs ¿¡´Â Çö ¹öÆÛÀÇ Æ¯Á¤ ¿¬¼ÓµÈ ºÎºÐ¿¡ ÇàÇÏ¿©Áö´Â ¸í·ÉÀÌ ¸¹ÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ ¸í·ÉÀÌ ÇàÇÏ¿©Áú ºÎºÐÀ» ÁöÁ¤Çϱâ À§ÇØ ÇÑÂÊ ³¡¿¡ ``mark'' ¸¦ ÁöÁ¤ÇÏ°í, Æ÷ÀÎÆ®¸¦ ´Ù¸¥ ÂÊ ³¡À¸·Î ¿Å°Ü¾ß ÇÑ´Ù. Æ÷ÀÎÆ®¿Í ¸¶Å© »çÀÌÀÇ ºÎºÐÀ» ``region'' À̶ó°í ÇÑ´Ù. (ÀÌÇÏ ``¿µ¿ª''À̶ó ÇÏ°Ú´Ù.) ¸¶Å©°¡ Çѹø ÁöÁ¤µÈ ÀÌÈÄ¿¡´Â, ±×°ÍÀÌ ´Ù¸¥ À§Ä¡¿¡ ´Ù½Ã ÁöÁ¤µÉ ¶§±îÁö ³²¾ÆÀִ´Ù. ¸¶Å©´Â ÅؽºÆ®°¡ ÀԷµǰųª »èÁ¦µÉ ¶§ ±× ¾ÕÀÇ ¹®ÀÚ¿¡ µû¶ó À§Ä¡°¡ °íÁ¤µÇ¾î Àִ´Ù. °¢°¢ÀÇ Emacs ¹öÆÛ´Â °¢°¢ ÀÚ½ÅÀÇ ¸¶Å©¸¦ °¡Áö°í ÀÖ´Ù. `C-y' (`yank') ¿Í `M-x insert-buffer' ¿Í °°ÀÌ ÅؽºÆ®¸¦ »ðÀÔÇÏ´Â ¸¹Àº ¸í·ÉµéÀº ¸¶Å©¸¦ »ðÀԵǴ ÅؽºÆ®ÀÇ ÇÑ ³¡¿¡ À§Ä¡½ÃÅ°°í ´Ù¸¥ ÇÑ ³¡¿¡ Æ÷ÀÎÆ®¸¦ À§Ä¡½ÃŲ´Ù. µû¶ó¼­, ¿µ¿ªÀº ¹Ù·Î »ðÀÔµÈ ÅؽºÆ®°¡ µÈ´Ù. ¿µ¿ªÀ» ¼³Á¤ÇÏ´Â °Í°ú´Â º°°³·Î ¸¶Å©´Â µÇµ¹¾Æ°¥ À§Ä¡¸¦ ¼³Á¤Çϴ´ë·Î À¯¿ëÇÏ´Ù. ÀÌ°ÍÀ» Á»´õ À¯¿ëÇÏ°ÔÇϱâ À§ÇØ Emacs ´Â 16°³ÀÇ ÀÌÀü ¸¶Å© À§Ä¡¸¦ `mark ring' ¿¡ ±â¾ïÇÑ´Ù.

  • C-SPC Æ÷ÀÎÆ®°¡ ÀÖ´Â À§Ä¡¿¡ ¸¶Å©¸¦ ÁöÁ¤ÇÑ´Ù. (`set-mark-command').
  • C-@ °°´Ù.
  • C-x C-x ¸¶Å©¿Í Æ÷ÀÎÆ®¸¦ ¹Ù²Û´Ù. (`exchange-point-and-mark'). Áï, ÇöÀçÀÇ Æ÷ÀÎÆ®°¡ ¸¶Å©°¡ µÇ°í ¸¶Å©°¡ ÀÖ´ø À§Ä¡·Î Æ÷ÀÎÆ®°¡ À̵¿ÇÑ´Ù.

À§ÀÇ ¸í·ÉµéÀ» ¸ÕÀú ±â¾ïÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°´Ù.

  • M-@ ´Ü¾îÀÇ ³¡¿¡ ¸¶Å©¸¦ ÁöÁ¤ÇÑ´Ù. (`mark-word'). ÀÌ ¸í·É°ú ´ÙÀ½ÀÇ ¸í·ÉÀº Æ÷ÀÎÆ®¸¦ À̵¿½ÃÅ°Áö´Â ¾Ê´Â´Ù.
  • C-M-@ Lisp Ç¥ÇöÀÇ ³¡¿¡ ¸¶Å©¸¦ ÁöÁ¤ÇÑ´Ù. (`mark-sexp').
  • M-h ÇöÀç ¹®´ÜÀ» ¿µ¿ªÀ¸·Î ¸¸µç´Ù. (`mark-paragraph').
  • C-M-h ÇöÀç Lisp defun À» ¿µ¿ªÀ¸·Î ¸¸µç´Ù. (`mark-defun').
  • C-x h ¹öÆÛ Àüü¸¦ ¿µ¿ªÀ¸·Î ¸¸µç´Ù. (`mark-whole-buffer').
  • C-x C-p ÇöÀç page ¸¦ ¿µ¿ªÀ¸·Î ¸¸µç´Ù. (`mark-page').

±× ¿Ü¿¡ `M-<' ¿Í °°ÀÌ ¸Ö¸® À̵¿ÇÏ´Â ¸í·ÉÀÇ °æ¿ì¿¡ À̵¿Çϱâ ÀÌÀüÀÇ Æ÷ÀÎÆ® À§Ä¡¿¡ ¸¶Å©°¡ µÈ´Ù. ÀÌ °æ¿ì¿¡ echo area ¿¡ ``Mark set'' À̶ó´Â ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ÀÌÁ¦ ¸¶Å©¸¦ µ¹¾Æ°¥ À§Ä¡¸¦ ±â¾ïÇϴµ¥ ÀÌ¿ëÇغ¸ÀÚ. Emacs ´Â ÀÌÀü 16°³ ¸¶Å©ÀÇ À§Ä¡¸¦ ``mark ring''¿¡ ±â¾ïÇÑ´Ù. ¸¶Å©¸¦ ÁöÁ¤ÇÏ´Â ´ëºÎºÐÀÇ ¸í·ÉÀº ÀÌÀüÀÇ ¸¶Å©¸¦ ÀÌ ``mark ring'' ¿¡ push ÇÑ´Ù. (½±°Ô¸»Çؼ­ ±â¾ïÇÑ´Ù.) ÀÌÁ¦ ¸¶Å©µÈ À§Ä¡·Î ã¾Æ°¡´Â ¸í·É¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.

`C-u C-SPC' ȤÀº `C-u C-@' Æ÷ÀÎÆ®¸¦ ¸¶Å© À§Ä¡·Î ¿Å±â°í ring ÀÇ ÀÌÀü ¸¶Å© À§Ä¡·Î ¸¶Å©¸¦ ¿Å±ä´Ù. ¸Ö¸® À̵¿ÇÏ´Â ¸í·ÉÀº À̵¿Çϱâ ÀüÀÇ À§Ä¡¿¡ ¸¶Å©¸¦ ÇÔÀ¸·Î µÇµ¹¾Æ °¡´Â °ÍÀ» ½±°Ô ¸¸µç´Ù. º¯¼ö `mark-ring -max' ´Â mark ring ÀÌ ±â¾ïÇÏ´Â ÃÖ´ë ¸¶Å©ÀÇ °¹¼ö¸¦ ³ªÅ¸³½´Ù.

Deletion and Killing

¹öÆ۷κÎÅÍ ÅؽºÆ®¸¦ Áö¿ì´Â ´ëºÎºÐÀÇ ¸í·ÉÀº ¸¶À½ÀÌ ¹Ù²î¾úÀ» ¶§ ´Ù½Ã µ¹¸®°Å³ª ¿Å±â°Å³ª º¹»çÇϱâ À§ÇØ ±×°ÍµéÀ» ÀúÀåÇÑ´Ù. ÀÌ·± ¸í·ÉµéÀº ``kill'' ¸í·ÉÀ̶ó ¾Ë·ÁÁ®ÀÖ´Ù. Áö¿öÁö´Â ÅؽºÆ®¸¦ ÀúÀåÇÏÁö ¾Ê´Â ¸í·ÉµéÀº ``delete'' ¸í·ÉÀ̶ó ¾Ë·ÁÁ®ÀÖ´Ù. (ÀÌÇÏ kill Àº »èÁ¦, delete ´Â Á¦°Å¶ó ±¸ºÐÇÏ°Ú´Ù.) Á¦°Å ¸í·ÉÀº ÇÑ ±ÛÀÚ¸¸ Áö¿ì´Â ¸í·ÉÀ̳ª, space ³ª newline ¸¸À» Áö¿ì´Â ¸í·ÉµéÀÌ Æ÷ÇԵȴÙ. ½Ç¼ö·Î ±ÛÀ» »èÁ¦, ȤÀº Á¦°ÅÇßÀ» °æ¿ì¿¡´Â `C-x u' (`undo') ¸í·ÉÀ» »ç¿ëÇؼ­ Ãë¼ÒÇÒ ¼ö ÀÖ´Ù.

Á¦°Å

  • C-d Ä¿¼­ À§ÀÇ ¹®ÀÚ¸¦ Áö¿î´Ù. (`delete-char').
  • DEL Ä¿¼­ ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ¸¦ Áö¿î´Ù. (`delete-backward-char').
  • M-\ Æ÷ÀÎÆ® ÁÖÀ§ÀÇ space µé°ú tab µéÀ» Áö¿î´Ù. (`delete-horizontal-space').
  • M-SPC Æ÷ÀÎÆ® ÁÖÀ§ÀÇ space µé°ú tab µéÀ» space Çϳª¸¸ ³²±â°í Áö¿î´Ù. (`just-one-space').
  • C-x C-o Çö ÁÙ ÁÖÀ§ÀÇ ºó ÁÙµéÀ» Áö¿î´Ù. (`delete-blank-lines').
  • M-^ »çÀÌÀÇ newline °ú µû¸£´Â indentation À» Áö¿ö¼­ µÎ ÁÙÀ» Çϳª·Î ÇÕÄ£´Ù. (`delete -indentation').

»èÁ¦ ¸í·É

  • C-k ÁÙÀÇ ³ª¸ÓÁö ºÎºÐÀ̳ª ¸î°³ÀÇ ÁÙÀ» Áö¿î´Ù. (`kill-line').
  • C-k ¿¡ ¼ýÀÚ Àμö¸¦ ÁÖ¸é ¿©·¯ÁÙÀ» ÇѲ¨¹ø¿¡ Áö¿î´Ù. ¸¸ÀÏ À½¼ö Àμö¸¦ ÁÖ¸é Æ÷ÀÎÆ® ¾ÕÂÊÀ» Áö¿î´Ù. ¸¸ÀÏ 0À» Àμö·Î ÁÖ¸é Æ÷ÀÎÆ®¿¡¼­ ÁÙÀÇ ½ÃÀÛ±îÁö Áö¿î´Ù.
  • C-w (Æ÷ÀÎÆ®¿¡¼­ ¸¶Å©±îÁöÀÇ) ¿µ¿ªÀ» Áö¿î´Ù. (`kill-region').
  • M-d ´Ü¾î¸¦ Áö¿î´Ù. (`kill-word').
  • M-DEL ´Ü¾î¸¦ µÞ¹æÇâÀ¸·Î Áö¿î´Ù. (`backward-kill-word').
  • C-x DEL µÚ·Î ¹®ÀåÀÇ ½ÃÀÛ±îÁö Áö¿î´Ù. (`backward-kill-sentence').
  • M-k ¹®ÀåÀÇ ³¡±îÁö Áö¿î´Ù. (`kill-sentence').
  • M-z CHAR CHAR °¡ ³ª¿À±â Àü À§Ä¡±îÁö Áö¿î´Ù. (`zap-to-char').

ºÙÀ̱â (Yanking)

  • C-y ¸¶Áö¸·À¸·Î »èÁ¦µÈ ÅؽºÆ®¸¦ »ðÀÔÇÑ´Ù. (`yank').
  • M-y ÀÌÀü¿¡ »èÁ¦µÈ ÅؽºÆ®·Î ´Ù½Ã »ðÀÔÇÑ´Ù. (`yank-pop').
  • M-w ¿µ¿ªÀ» ½ÇÁ¦·Î »èÁ¦ÇÏÁö´Â ¾Ê°í ¸¶Áö¸·À¸·Î »èÁ¦µÈ ÅؽºÆ®·Î ¸¸µç´Ù. (`copy-region-as-kill').
  • C-M-w µÚ µû¶ó ³»¸®´Â »èÁ¦ ¸í·É¿¡ ÀÇÇØ »èÁ¦µÇ´Â ÅؽºÆ®¸¦ ¸¶Áö¸·¿¡ »èÁ¦µÈ ÅؽºÆ®¿¡ ºÙÀδÙ. (`append-next-kill').

`C-y', `M-y' ¸í·É¸¸ Àá½Ã »ìÆ캸ÀÚ.

¿¹¸¦ µé¾î A-B-C-D ³×°³ÀÇ ¹®´ÜÀ» °¡Áö´Â ±Û¿¡¼­ B ¹®´ÜÀ» »èÁ¦(kill) Çß´Ù°í °¡Á¤Çغ¸ÀÚ. ÀÌÁ¦ A-C-D ¿Í °°Àº ±ÛÀÌ µÉ °ÍÀÌ´Ù. ÀÌÁ¦ C, D ¹®´ÜÀÇ ¼ø¼­¸¦ ¹Ù²Ù°í ½Í´Ù. ±×·¯¸é C¸¦ »èÁ¦ÇÏ°í, DÀÇ ³¡¿¡¼­ `C-y' ¸¦ ´©¸£¸é µÈ´Ù. ÀÌÁ¦ ±ÛÀº A-D-CÀÇ ±¸Á¶¸¦ °¡Áö°Ô µÈ´Ù. ±×·±µ¥, ±×·¸°Ô ÇÏ°í³ª´Ï BÀÇ ³»¿ëÀ» A ¾Õ¿¡ ³õ°í ½Í¾îÁ³´Ù. ±×·¯¸é, A ÀÇ ¾Õ¿¡°¡¼­ `C-y'¸¦ ´©¸¥´Ù. ±×·¯¸é, C°¡ »ðÀ﵃ °ÍÀÌ´Ù. ÀÌ ¶§, `M-y' ¸¦ ´©¸£¸é, CÀÇ ³»¿ëÀÌ »ðÀÔµÈ ÀÚ¸®¿¡ BÀÇ ³»¿ëÀÌ µé¾î°¥ °ÍÀÌ´Ù. `M-y' (`yangk-pop') ¸í·ÉÀº `C-y' ȤÀº, ±×¿¡ ÀÌÀº `M-y' ¸í·É µÚ¿¡¼­¸¸ µ¿ÀÛÇÑ´Ù. Áï, `C-y' ¸¦ ´©¸£¸é °¡Àå ÃÖ±Ù¿¡ »èÁ¦µÈ ³»¿ëÀÌ »ðÀԵǰí, 'M-y'¸¦ ´©¸¦ ¶§¸¶´Ù, ±× ÀÌÀü¿¡ »èÁ¦µÈ ³»¿ëÀ¸·Î ¹Ù²î¾î »ðÀԵǴ °ÍÀÌ´Ù. ÀÌ·¸µí »èÁ¦µÇ´Â ³»¿ëÀº "kill ring" ¿¡ ÀúÀåµÇ´Âµ¥, ÀúÀåµÇ´Â »èÁ¦µÈ ÅؽºÆ®ÀÇ ÃÖ´ë °¹¼ö´Â kill-ring-max ¶ó´Â º¯¼ö¿¡ ÀúÀåµÈ´Ù. º¸Åë ±âº»°ªÀº 30ÀÌ´Ù.

¸¸ÀÏ `M-y' ¸¦ ¸î¹ø ´­·¯¾ß ¿øÇÏ´Â ±ÛÀÌ ³ª¿ÃÁö ¾Ë°í ÀÖ´Ù¸é, `C-y' ¿¡ ¼ýÀÚ Àμö¸¦ Á־ ¹Ù·Î ²¨³»¿Ã ¼ö ÀÖ´Ù. ¿¹·Î `C-u 2 C-y' ´Â `C-y M-y'¿Í °°´Ù.

Á÷»ç°¢Çü

Á÷»ç°¢Çü ¿µ¿ªÀ» ´Ù·ç´Â ¸í·ÉµéÀ» »ìÆ캸ÀÚ. Á÷»ç°¢ÇüÀ» ¿µ¿ªÀ» ¼³Á¤ÇÏ´Â °ÍÀº º¸Åë ¿µ¿ªÀ» ¼³Á¤ÇÏ´Â °Í°ú ºñ½ÁÇÏ´Ù. ÇÑÂÊ ³¡¿¡ Æ÷ÀÎÆ®, ÇÑÂÊ ³¡¿¡ ¸¶Å©¸¦ À§Ä¡ ½ÃÅ°¸é µÈ´Ù.

  • M-x delete-rectangle Á÷»ç°¢Çü ¿µ¿ªÀ» Áö¿î´Ù.
  • M-x kill-rectangle À§ÀÇ ¸í·É°ú ºñ½ÁÇÏ´Ù. ±×·¯³ª, Áö¿öÁö´Â ³»¿ëÀ» "last killed rectangle" ·Î ÀúÀåÇÑ´Ù.
  • M-x yank-rectangle ``last killed rectangle''À» ±×°ÍÀÇ À§ ¿ÞÂÊ ³¡ÀÌ Æ÷ÀÎÆ® À§Ä¡¿¡ ¿Àµµ·Ï »ðÀÔÇÑ´Ù.
  • M-x open-rectangle Á÷»ç°¢Çü¿µ¿ªÀ» ºó °ø°£À¸·Î ä¿î´Ù. ¿ø·¡ÀÇ ³»¿ëÀº Á÷»ç°¢Çü ¿µ¿ª ¿À¸¥ÂÊÀ¸·Î ¹Ð·Á³­´Ù.
  • M-x clear-rectangle Á÷»ç°¢Çü¿µ¿ªÀÇ ³»¿ëÀ» ¾ø¿¡°í ½ºÆäÀ̽º¸¦ ä¿î´Ù.

µî·ÏºÎ(Registers)

Emacs ``µî·ÏºÎ'' ´Â ÅؽºÆ®³ª À§Ä¡¸¦ ´ÙÀ½ »ç¿ëÀ» À§ÇØ ÀúÀåÇÏ´Â Àå¼ÒÀÌ´Ù. µî·ÏµÈ ÅؽºÆ®´Â ¹öÆÛ¿¡ ¿øÇÏ´Â ¸¸Å­ º¹»çµÉ ¼ö ÀÖ´Ù; À§Ä¡´Â ´ÙÀ½¿¡ ±× À§Ä¡·Î µ¹¾Æ¿À±â À§ÇØ µî·ÏÇÒ ¼ö ÀÖ´Ù. Á÷»ç°¢Çü ¿µ¿ªµéµµ µî·ÏºÎ¿¡ µî·ÏµÉ ¼ö ÀÖ´Ù. °¢ µî·ÏºÎµéÀº ÇÑ ¹®ÀÚ·Î µÈ À̸§À» °¡Áö°í ÀÖ´Ù. °¢°¢ÀÇ µî·ÏºÎ´Â ÇϳªÀÇ ÅؽºÆ®³ª À§Ä¡, ȤÀº Á÷»ç°¢Çü ¿µ¿ªÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ÇÑ µî·ÏºÎ¿¡´Â ÇÑ ½ÃÁ¡¿¡ ÇÑ°¡Áö¸¸ ÀúÀåÇÒ ¼ö ÀÖ´Ù. µî·ÏºÎ¿¡ ¹«¾ùÀ» µî·ÏÇϵçÁö ±×°ÍµéÀº µî·ÏºÎ¿¡ ´Ù¸¥°ÍÀ» ÀúÀåÇÒ ¶§±îÁö º¸Á¸µÈ´Ù.

  • M-x view-register RET R µî·ÏºÎ R ¿¡ ÀúÀåµÈ °ÍÀ» º¸¿©ÁØ´Ù.
  • C-x / R Æ÷ÀÎÆ®ÀÇ À§Ä¡¸¦ µî·ÏºÎ R ¿¡ ÀúÀåÇÑ´Ù. (`point-to-register')
  • C-x j R µî·ÏºÎ R ¿¡ ÀúÀåµÈ À§Ä¡·Î À̵¿ÇÑ´Ù. (`register-to-point').
  • C-x x R ¿µ¿ªÀ» µî·ÏºÎ R ¿¡ º¹»çÇÑ´Ù. (`copy-to-register').
  • C-x r R Á÷»ç°¢Çü ¿µ¿ªÀ» µî·ÏºÎ R ·Î º¹»çÇÑ´Ù. (`copy-region-to-rectangle'). ¼ýÀÚ Àμö°¡ ÁÖ¾îÁö¸é º¹»çÇÏ°í Áö¿î´Ù.
  • C-x g R µî·ÏºÎ R ÀÇ ³»¿ëÀ» »ðÀÔÇÑ´Ù. (`insert-register').

Á¡ÁøÀû Ž»ö(Incremental Search)

Á¡ÁøÀû Ž»öÀº ã´Â ¹®ÀÚ¿­ÀÇ Ã¹¹ø° ¹®ÀÚ¸¦ Ä¡¸é ½ÃÀ۵ȴÙ. ã´Â ¹®ÀÚ¿­À» ÀÔ·ÂÇÔ¿¡µû¶ó À̸·½º´Â ¹®ÀÚ¿­ÀÌ ÀÖÀ»¸¸ÇÑ °÷À» º¸¿©ÁØ´Ù. ¸¸ÀÏ Ã£°íÀÚ ÇÏ´Â À§Ä¡¸¦ ÆǺ°Çϱ⿡ ÃæºÐÇÑ ¹®ÀÚ¿­À» ÀÔ·ÂÇß´Ù¸é, ¸ØÃâ ¼ö ÀÖ´Ù.

  • C-s ¾ÕÂÊÀ¸·Î Á¡Á÷Àü Ž»ö (`isearch-forward').
  • C-r µÞÂÊÀ¸·Î Á¡ÁøÀû Ž»ö (`isearch-backward').

¸¸ÀÏ Å½»ö¹®ÀÚ¿­À» ÀÔ·ÂÇϴµ¥ ½Ç¼ö¸¦ Çß´Ù¸é, DELÅ°¸¦ ÀÌ¿ëÇÏ¿© ¹®ÀÚµéÀ» Áö¿ï ¼ö ÀÖ´Ù. ¸¸ÀÏ ¿øÇÏ´Â À§Ä¡¿¡ µµ´ÞÇß´Ù¸é ESC¸¦ ´­·¯¼­ Ž»öÀ» ¸ØÃß°í ±× À§Ä¡·Î °¥ ¼ö ÀÖ´Ù. Ž»ö¿¡ °ü°è¾ø´Â ¸í·ÉÀ» ÀÔ·ÂÇÒ °æ¿ì¿¡´Â ±× À§Ä¡¿¡ Ä¿¼­¸¦ ¸ØÃß°í ±× ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. ¿¹¸¦ µé¾î `C-a'¸¦ ÀÔ·ÂÇϸé Ä¿¼­°¡ ÀÖ´ø ÁÙÀÇ ¾ÕÀ¸·Î À̵¿ÇÑ´Ù. ¸¸ÀÏ ´ÙÀ½ ¸í·ÉÀÌ ¹®ÀÚÀÔ·ÂÀ̳ª, DEL, ESC ³ª Ž»ö¿¡ Àǹ̰¡ Àִ Ưº°ÇÑ Á¦¾î ¸í·É(`C-q', `C-w', `C-r', `C-s', `C-y' µî)ÀÏ °æ¿ì ESC¸¦ ´©¸£´Â °ÍÀº ÇʼöÀûÀÌ´Ù.

¶§¶§·Î ã°íÀÚ ÇÏ´Â ¹®ÀÚ¿­ÀÌ ¿©·¯±ºµ¥ Á¸ÀçÇÏ°í óÀ½¿¡ ãÀº À§Ä¡°¡ ¿øÇÏ´Â À§Ä¡°¡ ¾Æ´Ò °æ¿ì, `C-s'¸¦ Çѹø ´õ ´­·¯¼­ ´ÙÀ½ÀÇ ±× ¹®ÀÚ¿­ÀÌ ÀÖ´Â À§Ä¡·Î À̵¿ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ `C-s'¸¦ ³Ê¹« ´­·¯¼­ ¿øÇÏ´Â À§Ä¡¸¦ Áö³ªÃÆÀ» °æ¿ì¿¡´Â DEL·Î `C-s'µéÀ» Ãë¼ÒÇÒ ¼ö ÀÖ´Ù. Ž»öÀ» ¸ØÃáÈÄ, °°Àº ¹®ÀÚ¿­À» ¶Ç ã°í ½ÍÀ» °æ¿ì¿¡´Â `C-s C-s'¸¦ ´©¸£¸é µÈ´Ù. ù¹ø° `C-s'´Â Á¡ÁøÀû Ž»öÀ» ½ÃÀÛÇÏ´Â °ÍÀÌ°í, µÎ¹ø° `C-s'´Â ``Àç Ž»ö''À» ÀǹÌÇÑ´Ù. ¸¸ÀÏ Å½»ö¹®ÀÚ¿­À» ãÀ» ¼ö ¾ø´Â °æ¿ì, ¿¡ÄÚ¿µ¿ª¿¡ `Failing I-Search' ¶ó°í ¾º¿©Áø´Ù. Ä¿¼­´Â Ž»ö ½ÇÆÐ ÀÌÀüÀÇ À§Ä¡¿¡ ¸Ó¹°·¯ Àִ´Ù. ¿¹·Î`FOOT'À» ã´Âµ¥ `FOOT'Àº ¾ø°í `FOOL'ÀÌ ÀÖ´Ù¸é, Ä¿¼­´Â `FOOL'ÀÇ FOOµÚ¿¡ À§Ä¡ÇÑ´Ù. ÀÌ °æ¿ì¿¡ ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¿©·¯°¡Áö°¡ ÀÖ´Ù. ¸¸ÀÏ Ã£°íÀÚ ÇÏ´Â ¹®ÀÚ¿­À» À߸ø ÀÔ·ÂÇß´Ù¸é Ž»ö¹®ÀÚ¿­À» ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ¾Æ´Ï¸é ±× À§Ä¡¿¡¼­ Ž»öÀ» ¸ØÃß±â À§ÇØ ESC³ª ±âŸ ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Ù. ¾Æ´Ï¸é, `C-g'¸¦ ´­·¯¼­ ãÀ» ¼ö ¾ø´Â ¹®ÀÚµéÀ» ¾ø¾Ù ¼ö ÀÖ´Ù. À§ÀÇ ¿¹¿¡¼­´Â `FOOT'ÀÇ `T'°¡ µÈ´Ù. ±×¸®°í Ž»ö¹®ÀÚ¿­Àº `FOO'°¡ µÈ´Ù. ±×¸®°í `C-g'¸¦ µÎ¹ø° ´©¸£¸é Ž»öÀº Ãë¼Ò°¡ µÇ°í, Ä¿¼­´Â Ž»öÀ» ½ÃÀÛÇß´ø À§Ä¡·Î µÇµ¹¾Æ°£´Ù. Ž»öÀÌ ½ÇÆÐÇßÀ» °æ¿ì¿¡ `C-s'¸¦ ´©¸£¸é, ¹öÆÛÀÇ ½ÃÀÛ¿¡¼­ºÎÅÍ ´Ù½Ã Ž»öÀ» ½ÃÀÛÇÑ´Ù. `C-r'À» °è¼Ó ´­·¯¼­ µÞÂÊÀ¸·Î Ž»ö¿¡Çϴµ¥ ½ÇÆÐÇÑ °æ¿ì¿¡ `C-r'À» ´©¸£¸é ¹öÆÛÀÇ ³¡¿¡¼­ ºÎÅÍ ´Ù½Ã Ž»öÀ» ½ÃÀÛÇÑ´Ù. ÀÌ°ÍÀº ``wrapping aroun'' ¶ó°í ºÒ¸®¿ì°í, `Wrapped'¶ó°í Ç¥½ÃµÈ´Ù. `C-s', DEL, ESC °°Àº Á¦¾î¹®ÀÚ¸¦ Ž»öÇÏ·Á¸é `C-q'¸¦ ¸ÕÀú ÃľßÇÑ´Ù. ÀÌ°ÍÀº ´ÙÀ½ÀÇ ¹®ÀÚ¸¦ Ž»ö¹®ÀÚ¿­ÀÇ ÀϺηΠ°£ÁÖÇÏ°Ô ¸¸µç´Ù. Ž»öÀ» µÞÂÊÀ¸·Î ÇÏ·Á¸é, `C-r'À» ´©¸£¸é µÈ´Ù. ¸¶Âù°¡Áö·Î Ž»ö¹æÇâÀ» ´Ù½Ã ¾ÕÂÊÀ¸·Î ÇÏ·Á¸é, `C-s'¸¦ ´©¸£¸é µÈ´Ù. óÀ½ºÎÅÍ µÞÂÊÀ¸·Î Ž»öÀ» ÇÏ·Á¸é óÀ½¿¡ `C-r'À» ´­·¯¼­ Ž»öÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. Á¡ÁøÀû Ž»ö¿¡¼­ `C-y' ¿Í `C-w' ´Â ¹öÆÛÀÇ ÅؽºÆ®¸¦ Ž»ö¹®ÀÚ¿­·Î Àâ¾Æ¿À´Âµ¥ »ç¿ëµÈ´Ù. `C-w'´Â ÇöÀç Æ÷ÀÎÆ® ÀÌÈÄÀÇ ´Ü¾îºÎºÐÀ» Ž»ö¹®ÀÚ¿­·Î º¹»çÇØ ¿Â´Ù. `C-y'´Â ÇöÀçÀÇ ´Ü¾î Àüü¸¦ Ž»ö¹®ÀÚ¿­·Î º¹»çÇØ ¿Â´Ù. (¹«½¼¸»ÀÎÁö Àß ¸ð¸£°ÚÀ» ¶§´Â Á÷Á¢ Çغ¸¸é µÈ´Ù.) Á¡ÁøÀû Ž»ö¿¡¼­ »ç¿ëµÇ´Â Ư¼ö¹®ÀÚµéÀº ´ÙÀ½ÀÇ º¯¼öµéÀ» ¼öÁ¤Çؼ­ ¹Ù²Ü ¼öÀÖ´Ù.

  • search-delete-char ÇÑ ¹®ÀÚ¸¦ Áö¿ì´Â Å° (º¸Åë DEL).
  • search-exit-char Á¡ÁøÀû Ž»öÀ» ºüÁ®³ª¿À´Â Å° (º¸Åë ESC).
  • search-quote-char Ư¼ö ¹®ÀÚ¸¦ Ž»ö ¹®ÀÚ¿­¿¡ Æ÷ÇÔ½Ãų °æ¿ì »ç¿ëÇÏ´Â Å° (º¸Åë `C-q').
  • search-repeat-char Á¡ÁøÀû Ž»öÀ» ¾ÕÂÊÀ¸·Î ¹Ýº¹ (º¸Åë `C-s').
  • search-reverse-char Á¡ÁøÀû Ž»öÀ» µÞÂÊÀ¸·Î ¹Ýº¹ (º¸Åë `C-r').
  • search-yank-line-char ¹öÆÛÀÇ ÁÙÀ» Ž»ö¹®ÀÚ¿­·Î º¹»ç (º¸Åë `C-y').
  • search-yank-word-char ¹öÆÛÀÇ ´Ü¾î¸¦ Ž»ö¹®ÀÚ¿­·Î º¹»ç (normally `C-w').

(* º¯¼ö °ªÀ» ¹Ù²Ù´Â ¸í·É : `M-x set-variable')

ºñÁ¡ÁøÀû Ž»ö(Nonincremental Search)

Emacs ´Â ¶ÇÇÑ Å½»ö ¹®ÀÚ¿­À» ¸ðµÎ ÀÔ·ÂÇÑ µÚ¿¡ Ž»öÀ» ½ÃÀÛÇÏ´Â ÀüÅëÀûÀÎ ºñÁ¡ÁøÀû Ž»ö¹æ¹ýÀ» Á¦°øÇÑ´Ù.

  • C-s ESC STRING RET STRING À» Ž»öÇÑ´Ù.
  • C-r ESC STRING RET STRING À» µÞÂÊÀ¸·Î Ž»öÇÑ´Ù.

´Ü¾î Ž»ö(Word Search)

´Ü¾î Ž»öÀº ´Ü¾îµéÀÇ ¿¬¼ÓÀ» ´Ü¾îµéÀÌ ¾î¶»°Ô ºÐ¸®µÇ¾î Àִ°¡¿¡ °ü°è¾øÀÌ Å½»öÀ» ÇÑ´Ù. Á» ´õ Á¤È®È÷ ¸»Çϸé, ´Ü¾îµéÀ» ÇϳªÀÇ °ø°£(space)À» ÀÌ¿ëÇÏ¿© ºÐ¸®Çϸé, ´Ü¾î »çÀÌ¿¡ ¿©·¯°³ÀÇ °ø°£ÀÌ Àְųª, »õÁÙ(newline)ÀÌ Àְųª ¸¶Ä§Ç¥°¡ Àְųª ´Ù ã¾Æ ÁØ´Ù.

  • C-s ESC C-w WORDS RET WORDS ¸¦ Ž»öÇÑ´Ù. ±¸µÎ¹ýÀÇ Â÷À̸¦ ¹«½ÃÇÑ´Ù.
  • C-r ESC C-w WORDS RET WORDS ¸¦ µÞÂÊÀ¸·Î Ž»öÇÑ´Ù. ±¸µÎ¹ýÀÇ Â÷À̸¦ ¹«½ÃÇÑ´Ù.

ºñÁ¡ÁøÀû Ž»öÀ̳ª ´Ü¾î Ž»öÀº °¢°¢ `search-forward' ¿Í `search-backward', `word-search- forward' ¿Í `word-search-backward' ·Î ±¸ÇöµÇ¾î ÀÖ´Ù. À̵éÀº »õ·Î¿î Å°¿¡ ¹ÙÀεù µÉ ¼öµµ ÀÖÁö¸¸, Á¡ÁøÀû Ž»öÀÌ À̵éÀ» ºÎ¸¦ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ®Àֱ⠶§¹®¿¡ À§¿Í °°Àº Å° ¿¬¼ÓÀÌ Emacs ¿¡¼­ À̵éÀ» ºÎ¸£´Â ÀϹÝÀûÀÎ ¹æ¹ýÀÌ´Ù.

Á¤±Ô½Ä Ž»ö(Regular Expression Search)

ÀÌ°ÍÀº Á¡Á÷ÀûÀ¸·Î ÇÒ ¼öµµ ÀÖ°í, ºñ Á¡ÁøÀûÀ¸·Î ÇÒ ¼öµµ ÀÖ´Ù. Á¡ÁøÀû Ž»öÀº `C-M-s' (`isearch-forward-regexp') ¸¦ ´©¸£¸é ºÒ·ÁÁø´Ù. ÀÌ ¸í·ÉÀº `C-s' ó·³ Á¤±Ô½ÄÀ» Á¡ÁøÀûÀ¸·Î ¹Þ¾ÆµéÀÌÁö¸¸, Á¤È®È÷ ÀÏÄ¡Çϴ ǥÇöÀ» ã´Â °ÍÀÌ ¾Æ´Ï¶ó, Ž»ö ¹®ÀÚ¿­À» Á¤±Ô½ÄÀ¸·Î °£ÁÖÇÑ´Ù. `isearch-backward-regexp' ¸í·Éµµ Á¸ÀçÇÏÁö¸¸, ¾î¶² Å°¿¡ ¹ÙÀεù µÇ¾î ÀÖÁö´Â ¾Ê´Ù.

ÀϹÝÀûÀÎ Á¡ÁøÀû Ž»ö¿¡¼­ Àû¿ëµÇ´Â Á¦¾î¹®ÀÚµéÀÌ ¿©±â¿¡µµ Àû¿ëµÈ´Ù. ºñÁ¡ÁøÀû Á¤±Ô½Ä Ž»öÀº `re-search-forward' ¿Í `re-search-backward' ÇÔ¼ö·Î ±¸ÇöµÇ¾î ÀÖ´Ù. ÀÌ ÇÔ¼öµéÀº `M-x'¸¦ ÀÌ¿ëÇϰųª, ¾î¶² Å°¿¡ ¹ÙÀεùÇϰųª ÇÏ´Â ¹æ¹ýÀ¸·Î ºÎ¸¦ ¼ö ÀÖ´Ù. ¾Æ´Ï¸é, `C-M-s ESC'·Î ºÒ·¯µµ µÈ´Ù.

Á¤±Ô½ÄÀÇ Çü½Ä(Syntax of Regular Expressions)

Á¤±Ô½ÄÀº ¾à°£ÀÇ Æ¯º°ÇÑ ±âÈ£¸¦ °¡Áö°í ÀÖ°í ³ª¸ÓÁö´Â ÀÏ¹Ý ¹®ÀÚ·Î Ãë±ÞµÈ´Ù. ÀÏ¹Ý ¹®ÀÚ´Â ´Ü¼øÈ÷ ±× ¹®ÀÚ¿Í ÀÏÄ¡ ¿©ºÎ¸¦ ÆÇÁ¤ÇÏ´Â °£´ÜÇÑ Á¤±Ô½ÄÀÌ´Ù. Ư¼ö ¹®ÀÚ´Â `$', `^', `.', `*', `+', `?', `[', `]' , `\' ÀÌ´Ù. Á¤±Ô½Ä¿¡ ³ªÅ¸³ª´Â ´Ù¸¥ ¹®ÀÚ´Â, `\'°¡ ¾Õ¿¡ ÀÖ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â ÀÏ¹Ý ¹®ÀÚÀÌ´Ù.

  • . (Period) ´Â »õÁÙ(newline)À» Á¦¿ÜÇÏ°í´Â ¾î¶² ¹®ÀÚÇÏ°íµµ ÀÏÄ¡ÇÑ´Ù.
  • a.b ´Â `a'·Î ½ÃÀÛÇؼ­ `b'·Î ³¡³ª´Â ¾î¶² ¼¼±ÛÀÚ ¹®ÀÚ¿­°úµµ ÀÏÄ¡ÇÑ´Ù.
  • * ´Â ±× ÀÚü·Î´Â Àǹ̰¡ ¾ø´Ù. ÀÌ°ÍÀº ¾Õ¼­´Â ½ÄÀÌ ¸î¹øÀÌ°í ³ª¿Ã ¼ö ÀÖ´Ù´Â ¶æÀÇ Á¢¹Ì¹®ÀÚÀÌ´Ù. `fo*' ¿¡¼­ `*'´Â `o'¿¡ Àû¿ëµÈ´Ù. µû¶ó¼­, ¸î°³ÀÇ `o'°¡ µÚµû¸£´Â `f'¿Í ÀÏÄ¡ÇÑ´Ù. `o'°¡ ¿µ°³ ÀÖ´Â °æ¿ìµµ Çã¿ëµÈ´Ù: `fo*' ´Â `f'¿Í ÀÏÄ¡ÇÑ´Ù. `*' ´Â Ç×»ó ¾ÕÀÇ ½Ä Áß¿¡ °¡´ÉÇÑÇÑ °¡Àå ÀÛÀº ½Ä¿¡ Àû¿ëµÈ´Ù. µû¶ó¼­, `fo*' ´Â `fo' ÀÇ ¹Ýº¹ÀÌ ¾Æ´Ï¶ó `o' ÀÇ ¹Ýº¹À» ÀǹÌÇÑ´Ù.
  • + ´Â Á¢¹Ì¹®ÀÚ·Î ¾Õ¼­´Â ½ÄÀÌ Àû¾îµµ ÇѹøÀº ³ª¿Í¾ß ÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â `*'¿Í °°Àº ÀǹÌÀÌ´Ù. ¿¹·Î `ca+r' Àº `car' `caaaar'°ú´Â ÀÏÄ¡ÇÏÁö¸¸ `cr'°ú´Â ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª, `ca*r'Àº À§ÀÇ ¼¼°¡Áö ¹®ÀÚ¿­°ú ¸ðµÎ ÀÏÄ¡ÇÑ´Ù.
  • ? ´Â ¾Õ¼­´Â ½ÄÀÌ Çѹø ³ª¿À°Å³ª ÀüÇô ¾È³ª¿Â´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â Á¢¹Ì¹®ÀÚÀÌ´Ù. ¿¹·Î `ca?r' Àº `car' ³ª `cr' ÇÏ°í¸¸ ÀÏÄ¡ÇÑ´Ù.
  • [ ... ] `[' ´Â `]'·Î ³¡³ª´Â ``¹®ÀÚ±º(character set)''ÀÇ ½ÃÀÛÀ» ÀǹÌÇÑ´Ù. °£´ÜÇÑ °æ¿ì¿¡ µÎ ±âÈ£ »çÀÌÀÇ ¹®ÀÚµéÀÌ ¹®ÀÚ±ºÀ» ÀÌ·é´Ù. `[ad]'´Â `a' ³ª `d'¿Í ÀÏÄ¡ÇÑ´Ù. `[ad]*'´Â `a'³ª `d'·Î¸¸ ÀÌ·ç¾îÁø ¸ðµç ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÑ´Ù. `c[ad]*r' Àº `cr', `car', `cdr', `caddaar' µîµî°ú ÀÏÄ¡ÇÑ´Ù. µÎ ¹®ÀÚ»çÀÌ¿¡ `-'¸¦ ½á¼­ ¹®ÀÚ±º¿¡ Æ÷Ç﵃ ¹®ÀÚ ¹üÀ§¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. µû¶ó¼­, `[a-z]'´Â ¸ðµç ¼Ò¹®ÀÚ¿Í ÀÏÄ¡ÇÑ´Ù. ¹üÀ§´Â °¢°¢ÀÇ ¹®ÀÚ¿Í ÇÔ²² ¾²ÀÏ ¼ö ÀÖ´Ù. `[a-z$%.]' ´Â ¸ðµç ¼Ò¹®ÀÚ¿Í `$', `%',ȤÀº, ¸¶Ä§Ç¥¿Í ÀÏÄ¡ÇÑ´Ù. ¹®ÀÚ±º ¾È¿¡¼­ `]', '-', '^' ¿ÜÀÇ Æ¯¼ö ¹®ÀÚ´Â ´õÀÌ»ó Ưº°ÇÑ Àǹ̸¦ °¡ÁöÁö ¾Ê´Â´Ù. `]'¸¦ ¹®ÀÚ±º¿¡ Æ÷ÇÔ ½ÃÅ°·Á¸é, ù¹ø° ¹®ÀÚ·Î Æ÷ÇÔ½ÃÄѶó. ¿¹·Î `[]a]'´Â `]'³ª `a'¿Í ÀÏÄ¡ÇÑ´Ù. `-'¸¦ Æ÷ÇÔ½ÃÅ°·Á¸é, `-'¸¸À» Æ÷ÇÔÇÏ´Â ¹üÀ§ÀÎ `---'¸¦ ½á¶ó. `^'¸¦ Æ÷ÇÔ½ÃÅ°·Á¸é, ¹®ÀÚ±ºÀÇ Ã¹¹ø° ¹®ÀÚ·Î ¾²Áö¸¶¶ó.
  • [^ ... ] `[^' ·Î ½ÃÀÛÇؼ­ `]'·Î ³¡³ª´Â ¹®ÀÚ±ºÀº ³ª¿­µÇÁö ¾ÊÀº ¹®ÀÚ¿Í ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­, `[^a-z0-9A-Z]'´Â ¿µ¹®ÀÚ¿Í ¼ýÀÚ°¡ ¾Æ´Ñ ¸ðµç ¹®ÀÚ¿Í ÀÏÄ¡ÇÑ´Ù. ù¹®ÀÚ°¡ ¾Æ´Ñ `^'´Â Ưº°ÇÑ Àǹ̸¦ °¡ÁöÁö ¾Ê´Â´Ù. ¶ÇÇÑ, `^'¹Ù·Î µÚÀÇ ¹®Àڴ ù¹ø° ¹®ÀÚ·Î °£ÁֵȴÙ. (`-'¿Í `]' ´Â ÀÌ À§Ä¡¿¡¼­ Ưº°ÇÑ Àǹ̸¦ °¡ÁöÁö ¾Ê´Â´Ù.) ÀÌ ¹®ÀÚ±ºÀº newline ÀÌ ¹®ÀÚ±ºÀÇ Çϳª·Î ÁöĪµÇÁö ¾ÊÀ¸¸é newline°ú ÀÏÄ¡ÇÒ ¼ö ÀÖ´Ù.
  • ^ ´Â ÁÙ(line)ÀÇ ½ÃÀÛ°ú ÀÏÄ¡Çϴ Ư¼ö ¹®ÀÚÀÌ´Ù. µû¶ó¼­ `^foo'´Â ÁÙÀÇ ½ÃÀÛ¿¡ ³ª¿À´Â `foo'¿Í ÀÏÄ¡ÇÑ´Ù.
  • $ ´Â ÁÙÀÇ ³¡°ú ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­ `xx*$'´Â Çϳª ȤÀº ±× ÀÌ»óÀÇ `x'°¡ ÁÙÀÇ ³¡¿¡ ÀÖÀ¸¸é ÀÏÄ¡ÇÑ´Ù.
  • \ ´Â µÎ°¡Áö ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. ±×°ÍÀº Ư¼ö ¹®ÀÚ(`\'¸¦ Æ÷ÇÔÇÑ)¸¦ µû¿À°Å³ª(Á¤±Ô½Ä¿¡ Æ÷ÇÔ½ÃÅ°°Å³ª), ´Ù¸¥ Ưº°ÇÑ ±¸¹®À» Á¦°øÇÑ´Ù. ¿¹·Î, `\$'´Â `$'¹®ÀÚÇÏ°í¸¸ ÀÏÄ¡ÇÏ´Â Á¤±Ô½ÄÀÌ°í `\['´Â `[' ÇÏ°í¸¸ ÀÏÄ¡ÇÏ´Â Á¤±Ô½ÄÀÌ°í ÇÏ´Â ½ÄÀÌ´Ù.

ÁÖ: Ư¼ö¹®ÀÚµéÀº ±×µéÀÇ Æ¯º°ÇÑ Àǹ̰¡ Àǹ̰¡ ¾ø´Â À§Ä¡¿¡¼­´Â ÀÏ¹Ý ¹®ÀÚ·Î Ãë±ÞµÈ´Ù. ¿¹·Î, `*foo' ÀÇ `*'´Â ÀÏ¹Ý ¹®ÀÚ·Î Ãë±ÞµÈ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¾ç»óÀ» ÀÌ¿ëÇÏ´Â °ÍÀº ÁÁÀº ½À°üÀÌ ¾Æ´Ï´Ù.

`\'±¸¹® Ç¥´Â ´ÙÀ½°ú °°´Ù.

  • \| `\|' ÀÌÀü°ú ÀÌÈÄ ½Ä¿¡ ¸ðµÎ ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­, `foo\|bar' ´Â `foo' ³ª `bar' ÇÏ°í ÀÏÄ¡ÇÑ´Ù. `\|'´Â °¡´ÉÇÑ °¡Àå Å« ½Ä¿¡ Àû¿ëµÈ´Ù. `\( ... \)' ÀÇ ±×·ìÇÎ ¸¸ÀÌ `\|'ÀÇ ±×·ìÇÎÀ» Á¦ÇÑÇÒ ¼ö ÀÖ´Ù. `\|'ÀÇ ´ÙÁß »ç¿ë¿¡ ´ëÇÑ full backtracking ´É·ÂÀÌ Á¸ÀçÇÑ´Ù.
  • \( ... \) ´Â ±×·ìÇÎ(grouping) ±¸¹®À¸·Î ´ÙÀ½ÀÇ ¼¼°¡Áö ¿ëµµ¸¦ Á¦°øÇÑ´Ù.
    1. `\|'ÀÇ ¹üÀ§¸¦ Á¦ÇÑÇϱâ À§Çؼ­ ¾²ÀδÙ. µû¶ó¼­,`\(foo\|bar\)x'´Â `foox' ³ª `barx'¿Í ÀÏÄ¡ÇÑ´Ù.
    2. º¹ÀâÇÑ ½ÄÀ» `*'·ùÀÇ Á¢¹Ì»ç¿¡ Àû¿ë½ÃÅ°±â À§ÇØ »ç¿ëÇÑ´Ù. µû¶ó¼­, `ba\(na\)*' ´Â `banana' µî°ú °°ÀÌ `na'°¡ ¸î¹øÀÌ°í ¹Ýº¹µÇ´Â ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÑ´Ù.
    3. ´ÙÀ½ÀÇ ÂüÁ¶¸¦ À§ÇÏ¿© »ç¿ëÇÑ´Ù.
  • \DIGIT °¢°¢ÀÇ `\( ... \)' ±¸¹®¿¡ ´ëÇÏ¿©, ÀÌ ±¸¹®¿¡ ÀÏÄ¡ÇÏ´Â ÅؽºÆ®ÀÇ ½ÃÀÛ°ú ³¡ÀÌ ±â¾ïµÈ´Ù. µû¶ó¼­, ±× ÀÌÈÄÀÇ Á¤±Ô½Ä¿¡¼­ `\'µÚ¿¡ ¼ýÀÚ(DIGIT)¸¦ ¾¸À¸·Î½á DIGIT¹ø° `\( ... \)' ±¸¹®¿¡ ÀÏÄ¡ÇÏ´Â ÅؽºÆ®¶ó´Â Àǹ̰¡ µÈ´Ù. ¿­¸° °ýÈ£ÀÇ ¼ø¼­¿¡ µû¶ó, ¾ÆÈ©°³ÀÇ `\( ... \)' ±¸¹®ÀÌ 1¹øºÎÅÍ9¹ø±îÁöÀÇ ¹øÈ£¿¡ ÇÒ´çµÈ´Ù. ¿¹·Î, `\(.\)\1' Àº `aa' ,`bb'µî °°Àº ¹®ÀÚ°¡ µÎ°³ ³ª¿À´Â °æ¿ì¿Í ÀÏÄ¡ÇÑ´Ù.
  • \` ¹öÆÛÀÇ ½ÃÀÛ°ú ÀÏÄ¡ÇÑ´Ù.
  • \' ¹öÆÛÀÇ ³¡°ú ÀÏÄ¡ÇÑ´Ù.
  • \b ´Ü¾îÀÇ ½ÃÀÛÀ̳ª ³¡°ú ÀÏÄ¡ÇÑ´Ù. µû¶ó¼­ `\bfoo\b' ´Â ºÐ¸®µÈ ´Ü¾î·Î½áÀÇ `foo'¿Í ÀÏÄ¡ÇÑ´Ù. `\bballs?\b'´Â ºÐ¸®µÈ ´Ü¾î·Î½áÀÇ `ball'À̳ª `balls'¿Í ÀÏÄ¡ÇÑ´Ù.
  • \B ´Ü¾îÀÇ ½ÃÀÛ°ú ³¡ÀÌ ¾Æ´ÑÀ§Ä¡¿Í ÀÏÄ¡ÇÑ´Ù.
  • \< ´Ü¾îÀÇ ½ÃÀÛ°ú ÀÏÄ¡ÇÑ´Ù.
  • \> ´Ü¾îÀÇ ³¡°ú ÀÏÄ¡ÇÑ´Ù.
  • \w matches any word-constituent character. The editor syntax table determines which characters these are.
  • \W matches any character that is not a word-constituent.
  • \sCODE matches any character whose syntax is CODE. CODE is a character which represents a syntax code: thus, `w' for word constituent, `-' for whitespace, `(' for open-parenthesis, etc. *Ref Syntax::. `\SCODE' matches any character whose syntax is not CODE.

´ÙÀ½Àº Lisp ¹®¹ý¿¡¼­ »ç¿ëµÈ º¹ÀâÇÑ Á¤±Ô½ÄÀÇ ÇÑ ¿¹ÀÌ´Ù. Lisp ¹®¹ý¿¡¼­ ¹®ÀÚ¿­Àº Å«µû¿ÈÇ¥(``)·Î ½ÃÀÛÇؼ­ Å«µû¿ÈÇ¥·Î ³¡³­´Ù. `\'''´Â Á¤±Ô½ÄÀÇ ºÎºÐÀ¸·Î½áÀÇ Å«µû¿ÈÇ¥¸¦, `\\'´Â Á¤±Ô½ÄÀÇ ºÎºÐÀ¸·Î½áÀÇ ¿ª½½·¡½¬¸¦, `\t'´Â Åܹ®ÀÚ¸¦, `\n'Àº »õÁÙ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.

"[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*"

ÀÌ°ÍÀº ³×ºÎºÐÀ¸·Î ³ª´©¾îÁ® ÀÖ´Ù: `.'(¸¶Ä§Ç¥)³ª, `?', `!'¿Í ÀÏÄ¡ÇÏ´Â ¹®ÀÚÁýÇÕ; `]', `"'(Å«µû¿ÈÇ¥), `''(ÀÛÀºµû¿ÈÇ¥), `)' ¹®ÀÚÁýÇÕÀÌ ¸î¹øÀÌ°í ¹Ýº¹µÇ´Â ºÎºÐ; ÁÙÀÇ ³¡À̰ųª ÅÜÀ̰ųª µÎ°³ÀÇ ½ºÆäÀ̽º¿Í ÀÏÄ¡ÇÏ´Â ºÎºÐ; ½ºÆäÀ̽º³ª ÅÜ, »õÁÙµîÀÇ È­ÀÌÆ®½ºÆäÀ̽º¹®ÀÚ°¡ ¸î¹øÀÌ°í ¹Ýº¹µÇ´Â ºÎºÐ. À§ÀÇ ¿¹´Â Emacs Lisp ÇÁ·Î±×·¥¿¡¼­ Á¤±Ô½ÄÀ» ¾î¶»°Ô »ç¿ëÇÒ °ÍÀÌ°¡¿¡ ´ëÇÑ ¿¹ÀÌ°í, `re-search-forward' µîÀÇ ¸í·ÉÀ» ÅëÇÏ¿© Á¤±Ô½ÄÀ» ÀÔ·ÂÇÒ °æ¿ì¿¡´Â Á» ´Ù¸£°Ô Ç¥½ÃÇؾßÇÑ´Ù.

[.?!][]"')]*\($\|^Q^I\| \)[ ^Q^I^Q^J]*    (`^'´Â CTRLÅ°¸¦ ´©¸£¶ó´Â ÀǹÌÀÌ´Ù.)

3. À̸ƽº 20.2 À̻󿡼­ ÇÑ±Û »ç¿ëÇϱâ

±Û¾´ÀÌ: õ¸®¾È ¸®´ª½º µ¿È£È¸ ȸ¿ø ¼Û»ó¿ø´Ô

±Û²ÃÀ» °íÄ¡±â À§Çؼ­ ÀÏ´Ü su °¡ µÈ ´ÙÀ½, ``/usr/X11R6/lib/X11/app-defaults'' ·Î µð·ºÅ丮¸¦ ¿Å±ä´Ù. °Å±â¿¡ º¸¸é ``Emacs'' ¶ó´Â È­ÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ È­ÀÏÀº ¸ðµç »ç¿ëÀÚµéÀÌ À̸ƽº¸¦ ½ÇÇà½Ãų¶§ ÇÁ·Î±×·¥ÀÌ Àд ȭÀÏÀÌ´Ù. ÀÌ ``Emacs'' È­ÀÏÀ» ¿­¾îº¸¸é

Emacs.Font:        *-fontset-16
Emacs.Fontset-0:   -*-*-medium-r-normal-*-12-*-*-*-*-*-fontset-12
Emacs.Fontset-1:   -*-*-medium-r-normal-*-14-*-*-*-*-*-fontset-14
Emacs.Fontset-2:   -*-*-medium-r-normal-*-16-*-*-*-*-*-fontset-16
Emacs.Fontset-3:   -*-*-medium-r-normal-*-18-*-*-*-*-*-fontset-18
Emacs.Fontset-4:   -*-*-medium-r-normal-*-20-*-*-*-*-*-fontset-24
Emacs.Fontset-5:   -*-*-medium-r-normal-*-24-*-*-*-*-*-fontset-24

À§¿Í °°Àº °ÍÀÌ ÀÖÀ» °ÍÀÌ´Ù. ùÁÙÀº À̸ƽº°¡ »ç¿ëÇÒ ÆùÆ®¼ÂÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ°í, ³ª¸ÓÁö ¾Æ·¡ 6ÁÙÀº »ç¿ë°¡´ÉÇÑ °¢°¢ÀÇ ÆùÆ®¼ÂµéÀ» ¼ÂÆÃÇØ ³õÀº°ÍÀÌ´Ù. À§ÀÇ ¿¹´Â À̸ƽº°¡ ``fontset-16'' À» ¾´´Ù. À§ÀÇ ³»¿ëÀ» ÁÖ¼®Ã³¸®(!) ³»Áö´Â »èÁ¦¸¦ ÇÏ°í, ´ÙÀ½°ú °°ÀÌ °íÄ£´Ù.

Emacs.Font:     *-fontset-myeongjo
!Emacs.Font:    *-fontset-gothic

Emacs.Fontset-0:-*-*-medium-r-normal-*-16-*-*-*-*-*-fontset-myeongjo, \
          ascii:-*-*-bold-r-normal--16-*-*-*-*-*-iso8859*-*, \
 korean-ksc5601:-misc-myeongjo-medium-r-normal--16-*-*-*-*-*-ksc5601*-*

Emacs.Fontset-1:-*-*-medium-r-normal-*-16-*-*-*-*-*-fontset-gothic, \
          ascii:-*-*-bold-r-normal--16-*-*-*-*-*-iso8859*-*, \
 korean-ksc5601:-misc-gothic-medium-r-normal--16-*-*-*-*-*-ksc5601*-*

À§ÀÇ ¿¹´Â ¸íÁ¶Ã¼¿Í °íµñüÀÇ ÆùÆ®¼ÂÀ» ¸¸µé¾ú°í, ±×Áß ¸íÁ¶Ã¼¸¦ À̸ƽº¿¡ »ç¿ëÇÑ °æ¿ìÀÌ´Ù. ¹°·Ð, ÀÚ½ÅÀÌ ¿øÇÑ´Ù¸é Fontset À» ¾ó¸¶µçÁö ´õ ¸¸µé¼ö°¡ ÀÖ´Ù. À§¿Í °°ÀÌ ÀÚ½ÅÀÌ ÁÁ¾ÆÇÏ´Â ±ÛÀÚü·Î ÇѱÛÆùÆ®¸¦ ¹Ù²Ù°í ÀúÀåÇÑ ÈÄ, À̸ƽº¸¦ ½ÇÇà½ÃÅ°¸é ¹Ù·Î ±ÛÀÚü°¡ ¹Ù²î¾î ½ÇÇàµÈ´Ù. À̶§ ÁÖÀÇÇÒ Á¡Àº ÆùÆ®ÀÇ Á¾·ù¿¡ µû¶ó À̸ƽº¿¡¼­ Á¦´ë·Î ³ª¿ÀÁö ¾Ê´Â ÆùÆ®µéÀÌ ÀÖÀ¸´Ï, È®ÀÎÀ» ÇØ º¼°Í.

4. Çǵå¹é

¾Æ·¡ÀÇ ³»¿ëÀº ¼öÁ¤À̳ª °³Á¤ÀÌ ÇÊ¿äÇÏÁö ¾ÊÀ»±î ½Í½À´Ï´Ù. --CN

½ÇÁ¦¿Í ´Ù¸¥ ¹ÙÀεù

backward-paragraph M-{
forward-paragraph M-}
beginning-of-buffer M-< (ÇÔ¼ö À̸§°ú ¹ÙÀεù ¸ðµÎ ¿À·ù)
repeat-compex-commanbd C-x M-ESC or C-x M-:

Á¸ÀçÇÏÁö ¾Ê´Â ¹ÙÀεù

previous-complex-command
next-complex-command




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-02-01 18:42:37
Processing time 0.0022 sec