(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.

 '(display-time-mode t)

 '(setq neo-window-width t)

 '(tool-bar-mode nil))

(custom-set-faces

 ;; custom-set-faces 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.

 '(default ((t (:family "나눔고딕코딩" :foundry "SAND" :slant normal :weight bold :height 125 :width normal)))))


;; 튜토리얼 메시지 없애기

(setq inhibit-startup-message t)


;; 영역이 선택된 상태에서 붙여넣기 입력시 선택 영역을 지우고 paste 하도록 변경

(delete-selection-mode t)


;; 커서 모양

;; (setq-default cursor-type 'box)

(setq-default cursor-type 'bar)

;; (setq-default cursor-type 'hbar)


;; 커서 라인 표시하기

;;(global-hl-line-mode 1)

 

;; 화면 왼쪽에 라인넘버 표시

;;(global-linum-mode t)

 

;; 선택 영역 표시

(transient-mark-mode t)


;; 윈도우 제목 설정

(setq frame-title-format "Emacs - %b")

(setq icon-title-format "Emacs - %b")

;; (setq frame-title-format

;;   '(buffer-file-name

;;     "Emacs - [%f]"

;;     (dired-directory dired-directory "Emacs - [%b]")))

 

;; 미니버퍼 히스토리를 저장한다.

(savehist-mode 1)

 

;; 기본 모드 : text-mode

;;(setq initial-major-mode 'text-mode)


;==============================================================================

;; prog mode 설정하기(emacs 24+ only)

;; (참조 : http://www.gnu.org/software/emacs/manual/html_node/elisp/Basic-Major-Modes.html)

;==============================================================================

;; prog mode 에 설정을 해두면 각각의 언어에서 별도 설정을 하지 않아도 된다.

;; prog mode 를 상속하지 않는 경우 별도로 설정해야 한다.


(defun set-default-programming-style ()

    ;; -------------------------------------------------------------------------

    ;; 엔터 입력시 들여쓰기

    (local-set-key (kbd "RET") 'newline-and-indent)

    ;; -------------------------------------------------------------------------

    ;; 탭키를 일반 에디터에서 작동하는 방식으로 변경

    ;; (local-set-key (kbd "TAB") 'self-insert-command)

    ;; 탭키 입력시 영역지정되어 있으면 영역 들여쓰기. 영역없으면 탭키.

    (local-set-key (kbd "TAB") 'indent-block)

    ;; 들여쓰기 할 때 실제 탭문자 입력

    (setq indent-tabs-mode t)

    ;; 탭 사이즈 4

    (setq tab-width 4)

    ;; -------------------------------------------------------------------------

    ;; 줄번호 표시

    (linum-mode 1)

    ;; -------------------------------------------------------------------------

    ;; 대응하는 괄호 표시

    (show-paren-mode t)

    ;; -------------------------------------------------------------------------

    ;; 커서라인 표시

    (global-hl-line-mode))


(add-hook 'prog-mode-hook 'set-default-programming-style)


(defun indent-block()

  (interactive)

  (if (region-active-p)

   (shift-region tab-width)

    (insert-tab))

  (setq deactivate-mark nil))


(defun unindent-block()

  (interactive)

  (shift-region (- tab-width))

  (setq deactivate-mark nil))


(defun shift-region(numcols)

  "shift selected region"

  (make-region-as-full-line)

  (if (region-active-p)

    (save-excursion

      (indent-rigidly (region-beginning) (region-end) numcols)

      (setq deactivate-mark nil))))


(defun make-region-as-full-line()

  "expand the region to the beginning and end of the area selected"

  (if (region-active-p)

    (progn

      (if (< (point) (mark))

        (if (not(bolp))

          (progn

            (beginning-of-line)

            (exchange-point-and-mark)

            (end-of-line)))))))


(define-key global-map (kbd "M-]") 'indent-block)

(define-key global-map (kbd "M-[") 'unindent-block)

(define-key global-map (kbd "<backtab>") 'unindent-block)


;==============================================================================

;; cc mode

;==============================================================================


;; cc mode

(require 'cc-mode)


(setq auto-mode-alist

  (append

    '(("\\.C$"    . c++-mode)

      ("\\.H$"    . c++-mode)

      ("\\.cc$"   . c++-mode)

      ("\\.cpp$"  . c++-mode)

      ("\\.hh$"   . c++-mode)

      ("\\.c$"    . c-mode)

      ("\\.h$"    . c-mode)

      ("\\.m$"    . objc-mode)

      ("\\.java$" . java-mode)

     ) auto-mode-alist))


; set k&r style

;; 참고 : http://davidha.wordpress.com/2009/05/15/emacs-cc-modes-built-in-styles-gallery/

(setq

  c-default-style "k&r"

  c-basic-offset 4

  cperl-indent-level 4)


(add-hook 'c-mode-common-hook

  (lambda ()

    (setq c-basic-offset 4)

    ))


=============================================================================

;; MS Windows 입력기 사용않함

;; (필요 : http://www.emacswiki.org/emacs/DisableImeForEmacs)

;; =============================================================================


(let ((dife (expand-file-name "~/emacs/DIFE.exe")))

  (if (eq system-type 'windows-nt)

    (progn

      (if (file-exists-p dife)

        (w32-shell-execute nil dife)))))

 

(global-set-key [(kana)] 'toggle-input-method)

(global-set-key [(kanji)] 'hangul-to-hanja-conversion)


;; =============================================================================

;; 상태표시줄(status bar)에 디렉토리를 포함한 파일명 표시

;; =============================================================================


(setq-default mode-line-buffer-identification

              (list 'buffer-file-name

                    (propertized-buffer-identification "%12f")

                    (propertized-buffer-identification "%12b")))


;; (add-hook 'dired-mode-hook

;;           (lambda ()

;;             ;; TODO: handle (DIRECTORY FILE ...) list value for dired-directory

;;             (setq mode-line-buffer-identification

;;                   ;; emulate "%17b" (see dired-mode):

;;                   '(:eval

;;                     (propertized-buffer-identification

;;                      (if (< (length default-directory) 17)

;;                          (concat default-directory

;;                                  (make-string (- 17 (length default-directory))

;;                                               ?\s))

;;                        default-directory))))))


;==============================================================================

;; 최근 열었던 파일 가져오기

;==============================================================================


(recentf-mode 1)

(setq recentf-max-saved-items 1200)

 

;; 제외할 파일

(add-to-list 'recentf-exclude "Temporary Internet Files")

 

;; 자동 저장기능 활성화

;;(setq recentf-auto-save-timer

;;  (run-with-idle-timer 30 t 'recentf-save-list))

 

(global-set-key [f12] 'recentf-open-files)



;; 탭키를 이용하여 최근 파일명 완성하기

(defun recentf-open-files-compl ()

  (interactive)

  (let* ((all-files recentf-list)

      (tocpl (mapcar (function

          (lambda (x) (cons (file-name-nondirectory x) x))) all-files))

      (prompt (append '("File name: ") tocpl))

    (fname (completing-read (car prompt) (cdr prompt) nil nil)))

    (find-file (cdr (assoc-string fname tocpl nil)))))

 

(global-set-key "\C-c\C-r" 'recentf-open-files-compl)


;==============================================================================

;; Auto Save & Backup File

;==============================================================================

 

(setq make-backup-files t)

(setq auto-save-default t)

 

(setq

  make-backup-files t

  backup-by-copying t

  delete-old-versions t

  kept-new-versions 10

  kept-old-versions 10

  version-control t)      ;; Make numbered backups

 

;; create the autosave dir if necessary, since emacs won't.

(make-directory "~/.autosave.d/" t)

 

;; 디렉토리 설정

(setq

  bacnkup-directory-alist `((".*" . ,"~/.autosave.d/"))

  auto-save-file-name-transforms `((".*" ,"~/.autosave.d/" t))

  tramp-auto-save-directory "~/.autosave.d/")

 

;; ftp 파일에 대해 백업파일 설정

(setq ange-ftp-auto-save 1)           ;; only 0 or 1 (DO NOT USE t or nil !!!)

(setq ange-ftp-make-backup-files t)

 

;; auto-save every 100 input events

(setq auto-save-interval 100)

 

;; auto-save after 30 seconds idle time

(setq auto-save-timeout 30)


;; 상태표시줄에 시간 표시하기

(require 'time)


;;(setq display-time-24hr-format t)

;;(setq display-time-day-and-date t)

(setq display-time-string-forms

  '(year "-" month "-" day

    " " 24-hours ":" minutes

    (if time-zone " (") time-zone (if time-zone ")")

    (if mail " Mail" "")))

(display-time)


;==============================================================================

;; 버퍼 선택 툴

;==============================================================================

 

(require 'bs)

(global-set-key [C-tab] 'bs-show)

;;(global-set-key '[C-tab] 'bs-cycle-next)

;;(global-set-key [C-S-tab] 'bs-cycle-next)

;;(global-set-key [C-S-tab] 'bs-cycle-previous)

;; ("all"                . bs-config--all)

;; ("files"              . bs-config--only-files)

;; ("files-and-scratch"  . bs-config--files-and-scratch)

;; ("all-intern-last"    . bs-config--all-intern-last)

;; (setq bs-default-configuration "all")

(setq bs-default-configuration "files-and-scratch")

 

(defun my-bs--get-modification-time-string (_start-buffer _all-buffers)

  "Return last modified time of file"

  (let ((file (buffer-file-name)))

    (if (and file (listp (visited-file-modtime)))

      (if (eq (car (visited-file-modtime)) -1)

        (string)

        (format-time-string "%Y-%m-%d %H:%M:%S" (visited-file-modtime)))

      (string))))

 

(setq bs-attributes-list

  '((""       1   1 left  bs--get-marked-string)

    ("M"      1   1 left  bs--get-modified-string)

    ("R"      2   2 left  bs--get-readonly-string)

    ("Buffer" 50 50 left  bs--get-name)

    (""       2   2 left  "  ")

    ("Size"   8   8 right bs--get-size-string)

    (""       2   2 left  "  ")

    ("Last Modified"   19   19 left my-bs--get-modification-time-string)

    (""       2   2 left  "  ")

    ("Mode"   20 20 left bs--get-mode-name)

    (""       2   2 left  "  ")

    ("File"   20 20 left  bs--get-file-name)))

 

;; 특정 문자열 강조

(setq bs-mode-font-lock-keywords

  (list

    ;; dev server

    '("61.222.123.2" 0 font-lock-function-name-face)

    ;; prd server

    '("219.212.111.94" 0 font-lock-keyword-face)

    ;;'("emacs" 0 font-lock-function-name-face)

    ;;'("scratch" 0 font-lock-keyword-face)

    ;;'("emacs" 0 font-lock-comment-face)

    ))


;==============================================================================

;; 비주얼 북마크

;; (필요 : https://github.com/joodland/bm)

;==============================================================================

 

(add-to-list 'load-path "~/my-lisp")

 

(require 'bm)

 

;; 모든 버퍼의 북마크로 이동한다

(setq bm-cycle-all-buffers t)

 

;; M$ Visual Studio key setup.

(global-set-key (kbd "<C-f2>") 'bm-toggle)

(global-set-key (kbd "<f2>")   'bm-next)

(global-set-key (kbd "<S-f2>") 'bm-previous)

 

(defun left-margin-mouse-get-line-at-click ()

  (save-excursion

    (let ((click-y (cdr (cdr (mouse-position))))

        (line-move-visual-store line-move-visual))

      (setq line-move-visual t)

      (goto-char (window-start))

      (next-line (1- click-y))

      (setq line-move-visual line-move-visual-store)

      ;; If you are using tabbar substitute the next line with

      ;; (line-number-at-pos))))

      (1+ (line-number-at-pos)))))

 

(defun left-margin-mouse-goto-line-at-click ()

  (interactive)

  (goto-line (left-margin-mouse-get-line-at-click)))

 

(defun left-margin-mouse-toggle-boomark ()

  (interactive)

  (left-margin-mouse-goto-line-at-click)

  (bm-toggle))

 

;; 라인넘버 표시줄을 이용해 북마크한다.

(global-set-key (kbd "<left-margin> <down-mouse-1>") 'left-margin-mouse-goto-line-at-click)

(global-set-key (kbd "<left-margin> <mouse-1>") 'bm-toggle)


;; =============================================================================

;; 패키지 시스템(MELPA)

;; =============================================================================


(when (>= emacs-major-version 24)

  (require 'package)

  (package-initialize)

  (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t))



;; ===========================================================================

;; NeoTree Setting     ;; 패키지 시스템 설정후 네오트리 다운로드

;; ===========================================================================

(add-to-list 'load-path "~/.emacs.d/elpa/neotree-20161228.1739/")

(require 'neotree)

 

;; 아이콘 사용안함

(setq neo-theme 'ascii)

 

;; 폭을 40으로 지정

(setq neo-window-width 30)


 

(define-key global-map (kbd "C-x t") 'neotree-toggle)


;; =============================================================================

;; auto-complete  ;; 패키지 시스템 설정후 오토 컴플릿트 다운로드

;; =============================================================================


(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20150408.1132/")


(require 'auto-complete)

(require 'auto-complete-config)


(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20161029.643/dict")


(setq ac-comphist-file  "~/.emacs.d/elpa/auto-complete-20161029.643/ac-comphist.dat")


;; 자동완성 활성화

(global-auto-complete-mode t)


;; 자동완성 목록만 표시

(setq ac-expand-on-auto-complete nil)


;; TAB 키 누르면 자동완성 시작

(ac-set-trigger-key "TAB")


;; 5글자 입력시 자동완성 시작

(setq ac-auto-start 5)


;; 자동완성 후보목록

(setq ac-auto-show-menu t)          ;; 목록 표시함

;; (setq ac-auto-show-menu nil)     ;; 목록 표시않함

;; (setq ac-auto-show-menu 0.2)     ;; 0.2 초 후 목록 표시함


(setq ac-menu-height 10)            ;; 10 lines


;; 대소문자

;; (setq ac-ignore-case t)          ;; 구분않함

(setq ac-ignore-case 'smart)      ;; 입력값에 대문자가 있을 경우에만 구분

;; (setq ac-ignore-case nil)        ;; 항상 구분


(set-face-foreground 'ac-candidate-face "blue4")

(set-face-background 'ac-candidate-face "DodgerBlue1")


(set-face-foreground 'ac-selection-face "white")

(set-face-background 'ac-selection-face "steelblue")


(set-face-foreground 'ac-completion-face "white")

(set-face-background 'ac-completion-face "black")


;==============================================================================

;; AUTO COMPLETE CLANG

;; 패키지 시스템(MELPA) 을 이용해 설치한다.

;==============================================================================


(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-clang-20140409.52/")


(require 'auto-complete-clang)


(defcustom mycustom-system-include-paths '("./include/" "/opt/local/include" "/usr/include" )

  "This is a list of include paths that are used by the clang auto completion."

  :group 'mycustom

  :type '(repeat directory)

  )


(setq clang-completion-suppress-error 't)


(setq ac-clang-flags

      (mapcar (lambda (item)(concat "-I" item))

              (append mycustom-system-include-paths)))

;; =============================================================================

;; yasnippet   ;; 다운로드후 설정

;; =============================================================================


(add-to-list 'load-path "~/.emacs.d/elpa/yasnippet-20161221.1953/")


(require 'yasnippet)


(setq yas/root-directory "~/.emacs.d/elpa/yasnippet-20161221.1953/snippets")


;; yasnippet 활성화

(yas-global-mode 1)


;; =============================================================================

;; cscope     cscope 설치후  cscope-indexer 설치후 MELPA를 이용하여 xcscope설치한다.

;; =============================================================================

(require 'xcscope)


;; 이맥스가 cscope 를 인식하지 못하면 아래 내용을 추가해준다.

;; (setq cscope-program "/usr/local/bin/cscope.exe")


(cscope-setup)


;; =============================================================================

;; autopair

;; (필요 : MELPA, autopair)

;; =============================================================================


(require 'autopair)


;; autopair 활성화

(autopair-global-mode)



;; source - header 간 이동

;;(add-hook 'c-mode-common-hook

;;  (lambda()

;;    (local-set-key  (kbd "C-c o") 'ff-find-other-file)))


;==============================================================================

;; 윈도우 위치 & 사이즈 설정(GUI 버전)

;==============================================================================

(toggle-frame-maximized)


;; =============================================================================

;; zenburn-theme

;; (필요 : MELPA, zenburn-theme)

;; =============================================================================


(require 'zenburn-theme)


(load-theme 'zenburn t)


;;(Set-face-attribute 'region nil :background "#666")

(set-face-attribute 'region nil :background "#4169e1")

(set-face-attribute 'isearch nil :background "#4169e1")

(set-face-background 'hl-line "MidnightBlue")





(add-hook 'objc-mode-hook 'my-objc-mode-hook)


(defun my-objc-mode-hook()

  "My Objc customisations."

  (setq ff-search-directories '(".")

ff-other-file-alist '(("\\.m$" (".h"))

     ("\\.h$" (".m"))))

  (local-set-key (kbd "C-c f") 'ff-find-other-file))



;; =============================================================================

;; 영역 들여쓰기

;; =============================================================================


(defun my-indent-block()

  (interactive)

  (if mark-active

      (my-shift-region tab-width)

    (if (minibuffer-selected-window)

(minibuffer-complete)

      (insert-tab))))


(defun my-unindent-block()

  (interactive)

  (if mark-active

      (my-shift-region (- tab-width))

    (message "do nothing for <backtab> key.")))


(defun my-shift-region(numcols)

  "shift selected region"

  (my-make-region-as-full-line)

  (if mark-active

      (save-excursion

(indent-rigidly (region-beginning) (region-end) numcols)

(setq deactivate-mark nil))))

(defun my-make-region-as-full-line()

  "expand the region to the beginning and end of the area selected"

  (when mark-active

    (if (< (point) (mark))

(when (not(bolp))

 (beginning-of-line)

 (exchange-point-and-mark)

 (end-of-line)))

    (if (< (mark) (point))

(when (not(eolp))

 (end-of-line)

 (exchange-point-and-mark)

 (beginning-of-line)))))

(define-key global-map (kbd "<tab>") 'my-indent-block)

(define-key global-map (kbd "<backtab>") 'my-unindent-block)    ;;백탭 (쉐프트 탭)


;;파일 찾기


(define-key global-map (kbd "C-c f") 'find-name-dired)



'리눅스(ubuntu) > Emacs 관련' 카테고리의 다른 글

이맥스 관련 자료 모음  (0) 2017.01.08
관련 사이트  (0) 2017.01.08
gtags 리눅스상에서 설치  (0) 2017.01.06
이멕스 단축키  (0) 2017.01.02
이멕스 초기 설정하기  (0) 2017.01.02

커서이동

Ctrl f, b, n, p (화살표와 동일)
Ctrl v, Alt v (PgUp, PgDn)
Ctrl a, Ctrl e (Home, End)
Alt f, b (단어단위로 앞뒤이동)
Alt a, e (문단 앞, 뒤로 이동)
Alt <, > (파일의 처음, 끝으로 이동)
Alt r (커서를 페이지의 처음,끝,가운데로 이동)
Ctrl l (커서가 포함된 줄을 화면 처음, 끝, 가운데로 이동)
Alt g - Alt g (원하는 줄로 이동)

Ctrl-x LeftArrow 전페이지  커서로 이동

Ctrl-x RightArrow 다음페이지  커서로 이동

C-M-f    문법에 맞게 앞으로 이동

C-M-b    문법에 맞게 뒤로 이동

정렬

Ctrl-c Ctrl-q 현재 선택된 코딩스타일 적용


삽입
Ctrl o (빈줄 삽입, 커서 제자리)
Ctrl j (빈줄 삽입, 커서 아래로)
Ctrl x - i (파일 삽입)
Ctrl y (kill한 내용 삽입)


삭제
Ctrl d (커서에있는 글자삭제)
BackSpace (커서 앞에있는 글자삭제)
Alt d (커서에 있는 단어삭제)
Alt BackSpace (커서 앞에있는 단어삭제)
Ctrl k (커서부터 줄끝까지 삭제)
Ctrl w (선택영역 kill)

Ctrl-Shift-backspace    한 라인 삭제


영역
Ctrl Space (영역선택시작, 종료)
Ctrl x - Ctrl x (선택영역 시작지점 변경)
Ctrl x - h (전체선택)
Alt w (복사와 비슷)
Ctrl w (잘라내기와 비슷)
Ctrl y (붙여넣기와 비슷)


검색
Ctrl s (아래로검색)  이후  Ctrl-w 누루면 커서위 단어 입력
Ctrl r (위로검색)
Ctrl % (치환)
Alt u (단어 대문자로 변경)
Alt l (단어 소문자로 변경)
Alt c (단어중 맨 앞글자만 대문자로변경)
Ctrl x - Ctrl t (윗줄과 내용을 바꿈)
Alt t (앞단어와 내용을 바꿈)
Ctrl t (커서가 줄선두에 있을때 윗줄로 글자보냄)


Dired 모드 (디렉토리 모드)
f (파일 열기, 없으면 생성)
v (파일 열기, 읽기전용)
D (파일 삭제)
g (디렉토리 목록갱신)
R (파일 이름 변경)
C (파일 복사)
Alt x - make-directory - Enter (디렉토리 생성)
+ (디렉토리 생성)

Ctrl x - d (dired 모드 진입)
Alt x - dired - Enter (dired 모드 진입)


인코딩
Ctrl x - Enter - r (인코딩 보는방식 변경)
Ctrl x - Enter - f (인코딩 저장방식 변경)
(팁:미니버퍼에서 tab 누르면 목록 나옴)
(euc-kr, cp949, utf-8, utf-16-le 등..)
Ctrl \ (한글, 영어 변경)
leftShift Space (한글, 영어 입력방식 변경)
F9 (한글이나 자음등을 한자, 특수문자등으로 변환)


파일
Ctrl x - Ctrl f (파일열기, 없을시 새로생성)
Ctrl x - Ctrl s (파일 저장)
Ctrl x - Ctrl w (다른이름으로 저장)
Ctrl x - k (버퍼 닫기)
Ctrl x - b (버퍼 이동, 화살표 위아래키로 목록열람가능)
Ctrl x - Ctrl b (새 프레임을 열고 버퍼 목록 표시)


프레임(스프릿)
Ctrl x - 2 (상하로 프레임분리)
Ctrl x - 3 (좌우로 프레임분리)
Ctrl x - 1 (현제프레임만 남기도 나머지 없애기)
Ctrl x - 0 (현제프레임을 없애고 하나로 합치기)
Ctrl x - ^ (현제프레임 수직크기 키우기, 보통 Ctrl - u 와 함께씀)
Ctrl x - {, } (현제프레임 좌우크기 조절)
Ctrl + (프레임들 크기 일정하게)
Ctrl x - o (프레임간 이동)


기타
Ctrl g (명령취소)
Ctrl / (실행취소)
Ctrl x - u (실행취소)
Ctrl u - 숫자 (반복작업)
Alt ! (간단한 쉘명령)
Alt - shell - Enter (쉘 불러오기)
Alt x - hexl-mode - Enter (헥사모드)
Ctrl x - Enter - r - cp437 (nfo 파일볼때)


(디렉토리 모드 상에서)

RET            선택파일 열기

C                복사하기

R                파일 이름 바꾸기

D                파일 지우기

+                디렉토리 생성하기

m                마크하기

d                삭제 대상으로 마크하기

R                마크한 파일 모두 이동

u                마크해제

x                삭제 대상으로 마크한 파일 일괄 삭제

U                마크된 모든 파일의 마크해제

g                새로고침

^                상위 디렉토리로 이동


(cscope 단축키)

키 입력 설명
C-c s s Find symbol.
C-c s d Find global definition.
C-c s g Find global definition (alternate binding).
C-c s G Find global definition without prompting.
C-c s c Find functions calling a function.
C-c s C Find called functions (list functions called from a function).
C-c s t Find text string.
C-c s e Find egrep pattern.
C-c s f Find a file.
C-c s i

Find files #including a file.


< 설정된 개인 단축키>

M-t    파일찾기 (Helm 을 이용)

C-x t    네오트리열기

C-tab    버퍼 선택 툴

f12        최근 열었던 파일보기

C-c C-r    최근 열었던 파일찾기 (tap키를 이용하여 자동완성)

C-*,&       현재 커서에 있는 심볼 찾기 (위,아래로)

M-m        다음의 문자로 이동

M-M

C-@ (Ctrl-Shift-2)  선택영역 확장

C-c h o     문자열이용해 코드찾기

C-h SPC    마크된 모든곳 보기

M-s        스피드바 열기

C-c g a    현재 함수의 모든 테그 보기

M-.            함수 정의 보여주고 고른후 이동

M-,            위 커맨드 후 실행하면 전으로 이동 (스텍 팝)


'리눅스(ubuntu) > Emacs 관련' 카테고리의 다른 글

이맥스 관련 자료 모음  (0) 2017.01.08
관련 사이트  (0) 2017.01.08
gtags 리눅스상에서 설치  (0) 2017.01.06
~/.emacs.el 설정 내용  (0) 2017.01.03
이멕스 초기 설정하기  (0) 2017.01.02

<화면설정>

화면 맨 위에 메뉴(menu)가 보이고, 그 밑에 툴바(toolbar), 오른쪽에 스크롤바(scroll bar)가 보입니다.

텍스트가 표시된 부분이 윈도우(window)이고, 맨 밑에 상태표시줄(mode-line)이 보입니다.

 

맨 아래 빈칸 한줄이 표시되어 있는데 반향영역(echo area) 또는 미니버퍼(mini buffer)라고 불리웁니다.

나중에는 상당히 자주보게 되는 곳입니다.

 

화면에 링크중 Emacs Tutorial 은 읽어보시길 권장합니다.

Emacs 관련 문서중 보기 드믄 한글 번역 문서입니다.(-.-)

 

 

한없이 썰렁한 화면을 정리해봅니다.

 

폰트가 맘에 않들면 아래와 같이 합니다.

메뉴중 Options > Set Default Font 를 선택하면 폰트를 고를 수 있습니다.

 

툴바가 않이쁘면 아래와 같이 합니다.

메뉴중 Options > Show/Hide > Tool-bar

 

옵션정보를 저장하지 않으면 이맥스를 재실행 했을 때 다시 폰트가 디폴트로 바뀝니다.

그래서 메뉴중 Options > Save Option 를 선택해서 옵션정보를 저장해 줍니다.

 

마우스를 사용할 수 없는 경우는 F10 을 누르면 메뉴를 활성화 할 수 있습니다.

 

옵션을 저장하면 HOME 디렉토리에 .emacs 이 생성된 것을 볼 수 있습니다.

(유닉스 계열에서는 ~/.emacs 이고 MS 윈도우 에서는 HOME 으로 설정한 디렉토리)

 

이것이 설정파일입니다. 자주 열게되는 파일입니다.

.emacs 을 .emacs.el 로 파일명을 바꾸어줘도 인식합니다.

*.el 파일은 *.elc 로 컴파일하여 속도를 향상시킬 수 있으므로 .emacs.el 로 이름을 바꿔주는게 좋습니다.

 

자신이 잘 사용하는 에디터를 이용해 설정파일에 아래 내용을 추가해 줍니다.

(이맥스가 좋다고는 하지만 쓸 수 없으면 소용이 없으니 일단은 자신이 잘 쓸 수 있는 에디터를 이용해 수정합니다.)

 

;; 튜토리얼 메시지 없애기
(setq inhibit-startup-message t)


설정파일에 아래 내용을 추가해서 커서모양을 변경할 수 있습니다.

 

;; 커서 모양
;; (setq-default cursor-type 'box)
(setq-default cursor-type 'bar)
;; (setq-default cursor-type 'hbar)

 

이맥스를 재실행 하면 아래와 같이 변경됩니다.



이제 이맥스를 이용해 설정파일(.emacs.el) 을 열어봅니다.

우선은 메뉴를 이용해 열어봅니다.

(이맥스에 적응하면 메뉴는 별로 쓸 일이 없지만 지금은 메뉴를 이용합니다.)




메뉴 단축키 중 표시해 놓은 단축키는 자주 쓰이는 단축키 이기에 외워두면 좋습니다.

 

아래 내용을 설정파일에 추가합니다.

 

;; 커서 라인 표시하기
(global-hl-line-mode 1)

 

;; 화면 왼쪽에 라인넘버 표시
(global-linum-mode t)

 

;; 선택 영역 표시
(transient-mark-mode t)


;;Shift select 활성화

(setq shift-select-mode t)

 


붙여 넣은 내용을 영역으로 지정해줍니다.

일단은 마우스를 이용해 영역을 지정합니다.

영역 선택 후 알트-x (M-x) 입력 후 eval‍-region 을 입력후 엔터(RET) 를 입력해 줍니다.

이 방식으로 이맥스를 재실행하지 않더라도 설정파일에 추가한 내용을 적용시킬 수 있습니다.



출처: http://cafe.naver.com/gnuemacs/5


'리눅스(ubuntu) > Emacs 관련' 카테고리의 다른 글

이맥스 관련 자료 모음  (0) 2017.01.08
관련 사이트  (0) 2017.01.08
gtags 리눅스상에서 설치  (0) 2017.01.06
~/.emacs.el 설정 내용  (0) 2017.01.03
이멕스 단축키  (0) 2017.01.02

+ Recent posts