BLOG main image
분류 전체보기 (42)
잡담 (6)
활용 (17)
language (3)
project (14)
design (2)
자료정리 (0)
결혼 준비 (0)
sarl pyver
sarl pyver
geometry dash apk zippy
geometry dash apk zippy
geometry dash apk full
geometry dash apk full
cheap christian louboutin
cheap christian louboutin
herehoju.com
herehoju.com
229,007 Visitors up to today!
Today 8 hit, Yesterday 212 hit
daisy rss
tistory 티스토리 가입하기!
2012.03.22 19:51
나는 org 모드에 거의 모든 내용을 기록해 놓는다. 그리고 아주 자주 검색하기 때문에 지금 프레임이나 창에 영향 받지 않고 검색한 다음에 바로 닫고 싶었다. (뭐 org 에서 검색 기능을 이미 제공할 것 같기도 하지만..)
그래서 새프레임을 열고 함수를 호출하는 기능이 필요하다.
 
일단 쉽게 생각할 수 있는 방법은 아래와 같을 것이다. 

(defun foo ()
  (interactive)
  (make-frame)
  (next-frame)
  (do some thing...)
)
프레임을 만들고 프레임을 옮기고 뭔가 동작하기. 그런데 그게 쉽지 않다. 커서는 저 함수가 끝날 때까지 원래 프레임에 계속 머무른다.
 
방법은 뭘까? 좀 복잡해질지도 모르지만 훅을 이용하면 된다.
make-frame 에는 after-make-frame-functions 라는 훅이 존재한다. 해당 훅에 프레임을 옮긴 후 해야 할 일을 기술해 놓으면 된다.


(defun make-frame-and-org-find ()
  (interactive)
  (add-hook 'after-make-frame-functions 'finish-make-frame-and-find-org)
  (make-frame)
)

(defun finish-make-frame-and-find-org (frame)
  (remove-hook 'after-make-frame-functions 'finish-make-frame-and-find-org)
  (select-frame frame)
  (let ((query (read-from-minibuffer "org-string : " (concat (thing-at-point 'symbol) "") nil nil))) 
    (find-grep 
     (concat "find ~/org/job -type f -name *.org -print0 | xargs -0 -e grep -nH -e " query)))
)
Name
Password
Homepage
Secret

티스토리 툴바