· 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


ID
Password
Join
It's not reality that's important, but how you percieve things.


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.0023 sec