Master file or many files?
Table of Contents
Org-files are great and have some great features, but there are advantages to micro-files, too
Discussion on reddit at https://www.reddit.com/r/emacs/comments/13khozp/orgmode_megafiles_or_many_individual_files/
I am beginning to think that this question is more than just taste; there are actual technical consequences here. The question is, should I switch my journal, blog, and/or note-taking method away from big master files with lots of entries to individual files per entry? I am in the process of switching my passwords from a big GPG-encrypted org-file to using the linux password facility1, and I have just discovered denote2, which likewise leverages the system naming/file-searching facilities to organize a knowledge-base in an emacs-agnostic manner. This is different than the super org-file method I’ve followed, which leverages some excellent narrowing/searching tools to get around. It was the use of tools such as consult-org-heading
, narrowing (recently super-powered by zone.el
3), and find-grep
that I have gotten around a relatively small collection of large org-files.
Before anyone answers, “just stick with what works for you,” don’t evade the conversation. If it helps, imagine I am a new user wondering what advantages are at stake for making method choice for the long-term.
Some comparisons as I see them:
Few Super-Files (orgmode) | Many files |
---|---|
Search with emacs: | Emacs-agnostic search |
- emacs standard interactive search features | - grep/find-grep |
Tools like consult-org-heading for easy navigating | Not dependent on emacs or orgmode, but… |
Utilizes emacs narrowing and indirect-buffer | Still Benefits from emacs system utils |
emacs-powered search, replace, multicursors | - dired |
emacs is really good at in-buffer operations | - git |
- Things like undo areas, multiple cursors, kmacros | Won’t conflate buffers as much (easier to use distinct buffers) |
Maybe better preserves local context of information | Possess extra information fields: file name, dates |
In-file heirarchies with rich info (todo, priority, etc) | Directory heirarchies and/or tags |
Footnotes
1 Even managers like Gnome (and hence maybe Ubuntu) and many other Linux flavors use something that wraps pass, https://www.passwordstore.org/ . Pass also has a great command-line facility which means that it is highly compatible with emacs. Sure enough, there is an emacs package password-store
that works splendidly as a wrapper at https://git.zx2c4.com/password-store/tree/contrib/emacs, as well as (and this was the clincher for me) plugins that allow encrypted passwords to be syncronized via git and hence with emacs impressive Magit.
2 The denote page is here, https://protesilaos.com/emacs/denote , and the code can be acquired on github https://github.com/protesilaos/denote
3 Zone.el for better layered narrowing experience: https://www.emacswiki.org/emacs/Zones