Emacs의 가장 큰 차별점이라고 할 수 있는 emacs lisp를 활용한 버퍼 현실 조작에 필요한 내용을 정리해보았다.
사용자 함수 정의
- .emacs 파일에 아래와 같은 방법으로 사용자 함수를 정의할 수 있다.
(defun 함수명 () (interactive) 함수 내용 )
다음은 미니버퍼창에 간단히 메세지를 표시하는 예제이다.(defun my-func () (interactive) (message "hello") )
- 이렇게 정의한 함수는 언제든지 M-x를 누른 후, 함수명을 입력하여 실행할 수 있다.
- 그런데 사용자 함수를 .emacs 파일에 직접 정의할 경우, 함수 내부에서 한글 사용시 문제가 발생한다. 이 경우, <emacs 설치 경로>/site-lisp 위치에 외부 파일을 생성하고 이 파일에 사용자 함수를 정의한 뒤, 아래와 같이 .emacs 파일에서 이를 읽어들이면 문제가 생기지 않는다.
(load-library "외부 파일명")
==> [참고] UTF–8 한글 정상적으로 표시되도록 설정 방법 - Emacs 실행 중에 위의 외부 정의 파일을 수정했을 경우에, 수정 내용을 바로 반영하기 위해서는, M-x를 누른 후 load-file을 입력하고 해당 파일의 경로를 입력하면 된다.
버퍼 조작 관련 유용한 함수들
외부 프로그램에서 함수 실행
- emacsclient 실행시에 -e 인수를 사용하면 외부에서 내장 함수 혹은 사용자 함수를 실행할 수 있다.
emacsclientw.exe -e "emacs lisp 표현식"
- 윈도우 환경이라면, 아래와 같은 내용으로 배치파일을 작성하여 사용하는 것도 편리하다.
emacsclientw.exe -n -e "%1"
<테스트 환경> - OS : Windows 7 (32bit) - Emacs 버전 : Emacs 24.3 윈도우용
'1. 연구 모듈 > Emacs' 카테고리의 다른 글
[Emacs] 태그 입력을 간편화시켜주는 함수 정의 (0) | 2018.04.09 |
---|---|
[Emacs] 버퍼 조작 관련 유용한 함수들 (0) | 2017.09.19 |
[Emacs] 버퍼를 닫으면서 파일 삭제하기 (0) | 2017.08.05 |
[Emacs] Emacs에서 확장자에 특정 모드 연결하기 (0) | 2017.02.10 |
[Emacs] Emacs에서 clojure-mode 구버전 설치하기 (0) | 2017.02.09 |