· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
XEmacs-HOWTO

XEmacs-HOWTO




리눅스, 유닉스의 X Window, MS Windows에서 사용가능한 Emacs.

Emacs는 너무 유명하기 때문에 따로 설치하는 방법은 설명하지 않겠습니다. 리눅스, 유닉스, 윈도우 종류를 가리지 않고 모든 운영체제 및 배포판의 패키지를 제공하고 있습니다.

XEmacs는 GNU Emacs보다 더 자세한 GUI 인터페이스를 제공하고 있습니다. 초보자들이 쉽게 접근할 수 있는 장점이 있습니다.

이 문서를 보시고 알고 계시는 Emacs의 유용한 명령, 사용법 등을 함께 만들었으면 합니다.

1. 스크린 샷

xemacs2.png
[PNG image (41.71 KB)]

xemacs3.png
[PNG image (12.25 KB)]


2. 주제

초보자를 대상으로 XEmacs를 최소한으로 사용할 수 있을 정도로 설명하는 것입니다. 가장 기초적인 소스 코드 에디트를 위주로 하겠습니다.

이 문서에서는 리눅스, 유닉스를 기준으로 하겠습니다.

3. 단축키 사용법

C는 Ctrl키 입니다.

M은 ESC, ALT키 입니다. 둘중 아무것이나 사용해도 됩니다.

C-c는 Ctrl키와 c키를 같이 누른 것입니다.

4. 기본 설정

사용자 홈 디렉토리의 .emacs 파일이 설정 파일입니다. GNU Emacs와 공용으로 사용할 수 있습니다. XEmacs 전용 설정 파일은 .xemacs/ 디렉토리 아래에 있습니다.

.emacs
;;; XEmacs backwards compatibility file
; XEmacs의 설정 파일을 연결합니다.
(setq user-init-file
      (expand-file-name "init.el"
                        (expand-file-name ".xemacs" "~")))
(setq custom-file
      (expand-file-name "custom.el"
                        (expand-file-name ".xemacs" "~")))

(load-file user-init-file)
(load-file custom-file)


;; 아래부터는 각자 개인 설정 입니다.

;; 백업 파일 만들지 않기 ;;
(setq make-backup-files nil)

