(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을 잘 알아두는게 현명할 것 같다. -_-;;
0 comments:
댓글 쓰기