´ÙÀ½ ÀÌÀü Â÷·Ê

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' ¸í·ÉÀ» »ç¿ëÇÏ¸é µÈ´Ù.

À̵¿ ¸í·É

¼ýÀÚ Àμö

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

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

»èÁ¦ ¸í·É

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

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

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

¹Ì´Ï¹öÆÛ

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

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

µµ¿ò¸» ±â´É

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

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' ¿¡ ±â¾ïÇÑ´Ù.

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

±× ¿Ü¿¡ `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') ¸í·ÉÀ» »ç¿ëÇؼ­ Ãë¼ÒÇÒ ¼ö ÀÖ´Ù.

Á¦°Å

»èÁ¦ ¸í·É

ºÙÀ̱â (Yanking)

`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'¿Í °°´Ù.

Á÷»ç°¢Çü

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

µî·ÏºÎ(Registers)

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

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

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

¸¸ÀÏ Å½»ö¹®ÀÚ¿­À» ÀÔ·ÂÇϴµ¥ ½Ç¼ö¸¦ Çß´Ù¸é, 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'´Â ÇöÀçÀÇ ´Ü¾î Àüü¸¦ Ž»ö¹®ÀÚ¿­·Î º¹»çÇØ ¿Â´Ù. (¹«½¼¸»ÀÎÁö Àß ¸ð¸£°ÚÀ» ¶§´Â Á÷Á¢ Çغ¸¸é µÈ´Ù.) Á¡ÁøÀû Ž»ö¿¡¼­ »ç¿ëµÇ´Â Ư¼ö¹®ÀÚµéÀº ´ÙÀ½ÀÇ º¯¼öµéÀ» ¼öÁ¤Çؼ­ ¹Ù²Ü ¼öÀÖ´Ù.

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

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

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

´Ü¾î Ž»ö(Word Search)

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

ºñÁ¡ÁøÀû Ž»öÀ̳ª ´Ü¾î Ž»öÀº °¢°¢ `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)

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

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

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

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

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

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

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


´ÙÀ½ ÀÌÀü Â÷·Ê