;; 한글 설정 ;;
(require 'cl)
(when enable-multibyte-characters
  (set-language-environment "Korean")

  (setq-default file-name-coding-system 'euc-kr)
  ;; the following setting is unnecessary from 20.5 >
  (when (string-match "^3" (or (getenv "HANGUL_KEYBOARD_TYPE") ""))
    (setq default-korean-keyboard "3"))
  (setq input-method-verbose-flag nil
        input-method-highlight-flag nil)
  (prefer-coding-system 'euc-kr)
  (set-default-coding-systems 'euc-kr)
  ;;(setq default-process-coding-system '(euc-kr . euc-kr))
  (if window-system
      (global-set-key "\C-\\" 'undefined)
    (global-set-key "\C-\\" 'toggle-korean-input-method ))
  (add-hook 'quail-inactivate-hook 'delete-quail-completions)
  (defun delete-quail-completions ()
    (when (get-buffer "*Quail Completions*")
      (kill-buffer "*Quail Completions*")))

  ;; emacs 21 or later, xim is usable
  (set-keyboard-coding-system 'euc-kr)
  (when (assq 'encoded-kbd-mode minor-mode-alist)
    (setf (second (assq 'encoded-kbd-mode minor-mode-alist)) ""))

  (unless window-system
    (set-terminal-coding-system 'euc-kr)
    (when (boundp 'encoded-kbd-mode-map)
      (define-key encoded-kbd-mode-map [27] nil)))

  ;; in case default doesn't work
  ;;(set-selection-coding-system 'ctext)

  ;; Hangul Mail setting
  (setq-default sendmail-coding-system 'euc-kr)

  ;; turn off C-h during input -- this code should be invoked after
  ;; loading quail but before loading specific keymap
  (require 'quail)
  (loop for kpair in '(("C-h" . quail-delete-last-char)
                       ("C-?" . quail-delete-last-char)
                       ("C-SPC" . set-mark-command)
                       ("<f1>" . quail-translation-help))
        do (define-key quail-translation-keymap
             (read-kbd-macro (car kpair)) (cdr kpair))
        do (define-key quail-conversion-keymap
             (read-kbd-macro (car kpair)) (cdr kpair)))
  (define-key global-map (kbd "C-x RET s") 'decode-coding-region)

  ;; hangul <-> english auto conversion
  ;;(when window-system (require 'hangul-auto))
  )


아래 파일은 XEmacs 전용 설정입니다.

.xemacs/init.el
(setq inhibit-default-init t) ;


;; 아래부터는 각자 개인 설정 입니다.

;; 마우스 휠 설정 ;;
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)

;; 항상 문법 강조 ;;
(font-lock-mode 'font)

;; 배경색 설정, 배경색은 검정, 글자색은 회색으로 설정 ;;
(set-face-foreground 'default "gray80")
(set-face-background 'default "black")

;; Syntax highlighting 색 설정입니다. 마음에 드는 색깔을 설정합니다. ;;
;; 이 설정이 없으면 XEmacs의 기본 색 설정을 따릅니다. ;;
; Syntax highlighting. Dark background.
; Insert this in .emacs. Then restart XEmacs.
(custom-set-faces
 '(default ((t (:foreground "gray80" :background "black" :size "15" :family "Fixed"))) t)
 '(cperl-array-face ((t (:foreground "orangered" t))))
 '(cperl-hash-face ((t (:foreground "Red" t))))
 '(cperl-nonoverridable-face ((t (:foreground "orange" t))))
 '(custom-button-face ((t (t :foreground "#3fdfcf"))))
 '(custom-group-tag-face ((t (:underline t :foreground "blue"))))
 '(custom-saved-face ((t (:underline t :foreground "orange"))))
 '(custom-state-face ((t (:foreground "green3"))))
 '(custom-variable-button-face ((t (t :underline t :foreground "white"))))
 '(dired-face-permissions ((t (:foreground "green"))))
 '(font-lock-comment-face ((t (:foreground "#52ffff"))))
 '(font-lock-doc-string-face ((t (:foreground "Wheat3"))))
 '(font-lock-function-name-face ((t (:foreground "gray80" t))))
 '(font-lock-keyword-face ((t (:foreground "green"))))
 '(font-lock-preprocessor-face ((t (:foreground "#5255ff" t))))
 '(font-lock-reference-face ((t (:foreground "orangered"))))
 '(font-lock-string-face ((t (:foreground "#ff55ff"))))
 '(font-lock-type-face ((t (:foreground "green" t))))
 '(font-lock-variable-name-face ((t (:foreground "gray80" t))))
 '(font-lock-warning-face ((t (:foreground "Violetred" t))))
 '(highlight ((t (:foreground "red3" :background "white"))) t)
 '(isearch ((t (:foreground "red" :background "white"))) t)
 '(list-mode-item-selected ((t (:foreground "green"))) t)
 '(message-cited-text ((t (t :italic nil))))
 '(secondary-selection ((t (:foreground "white" :background "red"))) t)
 '(text-cursor ((t (:foreground "black" :background "green"))) t)
 '(zmacs-region ((t (:background "RoyalBlue"))) t)
 )


X에서 사용하는 폰트를 사용할 수 있습니다. 자신이 가진 폰트를 알맞게 지정하면 됩니다.

.xemacs/custom.el
;; 영문 폰트 지정 ;;
(set-face-font
     'default
     '("-misc-fixed-medium-r-*-*-15-*-*-*-*-*-iso8859-*")
     'prepend)

;; 한글 폰트 지정 ;;
(set-face-font
      'default
      '("-hanyang-gulim-medium-r-normal--14-*-*-*-*-*-ksc5601.1987-*")
      'global
      '(mule-fonts)
      'prepend)

5. 사용

5.1. XEmacs 종료

File -> Exit XEmacs

C-x, C-c

6. 한글 입력

nabi, imhangul, ami등의 한글 입력기로 한글 입력이 가능합니다.

Emacs의 다국어 입력 모듈 Mule를 사용하려면 C-\로 한영 변환을 합니다. 한글 입력기쪽 보다 Mule로 입력하는 것이 좀더 부드럽습니다.

6.1. etags를 사용한 소스 분석

Vim + ctags 처럼 Emacs에서도 etags를 사용해서 소스를 분석할 수 있습니다.

TAGS 파일 만들기
hello-src# find . -name "*.[chCH]" -print | etags -
이렇게 하면 TAGS라는 파일이 만들어집니다.


분석할 소스를 열고 찾고자 하는 함수에서 M-. 전의 파일로 되돌아 가려면 M-*

다른 디렉토리에서 M-.을 입력하면 XEmacs가 TAGS 파일의 위치를 물어올 것입니다. 위치를 지정해 줍니다.





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-02-15 13:56:15
Processing time 0.0564 sec