alphapapa / org-rifle

Rifle through your Org-mode buffers and acquire your target
GNU General Public License v3.0
504 stars 30 forks source link

Set helm-org-rifle-show-path to nil when using occur #46

Open rodelrod opened 4 years ago

rodelrod commented 4 years ago

Hi @alphapapa, great package you have here. I'm not sure I'd have adopted Org without it. Thanks for sharing it.

A small issue is bugging me.

I like to set helm-org-rifle-show-path to t because otherwise I'd be totally lost.

However, in the few occasions I use helm-org-rifle-occur, the prepended paths break the speed keys and other functionality. Probably because the buffer does not respect Org's syntax anymore.

Is there a way to toggle off helm-org-rifle-show-path only for the occur buffer, while keeping it for rifle in general?

alphapapa commented 4 years ago

Hi Rodrigo,

Thanks for the kind words, I'm glad it's useful to you. You might also find https://github.com/alphapapa/org-ql useful. In some ways it supersedes helm-org-rifle and is where most of my search-related work goes now. However, helm-org-rifle still has a few tricks that helm-org-ql doesn't.

I'm glad to hear that you use the occur commands! You might be the only person who uses them, for all I know. :)

That's a good point about the paths. The easiest workaround would probably be to use a custom command, like:

(defun rodelrod/helm-org-rifle-occur ()
  "Call `helm-org-rifle-occur' with paths disabled."
  (interactive)
  (let (helm-org-rifle-show-path)
    (call-interactively #'helm-org-rifle-occur)))
rodelrod commented 4 years ago

you might also find https://github.com/alphapapa/org-ql useful.

Yes, I have it installed but haven't had the time to dig into it. I'm moving my 15 year-old personal knowledge management system to Org and, while for task management it's working wonderfully, I still haven't found a good setup for my (quite large) knowledge base. I'm hoping org-ql will help with some of the issues for which I'm finding org-agenda search lacking (sorting items by created/updated dates being the one of them).

I'm glad to hear that you use the occur commands! You might be the only person who uses them, for all I know. :)

I find it practical when I'm rearranging multiple headings that were previously scattered into a new Project heading.

The easiest workaround would probably be to use a custom command, like:

Man, this is super helpful, works like a charm. Thanks so much!

alphapapa commented 4 years ago

I'm moving my 15 year-old personal knowledge management system to Org

That sounds very interesting. Do you have a blog? I'd love to read an article about that if you have time to write one.

Here's a little documentation project I've been working on that you might find useful: https://alphapapa.github.io/org-almanac/ There isn't much there yet, but I'm adding a little now and then. My priority is to keep it well-organized, because it seems like much of the Org resources out there are hard to find things in.

I still haven't found a good setup for my (quite large) knowledge base. I'm hoping org-ql will help with some of the issues for which I'm finding org-agenda search lacking (sorting items by created/updated dates being the one of them).

org-ql should help with that. Especially see the new org-ql-view dispatcher (screencast is on the repo readme now). Note that, like helm-org-rifle, org-ql searches Org files from within Emacs, so they have to be opened already. That's one reason I tend to recommend using fewer, larger Org files rather than many small ones (like, e.g. Deft or org-journal tend to do). In the long term I'd like to add support for searching an index outside of Emacs, and there are some other projects working toward that that you might want to keep an eye on, e.g. https://github.com/ndwarshuis/org-sql and https://github.com/l3kn/org-el-cache.

I find it practical when I'm rearranging multiple headings that were previously scattered into a new Project heading.

If you find the time, could you explain a bit more about this workflow? I confess that I essentially never use the helm-org-rifle-occur commands myself, but I'm very glad to hear that someone finds them useful. If I understood better how you use them, I might be able to improve them further, and perhaps I could implement something similar or better in org-ql.

rodelrod commented 4 years ago

That sounds very interesting. Do you have a blog? I'd love to read an article about that if you have time to write one.

Yes, I should do that! In short I started building it in 2003 in an outliner called InfoSelect which has wicked fast sparse-tree incremental search that I still miss. In 2014 I moved on to Evernote with my own variant of The Secret Weapon, and Dynalist when I really needed an outliner (book reading notes). Last year I moved the task management system to org-mode + beorg but the knowledge base (KB) is still split between Evernote and Dynalist for several reasons.

I'll let you know if I come around to write that blog post (probably after the current transition).

Here's a little documentation project I've been working on that you might find useful: https://alphapapa.github.io/org-almanac/

That's great, I'll check it out to see if I can get some ideas.

In the long term I'd like to add support for searching an index outside of Emacs, and there are some other projects working toward that that you might want to keep an eye on, e.g. https://github.com/ndwarshuis/org-sql and https://github.com/l3kn/org-el-cache.

Oh yeah, it's certainly clear that I won't be able to move a KB the size of mine—with the features I'd like to have (extensive cross-referencing, back-links, metadata-based sorting and fast search across the whole KB)—without some sort of external indexing. I'll take a look at these.

If you find the time, could you explain a bit more about this workflow?

Sure.

My task management org files have top-level headings for Areas. I capture new tasks into the inbox and then refile then into one of these Areas.

Most of my tasks will stay there until they get done and archived.

However, if I notice that a few of these tasks (more than 2) are very interdependent I'll group them under a level-2 Project heading. Usually these tasks will contain a common search pattern, so I'll search for active tasks with that search pattern and shove them in an helm-org-rifle-occur buffer where I can remove the false positives and refile the tasks I want to the new Project heading.