· 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 파일의 위치를 물어올 것입니다. 위치를 지정해 줍니다.



ID
Password
Join
Let not the sands of time get in your lunch.


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