· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Emacs Ruby Mode

Emacs Ruby-Mode

±è¿ë¿í(CN)

ÀÌ ¹®¼­´Â Emacs¿¡¼­ Ruby ÇÁ·Î±×·¡¹ÖÀ» Æí¸®ÇÏ°Ô Çϱâ À§ÇØ È¯°æ ¼³Á¤ÇÏ´Â ¹æ¹ý°ú °£´ÜÇÑ »ç¿ë¹ýÀ» ´Ù·ç°í ÀÖ´Ù.


1. Emacs Ruby ExtensionÀÇ ¼³Ä¡


Emacs ¿¡µðÅÍ¿Í Emacs Ruby Extension(Upload new Attachment "EmacsRubyExtension.zip" )ÀÌ ÇÊ¿äÇÏ´Ù. (µ¿ºÀµÈ ¾ÐÃàÆÄÀÏ¿¡´Â ¼³Ä¡¿¡ ºÒÇÊ¿äÇÑ ÆÄÀÏÀ» etc·Î À̵¿ÇÏ¿´´Ù.)

Ruby ¾ð¾î´Â ÇʼöÀûÀ¸·Î ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾øÀ¸³ª ¼³Ä¡ÇÏÁö ¾ÊÀ¸¸é Ruby ÇÁ·Î±×·¡¹ÖÀº ºÒ°¡´ÉÇÏ´Ù.

1.1. ¼³Ä¡ °æ·Î ã±â

Emacs Ruby ExtensionÀ» ¼³Ä¡ÇÒ °æ·Î¸¦ ã¾Æ¾ß ÇÑ´Ù.


À§ÀÇ È­¸éÀº Emacs¸¦ ½ÇÇà½Ã۸é óÀ½ ³ª¿À´Â È­¸éÀÌ´Ù. ÇÏ´Ü¿¡ *scratch*¶ó°í Ç¥½ÃµÇ¾î Àִµ¥ *scratch* ¹öÆÛ¶ó´Â ÀǹÌÀÌ´Ù. Emacs´Â ÇϳªÀÇ ÆíÁý ´ÜÀ§¸¦ ¹öÆÛ¶ó°í ºÎ¸¥´Ù. Emacs´Â load-Path º¯¼ö¿¡ µî·ÏµÈ ÁÖ¼Ò¿¡¼­ È®Àå ÆÄÀÏÀ» Àоî¿Â´Ù. Emacs Ruby ExtensionÀÇ ¼³Ä¡¸¦ À§ÇØ Load-Path¸¦ »ìÆìº¸ÀÚ.

load-path[*]

[1]°¡ Ä¿¼­¶ó¸é ±× À§Ä¡¿¡¼­ Ctrl Ű¿Í X¸¦ ´©¸£°í (ÀÌÇÏ C-X) Ctrl Ű¿Í E¸¦ ´©¸¥´Ù. (ÀÌÇÏ C-E) ÀÌÁ¦ºÎÅÍ C-X, C-E¿Í °°Àº ÇüÅ·Π°£·«È÷ ºÎ¸¦ °ÍÀÌ´Ù. ½ÇÇà °á°ú´Â ¾Æ·¡¿Í °°ÀÌ È­¸é ÇÏ´Ü¿¡ Ç¥½ÃµÈ´Ù.


¿î¿µÃ¼Á¦³ª ¼¼ÆÃ¿¡ µû¶ó Á¶±Ý¾¿ ´Ù¸£°Ô ³ªÅ¸³ª´Âµ¥ ÀÌ ¹®¼­¿¡¼­´Â "c:/Program Files/Emacs/emacs/site-lisp"¿¡ ¼³Ä¡ÇÒ °ÍÀÌ´Ù. ¾î¶² Æú´õ³ª ¼³Ä¡Çصµ »ó°ü¾øÁö¸¸ load-path º¯¼ö¿¡ Æ÷ÇÔµÈ °æ·ÎÀ̾î¾ß ÇÑ´Ù.

´Ù¸¥ °æ·Î¿¡ ¼³Ä¡¸¦ ¿øÇÏ´Â µ¶ÀÚ´Â EmacsInstallScript¸¦ ÂüÁ¶Ç϶ó.

