[Emacs] 번역 기능을 추가해보자
현재 커서가 놓인 단어, 혹은 선택된 영역을 구글 번역기를 이용해 자동으로 한국어로 번역하는 기능을 만들어 보자. 여기서는 결과물을 브라우저로 본다는 것을 가정한다.
실제로 사용하기 위해 단축키 등록을 하는 편이 유용할 것 같다.
Google API를 잘 활용한다면 굳이 브라우저를 띄우지 않고 다른 버퍼를 띄워 거기다 결과를 표시하는 식으로 개선이 가능할지도 모르겠다.
이 코드를 응용해서 여러 용도로 사용이 가능하다. 예를 들어 코드의 특정 심볼을 레퍼런스 사이트에서 찾아본다던가, 특정 단어를 위키피디아에서 찾아본다던가 등등...
중요한 건 if 문 내부에 있는 영역 혹은 커서가 위치한 곳의 단어를 걸러내는 코드다. 이 부분은 잘 알아두면 여러가지 텍스트 프로세싱 영역에 사용할 수 있게 된다.
사족. Emacs를 잘 쓰려면 역시 Elisp을 잘 알아두는게 현명할 것 같다. -_-;;
(defun open-google-translate () "Translate current word using Google Translator" (interactive) (let (sel-word target-url) (setq sel-word (if (and transient-mark-mode mark-active) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol))) (setq sel-word (replace-regexp-in-string " " "%20" sel-word)) (setq target-url (concat "http://translate.google.com/#auto|ko|" sel-word)) (browse-url target-url)))어디선가 비슷한 기능이 소개되길래 구조를 거의 베끼긴 했지만 -_- 완벽하게 돌아간다는 보장은 없다. 대상 URL에서 보이듯이 원본 언어는 자동감지 하는 식으로 설정해 놨다.
실제로 사용하기 위해 단축키 등록을 하는 편이 유용할 것 같다.
(global-set-key (kbd "C-S-T") 'open-google-translate)이 코드를 실행시키고
Ctrl-Shift-T
를 누르면 웹브라우저가 뜨면서 번역 사이트에 해당하는 내용이 표시될 것이다.Google API를 잘 활용한다면 굳이 브라우저를 띄우지 않고 다른 버퍼를 띄워 거기다 결과를 표시하는 식으로 개선이 가능할지도 모르겠다.
이 코드를 응용해서 여러 용도로 사용이 가능하다. 예를 들어 코드의 특정 심볼을 레퍼런스 사이트에서 찾아본다던가, 특정 단어를 위키피디아에서 찾아본다던가 등등...
중요한 건 if 문 내부에 있는 영역 혹은 커서가 위치한 곳의 단어를 걸러내는 코드다. 이 부분은 잘 알아두면 여러가지 텍스트 프로세싱 영역에 사용할 수 있게 된다.
사족. Emacs를 잘 쓰려면 역시 Elisp을 잘 알아두는게 현명할 것 같다. -_-;;
댓글