2013년 2월 22일 금요일

[Emacs] Helm

이번에 소개할 확장은 Helm(투구? 헬멧? 하이바? -_-;;;;) 이다. 간략하게 뭐라고 해야 할지 난감한 확장이지만, 일단 Anything과 비슷한 확장이다. 그도 그럴 것이 Anything에서 새끼친(fork) 프로젝트이기 때문이다.


기능면으로 Anything과 동일하게 '선택과 완성 기능'에 중점을 두고 있는 확장이며 프레임워크다. 예를 들자면 파일을 연다거나 버퍼를 옮긴다거나 등등 에서 활용이 가능하다.

설치는 간단하게 package.el을 이용해서 MELPA나 Marmalade의 패키지목록을 통해 하는 것이 간단하다. 하지만 Emacs 23 이하 버전에서 ELPA를 별도로 이용하지 않는다면 위 github 사이트에서 clone 하거나 다운로드 받아서 설치하면 된다.

설정이라고 할 것도 별로 없는 것 같다. 아래는 개인적으로 사용하는 Helm의 가장 기본적인 설정이다.
(require 'helm-config)
(setq helm-idle-delay 0.1)
(setq helm-input-idle-delay 0.1)

(global-set-key (kbd "M-t") 'helm-for-files)
동작 딜레이만 설정해주고 나머지는 기본 설정(helm-config)의 것을 그대로 사용하기로 했다. (이런것도 Anything과 완전 판박이...)

단축키로 M-t (Alt-T 혹은 Command-T)를 배정해 뒀는데 이렇게들 많이 쓰는가 보다. 특정 에디터에서 비슷한 기능을 하는 단축키가 이것이라나 뭐라나...

어쨌든 M-t 키를 누르면 프레임이 분할되면서 파일에 대한 다양한 정보가 나타난다.
버퍼들도 보이고 최근 열었던 파일이라던가(Recentf), 북마크를 비롯해 현재 디렉토리의 파일 등등이 표시되고 있다.

하단에서는 패턴을 입력 할 수 있다. 원하는 파일 이름이나 버퍼명을 입력하면 일치하는 것만 나타난다. 혹은 C-n, C-p 키를 이용해 선택막대를 이동하여 선택하는 것도 가능하다.

선택된 상태에서 Enter를 누르면 해당 파일이 열리거나 해당 버퍼로 전환된다.

사실 이 정도 만으로 보면 Emacs에서 파일을 여는 명령인 find-file 을 대체하는 수준으로 밖에는 안보인다. 하지만 Anything도 그랬듯이 Helm도 플러그인을 이용해 기능을 추가 할 수 있도록 만들어져 있다. (소개에서 괜히 Framework 라고 하는게 아니다. ^_^;)

관련링크: [Emacs] Projectile 및 Helm 확장

댓글 없음 :