Emacs Tip

현재 buffer에 file path를 추가

내장 함수로 있을 것 같은데, 찾아봐도 없다.

  ;; insert-path macro
  (defun insert-path (file)
    "Insert a path into the buffer with completion"
    (interactive "GPath: ")
    (insert (expand-file-name file)))
  
  (global-set-key (kbd "C-x C-i") 'insert-path)

C-s C-w 커서 아래에 있는 단어 검색

info 파일을 local browse하기

C-h i에 prefix를 붙이면 파일 지정이 가능하다

C-u C-h i common/cedet.info

Emacs화면을 full screen화면으로 보기

- EmacsWiki FullScreen.

Windows, X, MacOS에 따라 동작방식이 다르다. maxframe.el을 이용해서 Meta-RET로 toggle 방식으로 처리가 되도록 변경해서 사용했다

;; maxframe.el [2009-10-22]
(require 'maxframe)
;(add-hook 'window-setup-hook 'maximize-frame t)

(defvar my-fullscreen-p t "Check if fullscreen is on or off")

(defun my-toggle-fullscreen ()
  (interactive)
  (setq my-fullscreen-p (not my-fullscreen-p))
  (if my-fullscreen-p
      (restore-frame)
    (maximize-frame)))

(global-set-key (kbd "M-RET") 'my-toggle-fullscreen)

Emacs Recent file list 관리

;; recentf stuff
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-items 25)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)

\C-x \C-rfind-file-read-only이 default keymapping으로 정의되어 있다. 이를 최근 열린 파일을 여는 명령어로 대치하여 사용하자.

Emacs lisp expression의 수행 결과를 buffer에 insert할 때

  • M-:: eval-expression
  • C-X C-e: eval-last-sexp
  • C-M-x: eval-buffer

명령어에 C-u prefix를 붙이면 수행결과가 현재 current buffer에 insert된다. 문서내에 현재 수행 중인 emacs의 버젼 명을 기록하고 싶을 때 C-u M-x version 하면 된다.

dired mode에서 directory의 파일을 최근 편집된 순으로 보기

Dired-x 모듈을 dired 모드 쓸 때 로딩하고, 원하는 directory에 .dired 파일을 만들어서 local variable들을 설정하여 사용한다. 홈페이지의 블로깅 article들을 최근 변경한 순서로 보기 위한 용도로 세팅하여 사용 중이다.

(add-hook 'dired-load-hook
          (lambda ()
          (load "dired-x")
))

.dired 파일 내용

    Local Variables:
    dired-actual-switches: "-lat"
    dired-omit-mode: t
    End:

현재 창에 보이는 font 크기 조절하기(Emacs 23)

Presentation 중에서 현재 보이는 창의 글자 크기를 조절할때 유용

EmacsW32에서 bell 소리 없애기

X 상에서야 xset b off 하면 나오는 삐삐 거리는 벨 소리를 없앨 수가 있지만, Win32상의 emacs에서는 없애는 법이 없나 찾아보았다. 가장 손쉽게 할 수 있는 방법이 (setq visible-bell t) 로 하는 방법인데 화면 frame이 번쩍번쩍 거려서 보기가 싫다.

이런 용도로는 set-message-beep를 사용한다.

(set-message-beep 'silent)

모드별로 font 설정 바꾸기

Org 모드에서는 fixed with font인 NanumGodicCoding을 사용하는데, mail에는 가변폭 폰트를 사용하고 싶다. variable-picth-mode 값을 세팅하면 된다(Emacs 23에서만 가능).

(setq message-mode-hook
     (quote (
     (lambda () (variable-pitch-mode nil)) 
     )))
Written on September 18, 2009