2011년 11월 10일 목요일

[Emacs] Smart Beginning of Line

이클립스 등에서는 Home키를 누르면 커서를 해당 라인의 제일 앞으로 이동하게 되는데, 만약 라인이 들여쓰기가 되어있다면 들여쓰기 된 이후의 위치로 이동하게 된다. 굉장히 단순한 기능이지만 편할 때가 많은데 Emacs의 기본 라인 앞으로 이동하기 키(C-a 등)는 이런 기능이 지원되지 않는다. 그렇다면 이 기능을 만들어 보면 된다. (Emacs 다운 생각 -_-)

다음 코드를 초기화 스크립트에 넣어보자.

(defun smart-beginning-of-line ()
  "Move point to first non-whitespace character or beginning-of-line."
  (interactive)
  (let ((oldpos (point)))
    (back-to-indentation)
    (and (= oldpos (point))
         (beginning-of-line))))

(global-set-key (kbd "C-a") 'smart-beginning-of-line)
(global-set-key [home] 'smart-beginning-of-line)

C-a 키 혹은 Home키를 누르면 라인의 제일 앞으로 이동하게 되는데 들여쓰기가 있으면 들여쓰기를 넘어서 첫 문자가 있는 곳으로 이동한다. 이 상태에서 한번 더 C-a나 Home키를 누르면 제일 앞으로 커서를 이동시킨다.

이렇게 간단한 기능이 이렇게 편할 줄은 몰랐다. :-D

참고 원문) http://stackoverflow.com/questions/145291/smart-home-in-emacs

댓글 2개 :

익명 :

감사합니다.
정말 고마운 기능이네요. :-)

Darren :

좋네요.
좋은 정보감사히 봤습니다.