레이블이 emacs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 emacs인 게시물을 표시합니다. 모든 게시물 표시

2008년 8월 7일 목요일

emacs 에서 코드 컴플리트는 아쉽지만 alt+/

vi 에서 ctrl+n과 완전 동일하게 비슷한 word로 확 바꿔버리는 기능은
emacs에서 alt+/

windows RAD툴에서 처럼 팝업으로 .. 그리고 구조체 접근 같은 경우 . -> 등을 타이핑 하면
멤버가 쫙 나오는 그런거..

찾고 싶다..

emacs 에서 matching brace

(define-key global-map "\M-]" 'matching-brace-or-self-insert)
(defun matching-brace-or-self-insert ()
(interactive)
(let ((char (char-after)))
(cond ((member char (mapcar* #'identity "[({"))
(forward-sexp 1)
(backward-char 1))
((member char (mapcar* #'identity "])}"))
(forward-char 1)
(backward-sexp 1))
(t (call-interactively 'self-insert-command)))))

인터넷에서 위에 내용을 .emacs에 추가 하면 된다는 글을 보았다.
하지만 안된다.

apt-get install cedet-common
을 설치 하고 나니 된다.

추가로
(load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el");
를 해야 한다.

cogre 버젼 어쩌구 에러가 초기 화면에 보인다면.
시냅틱 패키지 관리자에서 설치 해주면 된다.

이제 vim %와 같은 기능이 된다.
소스 분석 할때 { .... } ( .... ) 를 오고 가는 일은 정말 중요 하니까...

emacs 에서 Ctrl + TAB 으로 버퍼 전환 하기



원문 : http://www.emacswiki.org/cgi-bin/wiki/ControlTABbufferCycling

.emacs 파일에 아래의 내용을 추가 하면 된다.

;; Support functions for `stesla-rotate-buffers'. From the EmacsWiki.
 (defvar stesla-hated-buffers '("KILL" "*Apropos*" "*Completions*" "*grep*"
".newsrc-dribble" ".bbdb" "sent-mail" "*vc*"
"*Compile-Log*" "*Help*" "*Messages*"))
 (defvar stesla-hated-buffer-regexps '("^ " "*Buffer" "^\\*trace" "^\\*tramp"))
 (setq iswitchb-buffer-ignore (append stesla-hated-buffer-regexps  stesla-hated-buffers))
 (defmacro stesla-buffer-regexp-mapcar (regexp buffers)
"Find BUFFERS whose name matches REGEXP"
`(mapcar (lambda (this-buffer)
(if (string-match ,regexp (buffer-name this-buffer))
this-buffer))
,(if (symbolp buffers) (symbol-value buffers) buffers)))
 (defmacro stesla-hated-buffer-from-regexps (regexps)
"Generate a one-dimensional list of buffers that match REGEXPS"
(append
'(append)
(mapcar (lambda (regexp)
`(delete nil (stesla-buffer-regexp-mapcar ,regexp
(buffer-list))))
(if (symbolp regexps) (symbol-value regexps) regexps))))
 (defun stesla-delete-from-list (delete-these from-list)
"Delete DELETE-THESE from FROM-LIST."
(cond
((car delete-these)
(if (member (car delete-these) from-list)
(stesla-delete-from-list (cdr delete-these)
(delete (car delete-these) from-list))
(stesla-delete-from-list (cdr delete-these) from-list)))
(t from-list)))
 (defun stesla-hated-buffers ()
"List of buffers I never want to see."
(delete nil
(append
(mapcar 'get-buffer stesla-hated-buffers)
(stesla-hated-buffer-from-regexps stesla-hated-buffer-regexps))))
 ;; `stesla-rotate-buffers': Like `bury-buffer' but with the capability to
;; exclude certain specified buffers.
 (defun stesla-rotate-buffers (&optional n)
"Switch to the Nth next buffer. Negative arguments move backwards."
(interactive)
(unless n
(setq n 1))
(let ((my-buffer-list
(stesla-delete-from-list (stesla-hated-buffers)
(buffer-list (selected-frame)))))
(switch-to-buffer
(if (< n 0)
(nth (+ (length my-buffer-list) n)
my-buffer-list)
(bury-buffer)
(nth n my-buffer-list)))))
 ;; Windows-style C-TAB and C-M-TAB to switch buffers.
 (global-set-key (kbd "C-") 'stesla-rotate-buffers)
(global-set-key (kbd "C-M-") (lambda ()
(interactive)
(stesla-rotate-buffers -1)))
 ;; This is C-TAB and C-M-TAB for the Linux console.  This requires special
;; setup; namely, you need to load a keymap file with /usr/bin/loadkeys
;; containing the following lines:
;;
;; control keycode 15 = Macro
;; control alt keycode 15 = Pause
;;
;; If you actually -have- a key that generates the Macro or Pause keysyms, you
;; have a better keyboard than I. For me, this makes Emacs DWIW. Credit for
;; this hack goes to Alex Schroeder.
 (global-set-key (kbd "ESC [ M") 'stesla-rotate-buffers)
(global-set-key (kbd "ESC [ P") (lambda ()
(interactive)
(stesla-rotate-buffers -1)))

2008년 5월 12일 월요일

emacs 에 line number 를 왼쪽에 표시 하기











http://www.emacswiki.org/cgi-bin/wiki/setnu.el
http://www.emacswiki.org/cgi-bin/emacs/setnu+.el
위 사이트를 참고 하여 setnu.el , setnu+.el 파일을 다운로드 한다.

생성된 파일을 /usr/share/emacs/site-lisp/ 에 저장 한다.

.emacs파일에 아래의 내용을 추가한다.
(load-file "/usr/share/emacs/site-lisp/setnu+.el")

사용할때는 M-x setnu-mode