2013-11-14 3 views
0

주로 책, 기사 등 - 인문학을 읽는 동안 Emacs에서 사용하는 메모를 해시 태그로 지정합니다. Emacs가 입력 한 해시 태그 목록을 자동으로 작성할 수 있는지 알고 싶습니다 (아마도 별개의 파일로). 또한,이 가상 목록에서 읽는 Emacs는 해시 태그 입력을 시작할 때 증분 (또는 탭) 자동 완성을 제공 할 수 있습니다. 일관된 태깅을 위해이 기능이 필요합니다.Emacs hashtags (#tagsLikeThisOne) autocompletion

고맙습니다.

+0

http://orgmode.org/manual/Setting-tags.html –

+0

Thnx. 사실 org-mode를 사용합니다. 문제는 의제 파일에서만 태그를 구문 분석하거나 검색 할 수 있다는 것입니다. 전체 폴더를 일정 폴더로 지정하려고했습니다. 문제는 제가 수백 개의 파일을 가지고 있다는 것입니다. 모든 태그를 검색하려면 Agenda가 결과를 컴파일하는 데 5 분에서 10 분이 소요될 수 있습니다. 그리고 그것은 내 작업 흐름의 관점에서 받아 들여지지 않습니다. 반대로, Grep는 즉시 답을 나에게 알려줍니다. –

답변

0

Exuberant ctags을 사용하여 TAGS 파일을 생성 할 수 있습니다. 메모는 조직 모드에있는 경우 예를 들어, 당신은이 작업을 수행 할 수 있습니다

이제
(require 'org-ctags) 
(setq org-ctags-path-to-ctags "/path/to/ctags") 

;; Regular expression for the hashtags. 
;; Nnote that this would remove the existing definition and effectively disable 
;; the standard use of org-ctags which is to tag <<links>>. If you want to preserve old 
;; behavior you need to combine the two regexes. 
(setq org-ctags-tag-regexp "/(#[^+]+)/\\1/d,definition/") 

(org-ctags-create-tags "directory") 

하면 자동 완성이 주장하는 태그 검색 org-ctags-find-tag-interactive를 사용할 수 있습니다

(add-hook 'org-mode-hook 
    (lambda() 
     (define-key org-mode-map "\C-co" 'org-ctags-find-tag-interactive))) 

을하지만 투구 완료를 선호 , 그래서 나는 단지 M-x helm-etags-select을한다. 또한 org-ctags를 무시하고 태그를 직접 구축 할 수 있습니다 :

ctags --langdef=orgmode --langmap=orgmode:.org 
     --regex-orgmode="/(#[^+]+)/\1/d,definition/" 
     -f /your/path/TAGS -e -R /your/path/*.org 

을 (또는 당신을 위해 수행하는 편의 이맥스 함수를 만듭니다).

+0

감사합니다. 이것은 정말 좋은 해결책이 될 수 있습니다. 최대 포인트와 라이트 하나. 내가 볼 수있는 유일한 문제는 ctags 버전이 태그 목록 파일의 자동 업데이트를 허용하지 않는다는 것입니다. 자동 업데이트를위한 몇 가지 해결책을 제안하십시오 : 존재하지 않는 태그를 추가 할 때 태그 파일에 추가하고 싶습니다. 그렇지 않으면 자동 완성 동작을 원합니다. –

+0

필요에 따라 TAGS 파일을 다시 작성하는 것이 org-ctags에 의해 실제로 구현되었다고 생각합니다. 'M-x customize-variable''org-ctags-open-link-functions'를보고 원하는 동작을 미세 조정하십시오. –

0

다른 방법 : 노트를 참고할 수 있습니다. Bookmark+을 사용하면 tag bookmarks을 사용할 수 있습니다.

북마크에 원하는만큼의 태그를 사용할 수 있으며 태그는 임의의 문자열 일 수 있습니다 (Lisp 값을 연결할 수도 있음). 북마크 (태그가 지정되었는지 여부)는 기본적으로 북마크 된 텍스트에 표시되지 않습니다. 그러나 (Bookmark +를 사용하면) 여러 가지 방법으로 강조 표시 할 수 있습니다.

+0

Thnx. 정확히 내가 필요한 것 같다. 나는 그것을 시도 할 것이다. –