· 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(@EmacsRubyExtension.zip (39.53 KB) )이 필요하다. (동봉된 압축파일에는 설치에 불필요한 파일을 etc로 이동하였다.)

Ruby 언어는 필수적으로 설치할 필요는 없으나 설치하지 않으면 Ruby 프로그래밍은 불가능하다.

1.1. 설치 경로 찾기

Emacs Ruby Extension을 설치할 경로를 찾아야 한다.

emacs.PNG
[PNG image (13.62 KB)]

위의 화면은 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와 같은 형태로 간략히 부를 것이다. 실행 결과는 아래와 같이 화면 하단에 표시된다.

load-path.PNG
[PNG image (17.88 KB)]

운영체제나 세팅에 따라 조금씩 다르게 나타나는데 이 문서에서는 "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.PNG
[PNG image (10.99 KB)]

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를 입력한다.

comment.PNG
[PNG image (13.34 KB)]

자동으로 주석의 형태가 여러 줄로 정리되어 있다. 프로그램 앞 부분에 긴 주석을 다는 경우에 이런 방법으로 주석을 달 수 있다. 이제 기다려왔던 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
여기까지 성공했다면 다음과 같은 화면을 볼 수 있을 것이다.

class.PNG
[PNG image (14.58 KB)]

C-C, C-E는 end를 입력하는 명령어이다. ruby는 end가 자주 쓰이니 콘트롤을 누른 채로 JCE를 누르는 테크닉은 자주 이용할 수 있다.

To Do 다른 모드의 사용법과 설정법을 추가하자 -- CN 2006-02-04 13:53:18




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