È­¸é ÇÏ´Ü¿¡ Ç¥½ÃµÇ¾î load-path º¯¼öÀÇ ³»¿ëÀ» »ìÆìº¸±â Èûµé´Ù¸é C-X, B, *m, TAB, ENTER¸¦ ´­·¯¼­ ÀÚ¼¼ÇÏ°Ô È®ÀÎÇØ º¼ ¼ö ÀÖ´Ù. (´Ù½Ã *scratch* ¹öÆÛ·Î À̵¿Çϱâ À§Çؼ­ C-X, B, *s, TAB, ENTER¸¦ »ç¿ëÇÑ´Ù.)

1.2. Emacs Ruby Extension ÆÄÀÏ º¹»çÇϱâ


ÇØ´ç Æú´õ¿¡ Emacs Ruby Extension ÆÄÀϵéÀ» º¹»çÇÑ´Ù. ÀÌ ¹®¼­¿¡¼± "c:/Program Files/Emacs/emacs/site-lisp"¿¡ º¹Á¦Çϴµ¥ ÇØ´ç ÆÄÀÏÀÇ ÆÄÀϸíÀº ´ÙÀ½°ú °°´Ù.
inf-fuby.elc rubydb.el rubydb.elc ruby-electric.el ruby-electric.elc ruby-mode.el ruby-mode.elc

1.3. ȯ°æ ¼³Á¤Çϱâ


