2010년 12월 16일 목요일

emacs, python 에서 id-utils 사용




간단히 적어둔다.
리눅스환경에서만 테스트 됐음. 윈도에서는 map 파일을 어떻게 찾을지 모르겠네. 매번 실행시 인자로 주면 되긴 하겠는데...

  1. 파이썬스캐너가 없어서 .py 는 기본설정으로 실행시 ignore 되버림.
  2. /usr/share/misc/id-lang.map 를 열어서 *.py 를 text 로 취급하도록 수정. man mkid 참고.
  3. 이제 mkid 가 python 소스들을 읽고 ID 파일을 남기게 되었다.
  4. emacs 쪽에서 idutils.el 세팅 이글 참고
  5. 익숙한 키인 M-. 에 바인딩했다. ctags 는 버리고 gid 로 대체해보려는건데.. 흠. 바보짓일수도?
    (defun use-idutils-as-tagging-tool ()
      (local-set-key "\M-." 'gid))
    (add-hook 'python-mode-hook 'use-idutils-as-tagging-tool)
  6. 이제 M-. 으로 심볼 찾아 돌아다니는게 가능해졌는데 소스 수정후 mkid 를 불러줘야 하는 불편함이 있다.
  7. mkid 를 적당한때 부르는 방법이야 많겠지만 내가 당장 원하는 모양은 원하는 시점에 키 몇개 누르면 mkid 가 실행되는것.
  8. anything 을 이용해서 프로젝트관리를 하는 편인데 이중에 mkid 실행하기 메뉴를 추가해줬다. 저 함수는 더 깔끔하게 짜는 방법이 있을거 같은데 당장은 저코드만 떠오르네.
    (defun yoonkn-anything-projects-mkid (name)
      (let ((curdir default-directory)
            (prjdir (yoonkn-anything-projects-get-dir name)))
        (unwind-protect
            (progn
             (cd prjdir)
             (call-process "mkid"))
          (cd curdir))))
    (defvar anything-my-source-yoonkn-projects
      '((name . "내 프로젝트들")
        (candidates . yoonkn-anything-projects-candidates)
        (action . (("dired 실행하기" . yoonkn-anything-projects-dired)
                   ("psvn 실행하기"  . yoonkn-anything-projects-psvn)
                   ("mkid 실행하기"  . yoonkn-anything-projects-mkid)))))
  9. 이제 mkid 돌리는것도 간단히 실행가능. 우왕ㅋ굳ㅋ



추가. 2010/12/17
집에서 windows7 환경에 idutils 를 돌려보니 에러나더군. 씁. gnu global 이 text 도 지원하면 좋을텐데 누군가 메일링리스트에 글을 남긴건 봤는데 흐지부지 된듯 하더군.

댓글 없음: