Re: `org-capture' loads all the files in `org-directory'

2022-07-18 Thread Noel Errenil
Hi Ihor,

> ...
> Note that you are using %^G, while implies (see org-capture-templates 
> docstring):
>
> %^G Prompt for tags, with completion on all tags in all agenda files.
  ^

Thank you so much for the help. You are absolutely right!

> Only the capture template is actually loaded. However, providing tag
> completion for %^G requires Org to scan all the agenda files for
> possible tags. Hence, agenda files must be opened and examined.

This is an oversight and misunderstanding by me. Really appreciate your
explanation.


> The reason why the capture target buffer and the agenda file buffers are
> not closed is efficiency. Opening all the agenda files may take
> considerable amount of time and hence it is generally better to keep
> them open for future use. We might change it in future or provide an
> option to close the opened files if there is enough interest. Feel free
> to write a feature request - we will judge the number of user responses
> to the request.

Currently, I'm happy with this behavior. I'll learn how to submit a
feature request
anyway in case in the future I feel a need to.

After your first reply earlier, I came to realize that the pop-up
buffer in which I am
able to select a template is indeed some kind of agenda view/mode. This can be
confirmed by looking up the source code. So my original problem indeed had sth
to do with agenda, not `org-capture'.

Then I found my setting of `org-agenda-files' was indeed wrong:

Sth like:
(setq org-agenda-files ("~/projects/org/agenda.org"))
 ;; ^^
empty file at the moment
will actually make the whole ~/projects/org directory as the agenda source,
hence all the files under it will be loaded once agenda function is activated.

I did that, again, because I misunderstood the manual. I should use a
list for agenda files
or a plain text file in which I specify agenda files, one per line.

Hope all the information in this thread will help whoever runs into
the same issue as I did.

Best,
Noel


On Mon, Jul 18, 2022 at 11:24 AM Ihor Radchenko  wrote:
>
> Noel Errenil  writes:
>
> > ...
> > Then, I fire `org-capture', captur a note and `C-c C-c' to save the captured
> > content.
> >
> > Suddenly all the files under ~/projects/org will be loaded into the buffer
> > list, which confuses me so much. Those that have nothing to do with
> > capturing or capture-templates are loaded into Emacs, which makes
> > little sense to me.
> > ...
> > Currently I have `org-directory' set to `~/projects/org'. My
> > `org-capture' config is as follows:
> > ...
> >org-default-notes-file (concat org-directory "/notes.org")))
> > ...
> > ("td" "With Dealines" entry ; todos->deadline
> >(file+headline "tasks.org" "Deadlines")
> >"* TODO %? %^G\nDEADLINE: %T" :kill-buffer t :prepend t)
>
> Note that you are using %^G, while implies (see org-capture-templates 
> docstring):
>
>   %^G Prompt for tags, with completion on all tags in all agenda 
> files.
>   
> ^
>
> > I just expect that only the capture template will be loaded during capturing
> > and the template buffer should be killed (as config-ed) after capturing.
>
> Only the capture template is actually loaded. However, providing tag
> completion for %^G requires Org to scan all the agenda files for
> possible tags. Hence, agenda files must be opened and examined.
>
> The reason why the capture target buffer and the agenda file buffers are
> not closed is efficiency. Opening all the agenda files may take
> considerable amount of time and hence it is generally better to keep
> them open for future use. We might change it in future or provide an
> option to close the opened files if there is enough interest. Feel free
> to write a feature request - we will judge the number of user responses
> to the request.
>
> > What am I doing wrong? Any advice? Thank you so much in advance.
>
> You may either not use global tag completion (use %^g instead %^G in
> your templates) or advice org-capture to close the opened files.
>
> Best,
> Ihor



`org-capture' loads all the files in `org-directory'

2022-07-17 Thread Noel Errenil
Hello, org community

I ran into the titled issue and haven't found any solution or explanation:

First, I start Emacs and there are just a few buffers such as *scratch* and
*Messages*.

Then, I fire `org-capture', captur a note and `C-c C-c' to save the captured
content.

Suddenly all the files under ~/projects/org will be loaded into the buffer
list, which confuses me so much. Those that have nothing to do with
capturing or capture-templates are loaded into Emacs, which makes
little sense to me.

I'm running Emacs 28.1 on (Gentoo) Linux. I can reproduce this on my
macOS too.

Currently I have `org-directory' set to `~/projects/org'. My
`org-capture' config is as follows:

;; vars
(with-eval-after-load 'org
  (setq-default fill-column 80)
  (setq
   org-deadline-warning-days 0
   org-startup-folded 'content
   org-hide-leading-stars t
   org-agenda-include-diary t
   org-src-fontify-natively t
   org-src-preserve-indentation t
   org-edit-source-content-indentation 0
   org-indent-indentation-per-level 1
   org-directory "~/projects/org"
   org-agenda-files (concat org-directory "/agenda.org")
   org-default-notes-file (concat org-directory "/notes.org")))

;; org-capture templates
(setq org-capture-templates
  '(("t" "Tasks")
("td" "With Dealines" entry ; todos->deadline
   (file+headline "tasks.org" "Deadlines")
   "* TODO %? %^G\nDEADLINE: %T" :kill-buffer t :prepend t)
("ts" "Scheduled" entry ; todos->scheduled
   (file+headline "tasks.org" "TODOS")
   "* TODO %? %^G\nSCHEDULED: %T" :kill-buffer t :prepend t)
;; memos
("m" "Memo" entry
 (file+headline "memo.org" "MEMO")
 "* %? %^G\n%U" :kill-buffer t :prepend t)
;; notes
("n" "Daily Notes" entry
 (file+headline "notes.org" "NOTES")
 "* %? %^G\n%U" :kill-buffer t :prepend t)
;; readings
("r" "Readings")
("ra" "Article" entry
 (file+headline "readings.org" "ARTICLE")
 "* TODO %^{Short title for heading} %^G \nTTL: %^{Long title}
\nSRC: %^{Link} \n%u \nSUM: %^{Quick note?}"
 :kill-buffer t)
("rb" "Book" entry
 (file+headline "readings.org" "BOOK")
 "* TODO %^{Short title for heading} %^G \nTTL: %^{Long title}
\nSRC: %^{Link} \n%u \nSUM: %^{Quick note?}"
 :kill-buffer t)))

I just expect that only the capture template will be loaded during capturing
and the template buffer should be killed (as config-ed) after capturing.

What am I doing wrong? Any advice? Thank you so much in advance.