Откройте файл организационного режима emacs из исходного кода C++ и автоматически создайте элемент

Я работаю над проектом C++. Предположим, у меня есть следующая структура каталогов:

project/
project/src

И у меня есть следующие файлы:

project/ChangeLog
project/todo.org
project/src/foo.cpp

Я могу работать с исходным кодом C++ в foo.cpp, а затем добавить строку в файл ChangeLog только с C-x 4 a как эта страница описывает.

Как я могу добиться такой же функциональности с org-mode в файле todo.org. Я хотел бы сохранить список дел относительно исходного кода. Поэтому, если в foo.cpp мне нужно завершить функцию void Foo::bla(), я бы хотел, чтобы в todo.org была добавлена ​​запись, в которой упоминается эта функция и файл, в котором она находится, так же, как C-x 4 a делает для ChangeLog.

Я также хотел бы иметь обратную ссылку из файла org на файл foo.cpp, в котором находится задача.


person Alan Turing    schedule 07.06.2011    source источник
comment
Вы можете найти лучшую аудиторию в списке рассылки org-mode.   -  person Nemo    schedule 07.06.2011
comment
Спасибо @Nemo, я тоже попробую там и буду продолжать искать ответ (и опубликую здесь, как только найду).   -  person Alan Turing    schedule 07.06.2011


Ответы (1)


Хотя org-mode подробно документирован, онлайн-руководство кажется мне очень объемным. К счастью, в Интернете есть много хороших руководств, но иногда бывает трудно найти ответ на конкретную проблему.

Я предлагаю прочитать раздел руководства по организационному режиму Capture. Вам нужно будет выполнить небольшую настройку, а особенности зависят от того, какая у вас версия org-mode. (Я рекомендую использовать 7.x. Если вы застряли на 6.x, ни одна из описанных ниже настроек захвата не будет работать.)

Вот простой фрагмент из моей настройки emacs:

;;; capture mode

(setq org-default-notes-file (concat org-directory "/capture.org"))
(define-key global-map "\C-cc" 'org-capture)

(setq org-capture-templates
      '(("t" "Todo" entry (file+headline org-default-notes-file "Tasks")
     "** TODO %?\n  %i\n  %a")
        ("j" "Journal" entry (file+headline "~/journal/journal.org" "Today")
     "** %?\nEntered on %U\n  %i\n  %a")))

Теперь я нажимаю C-c c, когда нахожусь в исходном файле. Организационный режим позволяет мне выбрать шаблон ([t]odo или [j]ournal в приведенном выше примере) и заполняет его, включая ссылку на линию, на которой я находился, когда инициировал захват.


Обновлена ​​информация о повторном заполнении. Если у вас есть несколько проектов и вы хотите вести отдельные списки дел, вам также следует узнать о Повторное заполнение. Простейшая настройка — org-refile-targets содержать список ваших файлов todo.org. В процессе захвата вы можете «перепрофилировать» задачу непосредственно в любую из ваших целей перепрофилирования.

(setq org-refile-targets 
  '((nil :maxlevel . 2) 
    ("~/project/todo.org" :level . 1)))

На этой странице об организационном режиме есть хорошее пошаговое руководство по захвату и повторному заполнению.

person Dave Bacher    schedule 08.06.2011