ȯ°æ ¼³Á¤Çϱâ À§Çؼ­´Â .emacs ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. C+X, C+F¸¦ ´­·¯ "ÆÄÀÏ ºÒ·¯¿À±â"¸¦ ÇÏÀÚ.
Find file: C:\Documents and Settings\¿ì¸®Áý/[*]
[2]°¡ Ä¿¼­ À§Ä¡¶ó¸é "~/"¸¦ ÀÔ·ÂÇϰí
Find file: C:\Documents and Settings\¿ì¸®Áý/~/
TABÀ» ´©¸£ÀÚ.
Find file: ~/
.emacs¸¦ ÀÔ·ÂÇϰí
Find file: ~/.emacs
¿£Å͸¦ ´©¸¥´Ù.
(require 'ruby-mode) (require 'rubydb) (require 'inf-ruby) (require 'ruby-electric) (setq auto-mode-alist (cons '("\.rb$" . ruby-mode) auto-mode-alist))
À§ÀÇ Äڵ带 »ðÀÔÇÑ´Ù. »õ·Î¿î ÆÄÀÏÀ̶ó¸é ±×³É »ðÀÔÇÏ¸é µÇ°í ±âÁ¸ ÆÄÀÏÀÌ ÀÖ´Ù¸é Àû´çÈ÷ Ãß°¡ÇØÁÖÀÚ.

(Á¦ÀÏ µÚ¿¡ Ãß°¡ÇÏ´Â °ÍÀÌ ¹«³­ÇÒ °ÍÀÌ´Ù.) Ãß°¡°¡ ¿Ï·á µÇ¾ú´Ù¸é C-X, C-S·Î ÀúÀåÇ϶ó.

Emacs¸¦ ´Ù½Ã ½ÇÇàÇϰí´Â ¿¡·¯°¡ ³ªÁö ¾Ê±æ ±â¿øÇÏÀÚ.

2. ruby-modeÀÇ »ç¿ë

ruby-mode·Î ÀüȯÀº µÎ°¡Áö ¹æ¹ýÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.
  1. .rb È®ÀåÀÚÀÇ ÆÄÀÏ ¿­±â
  2. M-X ruby-mode
ÀüÀÚ´Â C-X, C-F·Î ÆÄÀÏÀ» ¿­¸é µÇ°í ÈÄÀÚ´Â ALT(MÀº ALTŰ³ª ESC ۸¦ ´©¸£¸é µÈ´Ù.) Ű¿Í X¸¦ ´©¸£°í ruby-mode ¿£Å͸¦ ´­·¯¼­ ÀüȯÇÏ°Ô µÈ´Ù. ruby-mode´Â Àüü ŸÀÌÇÎ ÇÒ ÇÊ¿ä¾øÀÌ ruby¸¦ ÀÔ·ÂÇϰí tabÀ» ´©¸£¸é ÀÚµ¿¿Ï¼ºµÈ´Ù.

2.1. Hello Man

ÇϳªÀÇ ÇÁ·Î±×·¥À» ¸¸µé¸é¼­ ruby-mode¸¦ Á÷Á¢ »ç¿ëÇØ º¸ÀÚ.

C-X, C-F¸¦ ÀÔ·ÂÇÏÀÚ.
Find file: c:/Documents and Settings/¿ì¸®Áý/Application Data/[*]
/¸¦ ÀÔ·ÂÇϰí
Find file: c:/Documents and Settings/¿ì¸®Áý/Application Data//
TABÀ» ´©¸¥´Ù.
Find file: /
Çѹø¿¡ ·çÆ® µð·ºÅ丮·Î À̵¿ÇÏ´Â ¹æ¹ýÀÌ´Ù. ·çÆ® µð·ºÅ丮¿¡ helloMan.rb¶ó´Â ÆÄÀÏÀ» ¸¸µéÀÚ. Á¦´ë·Î ¼º°øÇß´Ù¸é ¾Æ·¡¿Í °°Àº È­¸éÀÌ ¶ã °ÍÀÌ´Ù.


helloMan.rb¶ó´Â ÆÄÀÏ¸í ¿·¿¡ (Ruby)¶ó´Â ±ÛÀÚ°¡ º¸ÀδÙ. ÇöÀç ruby-mode·Î ÀÛµ¿Çϰí ÀÖ´Ù´Â °ÍÀÌ´Ù.

M-;¸¦ ÀÔ·ÂÇÏÀÚ. (À§¿¡ ¼³¸íÇßµí MÀº ALT Ű³ª ESC¸¦ ÀǹÌÇÑ´Ù. ALT¿Í ;¸¦ µ¿½Ã¿¡ ´©¸£¸é µÈ´Ù.) ÀÌ ¸í·ÉÀº ÁÖ¼®À» ÀÔ·ÂÇÏ´Â ¸í·É¾î´Ù.

# ÀÌÈÄ¿¡ ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÔ·ÂÇÏÀÚ. (¾ûÅ͸® ÁÖ¼®À̶ó´Â °ÍÀº ½Å°æ¾²Áö ¸»ÀÚ.)
# Ruby mode: Major mode for edting ruby scripts. TAB properly idents subexpressions of mult-line class, module, def, if, while, for, do, and case statements, taking nesting into account
ÁÖ¼®ÀÇ ±æÀ̰¡ ³Ê¹« ±æ¾î¼­ º¸±â Èûµé¾î Á³À» °ÍÀÌ´Ù. Àû´çÇÑ À§Ä¡¿¡¼­ M-Q¸¦ ÀÔ·ÂÇÑ´Ù.


ÀÚµ¿À¸·Î ÁÖ¼®ÀÇ ÇüŰ¡ ¿©·¯ ÁÙ·Î Á¤¸®µÇ¾î ÀÖ´Ù. ÇÁ·Î±×·¥ ¾Õ ºÎºÐ¿¡ ±ä ÁÖ¼®À» ´Ù´Â °æ¿ì¿¡ ÀÌ·± ¹æ¹ýÀ¸·Î ÁÖ¼®À» ´Þ ¼ö ÀÖ´Ù. ÀÌÁ¦ ±â´Ù·Á¿Ô´ø HelloMan Ŭ·¡½º¸¦ ÀÛ¼ºÇغ¸ÀÚ.
# Ruby mode: Major mode for edting ruby scripts. TAB properly idents subexpressions of mult-line class, module, def, if, while, for, do, and case statements, taking nesting into account class HelloMan def sayHello
¿©±â±îÁö ÀÔ·ÂÇØº» µ¶ÀÚ´Â ÀÚµ¿À¸·Î µé¿©¾²±â°¡ ¾ÈµÈ´Ù´Â °ÍÀ» ¹ß°ßÇßÀ» °ÍÀÌ´Ù. (¹°·Ð Ãֽſ¹ ¼öÀÛ¾÷ ¸Ó½ÅÀ¸·Î ÇØ°áÇÑ µ¶ÀÚµµ ÀÖÀ» °ÍÀÌ´Ù.)

³î¶ó°Å³ª ´çȲÇÒ ÇÊ¿ä¾ø´Ù. Ä¿¼­¸¦ ¿Å±âÁö ¸»°í TABÀ» ´©¸£ÀÚ.

Emacs¿¡¼­ TABÀº ÇØ´ç ¶óÀÎÀ» ÀÚµ¿À¸·Î µé¿©¾²±â ÇÏ´Â ¸í·É¾îÀÌ´Ù. (´Ù¸¥ ¿¡µðÅÍ¿¡¼­ÀÇ TABÀÌ 4-8Ä­À» ¶ç¿ì´Â ¹®ÀÚ¸¦ »ðÀÔÇÏ´Â °Í°ú´Â Â÷À̰¡ ÀÖ´Ù.)
class HelloMan def sayHello
¿©±â¿¡¼­ ¿£Å͸¦ Ä¡±âÀü¿¡ »ý°¢Çغ¸ÀÚ. ´Ù½Ã ¿£Å͸¦ ´©¸£°í ´ÙÀ½ ¶óÀο¡¼­ ³ªÁß¿¡ TABÀ» ´­·¯¼­ ÇàÀ» Á¤·ÄÇØ¾ß ÇÒ±î?

¸Å ¶óÀÎ TABÀ» ´­·¯ Á¤·ÄÇÏ´Â °ÍÀº ¾Æ¹«·¡µµ ±ÍÂú´Ù. C-J¸¦ ´©¸£ÀÚ. Àͼ÷ÇÑ µé¿©¾²±â°¡ µÉ°ÍÀÌ´Ù.

C-J´Â ±× ÇàÀ» ÀÚµ¿À¸·Î µé¿©¾²±â ÇÑÈÄ ´ÙÀ½ ÇàÀ¸·Î ¹Ù²Ù°í ´ÙÀ½ ÇàÀÇ µé¿©¾²±â¸¦ ÇØÁÖ´Â ¸í·É¾î´Ù.

¾î·Á¿ö º¸À̸é ÇѰ¡Áö¸¸ ±â¾ïÇÏÀÚ. ÀÌÁ¦ºÎÅÍ´Â ¿£ÅÍ ´ë½Å¿¡ C-J¸¦ ´©¸£ÀÚ.
class HelloMan def sayHello "Helo, guy. I love RUBY."
¿©±â±îÁö ÀÔ·ÂÇϸé ÇϳªÀÇ ÇÔ¼ö¸¦ ¿Ï¼ºÇß´Ù. ÀÌ Å¬·¡½º¿¡´Â ÇϳªÀÇ ÇÔ¼ö¸¸ ³ÖÀ» ¿¹Á¤ÀÌ´Ù.

ÇÔ¼ö¿Í Ŭ·¡½º¸¦ ´Ù ´ÝÀÚ. ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇ϶ó.
C-J, C-C, C-E, C-J, C-C, C-E
¿©±â¿¡¼­ CTRL Ű´Â ¶ª ÇÊ¿ä¾ø´Ù. CTRLÀ» ´©¸¥ ä·Î ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ¸é µÈ´Ù.
JCEJCE
¿©±â±îÁö ¼º°øÇß´Ù¸é ´ÙÀ½°ú °°Àº È­¸éÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.


C-C, C-E´Â end¸¦ ÀÔ·ÂÇÏ´Â ¸í·É¾îÀÌ´Ù. ruby´Â end°¡ ÀÚÁÖ ¾²ÀÌ´Ï ÄÜÆ®·ÑÀ» ´©¸¥ ä·Î JCE¸¦ ´©¸£´Â Å×Å©´ÐÀº ÀÚÁÖ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

To Do ´Ù¸¥ ¸ðµåÀÇ »ç¿ë¹ý°ú ¼³Á¤¹ýÀ» Ãß°¡ÇÏÀÚ -- CN 2006-02-04 13:53:18


ID
Password
Join
You have an unusual equpment for success. Be sure to use if properly.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-04-20 02:09:34
Processing time 0.0107 sec