요즘 SNS (Social Network Service) 가 한창 인기중이지만 그중의 대세는 twitter 로 생각됩니다.
개인적으로 사용하기에는 me2day 가 훨씬 편한 것 같긴 하지만 대세는 대세인지라... 

Emacs 로 twitter client 인 twitter.el 간단하게 소개해보겠습니다.
사용화면은 대충 이렇습니다.



[#1] Install twitter.el

Download twitter.el package and configure .emacs
;; ----------------------------------------------------------------------------
;; Twitter.el
;; ----------------------------------------------------------------------------
(autoload 'twitter-get-friends-timeline "twitter" nil t)
(autoload 'twitter-status-edit "twitter" nil t)
(add-hook 'twitter-status-edit-mode-hook 'longlines-mode)

;(global-set-key "\C-xt" 'twitter-get-friends-timeline)
(global-set-key (kbd "<S-f1>")  'twitter-get-friends-timeline)
[#2] Usage

;; You can view the statuses by pressing C-x t. While in the timeline
;; buffer you can press C-c C-s to post a new status or C-c C-r to
;; reply to the status at point. Once the message is finished press
;; C-c C-c to publish.
  • C-xt : Latest statues 확인. (위 configuration 에서는 Shift+F1 로 변경)
  • C-c C-s : Post a new status.
  • C-c C-r : Reply to the status at ponit.
  • C-c C-c : publish
저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

Programming editor 를 이용함에 있어서 auto-completion 기능은 참 좋은 기능 같습니다.
Emacs 에서도 이를 지원하는 auto-complete.el package 가 있네요.



[#0] Download and compile

Download auto-compile.el and compile it.

[#1] 기본 설정 in .emacs
;; ----------------------------------------------------------------------------
;; Auto-complete
;; ----------------------------------------------------------------------------
(require 'auto-complete)(global-auto-complete-mode t)

[#2] 추가 configuration in .emacs

Auto-complete mode 가 enable 되어 있는 경우에 pop-up color setting 및 key-binding 설정 등등.
;; ----------------------------------------------------------------------------
;; Auto-complete
;; ----------------------------------------------------------------------------
(require 'auto-complete)
(global-auto-complete-mode t)

(when (require 'auto-complete nil t)
   (global-auto-complete-mode t)
   (set-face-background 'ac-selection-face "steelblue")
   (set-face-background 'ac-menu-face "skyblue")
   (define-key ac-complete-mode-map "\t" 'ac-expand)
   (define-key ac-complete-mode-map "\r" 'ac-complete)
   (define-key ac-complete-mode-map "\C-\M-n" 'ac-next)
   (define-key ac-complete-mode-map "\C-\M-p" 'ac-previous)
   (setq ac-auto-start t)
   (setq ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-words-in-buffer))
 
   (add-to-list 'ac-modes 'eshell-mode)
 
   (add-hook 'emacs-lisp-mode-hook
             (lambda ()
               (make-local-variable 'ac-sources)
               (setq ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-words-in-buffer ac-source-symbols))))
 
   (add-hook 'eshell-mode-hook
             (lambda ()
               (make-local-variable 'ac-sources)
               (setq ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-files-in-current-dir ac-source-words-in-buffer)))))
 
(defconst c++-keywords 
      (sort 
       (list "and" "bool" "compl" "do" "export" "goto" "namespace" "or_eq" "return"
             "struct" "try" "using" "xor" "and_eq" "break" "const" "double" "extern"
             "if" "new" "private" "short" "switch" "typedef" "virtual" "xor_eq" "asm"
             "case" "const_cast" "dynamic_cast" "false" "inline" "not" "protected" 
             "signed" "template" "typeid" "void" "auto" "catch" "continue" "else" 
             "float" "int" "not_eq" "public" "sizeof" "this" "typename" "volatile"
             "bitand" "char" "default" "enum" "for" "long" "operator" "register"
             "static" "throw" "union" "wchar_t" "bitor" "class" "delete" "explicit"
             "friend" "mutable" "or" "reinterpret_cast" "static_cast" "true" 
             "unsigned" "while" ) #'(lambda (a b) (> (length a) (length b)))))
(defvar ac-source-c++
      '((candidates
         . (lambda ()
             (all-completions ac-target c++-keywords))))
      "Source for c++ keywords.")
(add-hook 'c++-mode-hook
              (lambda ()
                (make-local-variable 'ac-sources)
                (setq ac-sources '(ac-source-c++))))
저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

저는 무늬만 프로그래머라서 코딩은 별로 안 하면서 맨날  font 하고 editor color theme 부터 찾곤 합니다.
Emacs 에서도 color-theme 이용하여 훨씬 화려한 editor 세계(?)에 빠질 수 있습니다.

[#0] Download color theme


[#1] Config .emacs

;; ----------------------------------------------------------------------------
;; Color-theme
;; ----------------------------------------------------------------------------
(setq load-path (cons (expand-file-name "~/.emacs.d/color-theme-6.6.0") load-path)) 
(load-library "color-theme") 

(require 'color-theme) 
(color-theme-initialize) 
;(color-theme-charcoal-black)   ;; Select the theme which you want

제가 좋아하는 몇 가지 theme 를 capture 해보았습니다. :)



각 theme 의 color configuration 은 다음 페이지에서 볼 수 있습니다.
저작자 표시 비영리 변경 금지
신고
Posted by tkhwang


코드가 긴 경우에 집중하기 어려우므로 현재 작업하는 부분만 show 시켜놓고, 다른 부분은 protype 만 남겨두도록 hide 시켜주는 package 입니다.
Emacs 22 이상에서는 기본적으로 hide-show package 가 깔려 있습니다.

이를 손쉽게 사용하기 위하여 emacs-fu 에서 아래와 같이 key binding 을 한 것을 적용해보니깐 정말 편리하네요. (WoW)

[#1] .emacs 에 hide-show 관련 key binding 적용
;; ----------------------------------------------------------------------------
;; Showing and hiding blocks of code
;; ----------------------------------------------------------------------------
(add-hook 'c-mode-common-hook
  (lambda()
    (local-set-key (kbd "C-c <right>") 'hs-show-block)
    (local-set-key (kbd "C-c <left>")  'hs-hide-block)
    (local-set-key (kbd "C-c <up>")    'hs-hide-all)
    (local-set-key (kbd "C-c <down>")  'hs-show-all)
    (hs-minor-mode t)))
[#2] 적용예
  • File 을 열고
  • Ctrl + c + UP  하여 hide all 한 다음에
  • 보고 싶은 코드가 있으면 Ctrl + c + right  하여 show


Emacs 의 장점은 이렇게 lisp 통하여 원하는 기능 하나하나 확장시킬 수 있는 것이겠죠. :)

[ps] 최근에 emacs-fu 에 좋은 tip 이 많이 올라와서 소개하고 싶은데, trackback open 을 하지 않은 것 같네요... 음...
저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

Emacs 에서 programming 시에는 yasnippet 을 빼놓을 수 없겠죠. :)

간단히 기능을 말씀드리면 coding 을 편하게 하기 위하여 반복적인 typing 을 
미리 template (code snippet)를 제공해줌으로써 많이 줄여주는 것입니다.

예약어 (menu에서 확인) 다음에 tab key 를 누르면 미리 정해진 code snippet 을 불러와서 최소 정보만 넣어주면 됩니다.



#include <iostream> 을 작성한다고 하면...

(1)  inc TAB key 누르고...
          

(2) 1번 선택
   

(3) 해당 code snippet 자동으로 작성되고...


(4) include 하고 싶은 file 이름 작성



간단한 설치방법은 다음과 같습니다.

[#0] Latest yasnippet download


[#1]  Uncompress

 아래 file 을  ~/.emacs.d  folder 에 copy.



[#2] Config .emacs
;; ----------------------------------------------------------------------------
;; yasnippet
;; ----------------------------------------------------------------------------

;;   1. Place `yasnippet.el' in your `load-path'.
;;   2. In your .emacs file:
;;        (require 'yasnippet)
;;   3. Place the `snippets' directory somewhere.  E.g: ~/.emacs.d/snippets
;;   4. In your .emacs file
;;        (yas/initialize)
;;        (yas/load-directory "~/.emacs.d/snippets")
;;
;; For more information and detailed usage, refer to the project page:
;;      http://code.google.com/p/yasnippet/

(require 'yasnippet)

(yas/initialize)
(yas/load-directory "~/.emacs.d/snippets")

저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

M-x all-things-emacs 에  emacs 에서 window 사이의 손쉬운 창 전환하는 tip 이 올라와서 전합니다.

예전에는  Ctrl + o 혹은 Ctrl + b  와 같은 명렁어를 이용하여 창을 전환하였는데,

windmove-default-default-keybindings 을 meta key 로 설정함으로써 
직관적으로 meta (alt) key 와 화살표로 생각하는 것 그대로 key 로 창전환 가능합니다.
;; ----------------------------------------------------------------------------
;; Easier Transition between Windows
;; ----------------------------------------------------------------------------
;  M-up, M-down, M-left, and M-right keys.
(windmove-default-keybindings 'meta)

저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

Emacs 는 하나하나 자신에게 맞도록 configuration 잡아주는 것이 매우 중요합니다.
본격적인 사용하기 이전에 주요 configuration 에 대해서 적어보겠습니다.

[#1] Caps Lock key 를 control key 로 변경하기

Emacs 에서는 control key 사용이 매우 많기 때문에 흔히 capslock key 를 control key 로 변경하여 많이 사용합니다.
아래 reshout 님 블로그에 capslock key 를 control key 로 변경/복원하는 registry file 을 실행하면 됩니다. :)



[#2] Font 설정 (Monaco)

Mac font 인데, windows 용으로 TTF 로 변환된 것이 있습니다.
Programming font 로서 많이 애용되는 것중의 하나 입니다. 개인적으로는 강추! 입니다. :)

아래 .emacs 에서는 monaco font 를 기본으로 사용하도록 설정하고 있습니다.


[#3] .emacs

저 역시 초보자로서 web 에서 .emacs 내용 하나하나 적용하면서 사용하고 있어서 아래 내용을 모두 아는 것은 아닙니다. T_T;
소개와 backup 의 의미로서 추가 el file 설치를 제외하고, 기본적인 .emacs 내용 올려봅니다.

;; ----------------------------------------------------------------------------
;; .emacs      ---------------------------------------------------------- BEGIN
;; ----------------------------------------------------------------------------
 
;; ----------------------------------------------------------------------------
;; Default Emacs Setting
;; ----------------------------------------------------------------------------
(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(column-number-mode t)
 '(display-battery-mode t)
 '(display-time-mode t)
 '(fast-lock-mode nil t (fast-lock))
 '(file-name-shadow-mode (quote on))
 '(font-lock-mode t t (font-lock))
 '(global-font-lock-mode (quote on))
 '(global-hl-line-mode (quote on))
 '(hi-lock-mode (quote on) t)
 '(highlight-current-line-whole-line t)
 '(ibuffer (quote on) t)
 '(iswitchb-mode (quote on))
 '(next-line-add-newlines t)
 '(nil nil t)
 '(paren-mode (quote sexp) nil (paren))
 '(query-user-mail-address nil)
 '(show-paren-mode t)
 '(show-paren-style (quote expression))
 '(size-indication-mode t)
 '(tab-width 4)
 '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify)))
 '(transient-mark-mode t)
 '(uniquify-buffer-name-style (quote forward) nil (uniquify)))

;; ----------------------------------------------------------------------------
;; Path
;; ----------------------------------------------------------------------------
(setq load-path (cons (expand-file-name "~") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d") load-path))

;; ----------------------------------------------------------------------------
;; Backup File
;; ----------------------------------------------------------------------------
(setq make-backup-files nil)

;; ----------------------------------------------------------------------------
;; Size setting
;; ----------------------------------------------------------------------------
(setq load-path (cons (expand-file-name "~") load-path))

;; 한글 저장은 어떻게 되는 것인가? 
;;
;; 버퍼에 쩍힌 영역에 따라 다르게 저장된다.  현재 default는 CP949로
;; 저장되며, 만약 확장영역의 한글이 적히면 utf-8로 저장할 것인지
;; 물어본다.
(setq inhibit-startup-message t)
(setq byte-compile-verbose      nil
      byte-compile-warnings     nil)

(if (eq window-system 'w32)
    (progn
      ;; http://oldpie.yoonkn.com/cgi-bin/moin.cgi/EmacsFontSet
      ;; http://oldpie.yoonkn.com/cgi-bin/moin.cgi/dreamstorm/emacs
      ;; http://www.emacswiki.org/cgi-bin/wiki/FontSets
      ;; by hosung 2008-05-20
      ;; http://www.gnu.org/software/emacs/windows/faq5.html#windows-font
      ;; M-x set-default-font <RET> <TAB>하면 폰트리스트가 나온다.
      ;; 폰트크기 18은 맨 첫줄을 따라 가는 것 같다. ksc5601에서 작게 해도 한글이 작아지지는 않는다.
      ;; ksc5601에서 c는 실제 p로 나오는데 어떤 것을 해도 상관 없다.
      ;; 맨끝의 0을 *로 하면 정상적으로 폰트가 출력되지 않는다.
      ;;
      ;; 이와 같이 ksc5601로 하면 확장문자에 대하여 네모박스로 출력되는 문제가 있다.
      (setq initial-frame-alist '((top . 10) (left . 100)))
      (setq default-frame-alist
        (append
         '(
           (font . "-*-Monaco-normal-r-*-*-12-102-120-120-c-*-iso8859-1")
           (width . 140)
           (height . 47)
           )
         default-frame-alist))))

;; ----------------------------------------------------------------------------
;; Mode
;; ----------------------------------------------------------------------------
(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode)  auto-mode-alist))
(setq auto-mode-alist (cons '("\\.htm$"  . html-helper-mode)  auto-mode-alist))
(setq auto-mode-alist (cons '("\\.c$"    . c-mode)            auto-mode-alist))
(setq auto-mode-alist (cons '("\\.a$"    . c-mode)            auto-mode-alist))
(setq auto-mode-alist (cons '("\\.h$"    . c-mode)            auto-mode-alist))
(setq auto-mode-alist (cons '("\\.cpp$"  . c++-mode)          auto-mode-alist))
(setq auto-mode-alist (cons '("\\.scl$"  . c-mode)            auto-mode-alist))
(setq auto-mode-alist (cons '("\\.el$"   . emacs-lisp-mode)   auto-mode-alist))
(setq auto-mode-alist (cons '("\\.bat$"  . shell-script-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.mak$"  . shell-script-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.gmk$"  . shell-script-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.min$"  . shell-script-mode) auto-mode-alist))

;; ----------------------------------------------------------------------------
;; Indentation Setting
;; ----------------------------------------------------------------------------
;C 들여쓰기 기본 스타일 설정
(setq c-default-style "k&r")
; (setq c-default-style "cc-mode")
; (setq c-default-style "gnu")
; (setq c-default-style "bsd")
; (setq c-default-style "stroustrup")
; (setq c-default-style "whitemsith")
; 엔터 입력시 자동 들여쓰기 다른 방법

(load "cc-mode")
(define-key c++-mode-map "\r" 'reindent-then-newline-and-indent)
(define-key c-mode-map "\r" 'reindent-then-newline-and-indent)
(define-key java-mode-map "\r" 'reindent-then-newline-and-indent)

; 엔터 입력시 자동 들여쓰기 다른 방법
;(require 'cc-mode)
;(define-key c-mode-base-map (kbd "RET") 'newline-and-indent)
; { , ; 입력시 자동 줄 추가
(add-hook 'c-mode-common-hook '(lambda () (c-toggle-auto-state 1)))

;; ----------------------------------------------------------------------------
;; Tab settingemacs
;; ----------------------------------------------------------------------------
;emacs tab 설정
(setq c-basic-offset 4
      tab-width 4
      indent-tabs-mode t)
;(add-hook 'c-mode-common-hook '(lambda () (c-toggle-auto-state 1)))

;; ------------------------------------------------------------------------------
;; Copy Word & Line & Paragraph
;; ------------------------------------------------------------------------------
(defun copy-line (&optional arg)
  "Save current line into Kill-Ring without mark the line "
  (interactive "P")
  (let ((beg (line-beginning-position))
        (end (line-end-position)))
    (copy-region-as-kill beg end))
  )
(global-set-key (kbd "C-c l")         (quote copy-line))
(defun copy-paragraph (&optional arg)
  "Copy paragraphes at point"
  (interactive "P")
  (let ((beg (progn (backward-paragraph 1) (point)))
        (end (progn (forward-paragraph arg) (point))))
    (copy-region-as-kill beg end))
  )
(global-set-key (kbd "C-c p")         (quote copy-paragraph))

;; ------------------------------------------------------------------------------
;; Dynamic Abbreviation Mode
;; ------------------------------------------------------------------------------
(global-set-key (kbd "C-<tab>") 'dabbrev-expand)
(define-key minibuffer-local-map (kbd "C-<tab>") 'dabbrev-expand)

;; ------------------------------------------------------------------------------
;; Moving Lines
;; ------------------------------------------------------------------------------
(local-set-key [(meta up)] 'move-line-up)
(local-set-key [(meta down)] 'move-line-down)
(defun move-line (&optional n)
  "Move current line N (1) lines up/down leaving point in place."
  (interactive "p")
  (when (null n)
    (setq n 1))
  (let ((col (current-column)))
    (beginning-of-line)
    (next-line 1)
    (transpose-lines n)
    (previous-line 1)
    (forward-char col)))
(defun move-line-up (n)
  "Moves current line N (1) lines up leaving point in place."
  (interactive "p")
  (move-line (if (null n) -1 (- n))))
(defun move-line-down (n)
  "Moves current line N (1) lines down leaving point in place."
  (interactive "p")
  (move-line (if (null n) 1 n)))

;; ------------------------------------------------------------------------------
;; Open new line
;; ------------------------------------------------------------------------------
(local-set-key [(control o)] 'vi-open-next-line)
(defun vi-open-next-line (arg)
  "Move to the next line (like vi) and then opens a line."
  (interactive "p")
  (end-of-line)
  (open-line arg)
  (next-line 1)
  (indent-according-to-mode))

;; ------------------------------------------------------------------------------
;; Moving around
;; ------------------------------------------------------------------------------
(local-set-key [(control s)] 'isearch-forward-regexp)
(local-set-key [(control r)] 'isearch-backward-regexp)
;; Always end searches at the beginning of the matching expression.
(add-hook 'isearch-mode-end-hook 'custom-goto-match-beginning)
(defun custom-goto-match-beginning ()
  "Use with isearch hook to end search at first char of match."
  (when isearch-forward (goto-char isearch-other-end)))

;; ------------------------------------------------------------------------------
;; Global key binding
;; ------------------------------------------------------------------------------
(global-set-key "\C-l" 'goto-line)      ; [Ctrl]-[L]

;; ------------------------------------------------------------------------------
;; imenu
;; ------------------------------------------------------------------------------
(add-hook 'c-mode-hook 'imenu-add-menubar-index)
(add-hook 'emacs-lisp-mode-hook 'imenu-add-menubar-index)
 
;; ------------------------------------------------------------------------------
;; Visible BELL
;; ------------------------------------------------------------------------------
(setq visible-bell t)

;; ----------------------------------------------------------------------------
;; YES ==> Y , NO ==> n
;; ----------------------------------------------------------------------------
(fset 'yes-or-no-p 'y-or-n-p)

;; ----------------------------------------------------------------------------
;; Add occur to isearch
;; ----------------------------------------------------------------------------
(define-key isearch-mode-map (kbd "C-o")
  (lambda ()
    (interactive)
    (let ((case-fold-search isearch-case-fold-search))
      (occur (if isearch-regexp isearch-string
               (regexp-quote isearch-string))))))

;; ----------------------------------------------------------------------------
;; Indent or Expand
;; ----------------------------------------------------------------------------
(defun indent-or-expand (arg)
  "Either indent according to mode, or expand the word preceding
point."
  (interactive "*P")
  (if (and
       (or (bobp) (= ?w (char-syntax (char-before))))
       (or (eobp) (not (= ?w (char-syntax (char-after))))))
      (dabbrev-expand arg)
    (indent-according-to-mode)))
(defun my-tab-fix ()
  (local-set-key [tab] 'indent-or-expand))
(add-hook 'c-mode-hook          'my-tab-fix)
(add-hook 'sh-mode-hook         'my-tab-fix)
(add-hook 'emacs-lisp-mode-hook 'my-tab-fix)
;; more mode hooks, yada yada, etc ...

;; ----------------------------------------------------------------------------
;; ido-mode
;; ----------------------------------------------------------------------------
(define-key minibuffer-local-map [tab] 'minibuffer-complete)
(ido-mode t)
(setq ido-enable-flex-matching t) ; fuzzy matching is a must have
 
;; This tab override shouldn't be necessary given ido's default
;; configuration, but minibuffer-complete otherwise dominates the
;; tab binding because of my custom tab-completion-everywhere
;; configuration.
(add-hook 'ido-setup-hook
          (lambda ()
            (define-key ido-completion-map [tab] 'ido-complete)))

;; ----------------------------------------------------------------------------
;; .emacs      ------------------------------------------------------------ END
;; ----------------------------------------------------------------------------

[#4] 초기 설정 완료 인증샷

자신의 home directory 에 위의 .emacs 저장한 다음에 Emacs-Llisp > Byte-cmpile This File menu 로
.emacs lisp file (.el) comile 하여 .elc 로  만듭니다.



이후 다시 emacs 를 실행시키면 다음과 같은 기본적인 설정이 완료된 emacs 를 이용하실 수 있게 됩니다.



[#5] Emacs 관련 link

처음 emacs 를 사용하시면 기본적인 커서 움직임 하나부터 key binding 이 다르고 해서 
이렇게 불편한 것을 왜 쓰는지부터... 적용하시기 어려울 것입니다.

이에 참고하시라고 몇 가지 link 함께 걸어봅니다.
처음에는 조금 불편하시겠지만 그 많은 geek 들이 열광하는 이유가 무엇인지 직접 한 번 느껴봅시다. :)
저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

요즘은 VisualStudio 나 Eclipse 와 같은 IDE 나  source insight 와 같은 programming editor 가 너무 좋아서
emacs 가 예전만큼의 본좌의 자리에 있지 못하는 것 같지만... Emacs 는 자신만의 장점이 있죠.

저 역시 Emacs 제대로 활용 못하는 초보이지만 Windows 에서 emacs 소개에 대해서 간단하게 적어보려고 합니다.

[#0] Emacs download

Windows 에서 사용할 수 있는 emacs 는 몇 가지 선택이 가능합니다.

[#1] Download latest EmacsW32

EmacsW32 site 에서 최신 버전을 download 받아서 실행시키면 됩니다.

Patched 의 경우에는 patch 까지 적용이 되어서 다소 버전이 낮을 수 있으며, Unpatched 의 경우에는 patch 적용이 안되서 버전은 더 최신이지만 간혹 unstable 한 경우도 있습니다. 보통은 patched version download 받으면 됩니다.



[#1] 압축 풀기 (or 설치) [obsolete]

EmacsW32 최신 버전의 경우에는 큰 문제가 없어서 아래 ntemacs 보다 emacsW32 최신 버전 쓰는 것이 더 좋을 것 같네요.

EmacsW32 가 더 latest source 이긴 하지만 이상하게 실행 속도도 오래걸리고 해서, 
ntemacs 를 사용하도록 하겠습니다. Precomiled version 이라서 download 후 압축 만 풀어주시면 됩니다.

ntemacs23-bin-20070819.exe 를 download 받으신 후 적당한 directory 에 압축을 푸시면 다음과 같은 emacs directory 가 생성됩니다.


\ntemacs23\bin\runemacs.exe  를 직접 실행하시거나 바로가기로 설정을 한 후 실행시키면 emacs 를 실행할 수 있습니다.
실행시킨 후 Help > About Emacs 선택하시면 다음과 같이 emacs 소개 page 를 보실 수 있습니다.


[#2] 환경 변수 HOME 설정

emacs의 설정 파일과 여러 가지 확장기능은 기본적으로 C:\Documents and Settings\(사용자id)\Application Data에 저장하게 되는데
자신의 지정한 directory 로 설정을 하기 위해서는 HOME 환경 변수를 추가하여 준다.




[#3] .emacs configuration file 설정

Emacs configuration 에서 가장 중요한 .emacs file 을 설정해야한다.
  • 먼저 위에서 HOME path 를 설정한 후 emacs 를 실행.
  • Option menu 에서 몇 가지 option 을 선택한 후 저장을 위하여 Save Options menu 실행


저장하면 다음과 같이 새로 설정한 HOME path 에 .emacs 가 생성되는지 확인.


이제 우리가 원하는 emacs 설치를 완료하였고, 우리가 원하는 path 에 .emacs file 을 생성하였으므로
emacs 를 사용하기 위한 최소한의 설정이 완료되었습니다.

이제 Emacs 의 멋진 세계로 빠지는 일만 남아 있습니다. :)

저작자 표시 비영리 변경 금지
신고
Posted by tkhwang

카테고리

분류 전체보기 (61)
소프트웨어 (30)
잡담 (17)
BOOK (7)
펜,잉크,노트,문구 (6)
Blog (1)
Bookmark (0)

달력

«   2017/07   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

티스토리 툴바