35 comments

[ 2.4 ms ] story [ 105 ms ] thread
I mostly use org-mode as an outline and table editor and notebook (here’s a shell command, here’s what happened when I ran it). File links work but I usually just hop into dired.
Org links are complex and difficult to use only until you discover `org-store-link' and `org-insert-link', and bind the former globally.
I started going down the org-mode rabbit hole when I was investigating emacs last year. Then I came across Obsidian (https://obsidian.md/) and haven't looked back.
What do you like about obsidian that org-mode does not have?
I use obsidian, and the two big advantages are:

1) high quality mobile client and syncing.

2) It uses the same standard keys as every other GUI program on whatever OS I use it on -- I don't want to go "full Emacs".

Some common issues I ran across that pushed me to Obsidian (for now) were mobile app support, package maintenance, and difficulty configuring and maintaining.

Many people have no difficulty setting up and maintaining an app like beorg and orgzly, but translating the many keybinds and modes to a ml mobile interface can be cumbersome. I've personally experienced issues with folding large org files, not to mention the act of actually keeping the files in sync. SyncThing / rsync works for many, but is another tool to maintain. Even if you can get your files right, the workflow on mobile is not up to par with desktop, and I've had a much easier time with Obsidian sync.

Which leads to package managment. It can be harder to depend on the goodwill of open source maintainers to find solutions to corner cases, particularly if you find something that becomes a staple of your workflow. If my choices are become a competent Elisp developer or kick someone a fee to keep working on a project, I'm picking the latter. I personally still am hesitant to push more and more of my workflow onto org-roam knowing it was birthed as a labor of love and a side project, knowing that it might not be maintained, or that versions will require labor and patching on my part to roll out, as was the case with the jump from org-roam v1 to v2.

Also, depending on how you do choose to setup emacs, it can be a house of cards to set up all your packages and keep them running and up to date. Even if you are really savvy with elisp, keeping your versions, packages, and dotfiles in working order across multiple systems (not to mention mobile, as above) can be daunting. And not all platforms are supported equally. Configuring doom emacs to run on my Windows 10 work machine was and is not easy. Obsidian installed and opened in one click.

I get and understand supporting open source and if that's an objective, logseq seems to be doing a great job on that front. It's still missing some features that would push me to switch over entirely (their Android support is non-existent, and many plugins I loved on emacs and Obsidian I haven't found a nice solution for (time-tracking and time blocking, and not even Obsidian can match org's export features, but markdown works fine for now, while logseq files were difficult to format).

Overall, I love org mode and want it to be my daily driver. But at the end of the day I have to remember that I can't let knowledge management be a part-time job. I was spending so much time tinkering with tooling that it was impacting the very thing it was supposed to help: my workflow. Maybe someday I'll revisit org over several cups of coffee and a rainy afternoon, but Obsidian and Todoist will take care of me until then.

> "not even Obsidian can match org's export features"

As a very happy Obsidian user I'm curious which export features you're missing; "there's a plugin for that" is trite but a safe bet.

Obsidian is using the webstack, so you get more fancy interface-elements. The crowd is also technerdy and more focused on different areas, so the features implemented in extensions have a different angle, are more focused on knowledge managment and using non-lisp-languages.
As a Vim user, I’m curious to know what I’m really missing. Vimwiki is doing exactly what I think it should (creating links under the cursor by simply pressing "return" and following them).

But I feel org-mode might be a lot more.

Also Vim user, and I've always been a little baffled by org-mode in general. There are several Neovim plugins that try to replicate it (either real org-mode compatibility or just a spiritual association), and I've really struggled to understand what the use-case even is. It just seems like so much overhead to even grok org-mode, keep a sane and meaningful hierarchy of your ideas and keep it up-to-date... seems like a ton of work over just using your inbox and calendar as your "external mind". People constantly sing its praises and the advantages it brings but I've never seen it articulated what those actually are.
org-mode is a markdown like language. In itself it doesn't have anything special. But the ecosystem of integration in emacs makes it a very rich experience. Both the UX of integration (seemless idea capture, outline manipulations etc.) and the breadth of application (email writing, gantt generation, accounting compute and reporting, RSS reading and sorting, slide presentations, agenda integration, time card reporting, invoice generation etc.) in combination it becomes a very hard to describe experience, precisely because it is so rich and varied while at the same time very streamlined because everything is text, and it all behave intuitively.
I use org-mode primarily for maintaining spreadsheets containing tables of data where the tables may be related to each other.

As I enter new data into the tables or edit existing data, I may want to automatically recompute aggregate data pertaining to those tables. For example, I may want to recompute the totals or averages using the data in these tables. Further, I may want to write some Elisp code in the same file that composes new tables automatically based on the data in the existing tables.

This is the kind of spreadsheet management work I use org-mode for. Here is a simple example that illustrates some of the points I made in the previous paragraph: https://github.com/susam/lab/blob/main/emacs/org/total-of-to...

Is there a way to render the org table without using a source block?

This is what I did:

- input the defun for create-summary in ielm

- Added tables like the ones in your link. NOTE: I used different numbers.

- M-x create-summary runs but it just echoes some messages.

- I put (create-summary) in my org doc, then ran C-u C-x C-e and it returns the lisp representation of the table:

  (("Team" "Hours") hline (#("Team 1" 0 6 (face org-level-1 fontified t)) 30) (#("Team 2" 0 2 (face org-level-1 fontified t) 2 3 (face org-level-1 fontified t) 3 6 (face org-level-1 fontified t)) 60) hline ("Total" 90))
- Then, I put the lisp object in a variable in source block, eval'd it and got the table:

  #+BEGIN_SRC emacs-lisp
  (setq x '(("Team" "Hours") hline (#("Team 1" 0 6 (face org-level-1 fontified t)) 30) (#("Team 2" 0 2 (face org-level-1 fontified t) 2 3 (face org-level-1 fontified t) 3 6 (face org-level-1 fontified t)) 60) hline ("Total" 90)))
  
  x
  #+END_SRC
  
  #+RESULTS:
  | Team   | Hours |
  |--------+-------|
  | Team 1 |    30 |
  | Team 2 |    60 |
  |--------+-------|
  | Total  |    90 |
    
I was wondering if there was a way to generate the table just by running a function.

Got the idea to use a source block from here: https://stackoverflow.com/questions/65950060/converting-list...

I'll try to explain. I was a nvim user for a couple of years and used vimwiki (not a power user though) then switched to Doom Emacs about 3 years ago and would consider myself an almost-power user for org mode.

What I like about org mode over vimwiki is how seamless the experience is. It is super-easy to pause what I'm working on, create a note or TODO or almost anything very quickly, and get right back to what I was working on. This note (or whatever I created) is linked to the file I was in when I started the note, it's timestamped, if I make it a TODO then it automatically shows up in my org todo list, if I schedule it or give it a deadline it automatically shows up in my org agenda.

And then there's literate programming. I actually just finished an interview 30 minutes ago where I used literate programming. It was "create a database structure and a very rough outline of a UI for this thing" so I opened an org file, copied the requirements at the top, asked some questions and wrote those down as well, then started an org table to approximate a [database structure][0]. Once I was ready to write code I created a [code block][1] which gets syntax highlighting, formatting, basically all the LSP stuff in that code block. Everything I needed was in one place. And sure you could say "you can do that in a html file and just make all the non-html stuff comments". Yes you can, but it is just nicer and better supported in org mode imo. And you can evaluate these code blocks too, and the output will be printed just below the code block :)

[0]:

  | Foo Table      |  
  |----------------|  
  | id             |  
  | name           |  
  | description    |
  
[1]:

  #+begin_src html  
  <h1>Hello, World</h1>  
  <h2>Hope you're doing great!</h2>  
  etc  
  #+end_src
It's also worth mentioning that SQL can be evaluated in a code block - as well as a bunch of other languages, but SQL would be pertinent for this example:

  #+name: my-query
  #+header: :engine mssql
  #+header: :dbhost DBServer
  #+header: :Trusted_Connection True
  #+header: :database DBName
  #+begin_src sql
  select top 3 id, name, description
  from dbo.Foo
  #+end_src

  #+RESULTS: my-query
  | id | name       | description |
  |----+------------+-------------|
  |  1 | Name one   | abc         |
  |  2 | Name two   | xyz         |
  |  3 | Name three | 123         |
My example uses MS Sql Server, but of course emacs supports a lot more databases.
I'm a vim-orgmode user. I more or less edit org markup with vim and a few helper commands.

The main selling points for me were document production, and the ability to run code that generates part of the document. As a bonus org is kind of fun to extend or override functionality (in elisp) when you want a particular output or feature.

Org can export to LaTeX, HTML, and more. With python ebooklib I can produce a usable epub output. Before org I had been using LaTeX, and this let me maintain the same style output there.

Org's babel feature turns it into something more like jupyter notebook for any language or mix of languages. I can generate diagrams from source sections, run shell to filter includes, include code and its generated output.

Org has filter lists for modifying exports with your own function, or use Emacs advice system to mangle things before the org code gets them.

I don't use the agenda features much, but they're a big feature for using org as a planner/todo list. Org can generate calendars, reports, and special views from your files to help keep track of all that.

https://orgmode.org/features.html if you want a broader overview.

org-mode has so many features that every answer you will get is different. I basically never use the links feature of org-mode that TFA mentions.

However, I use org-babel (lets you embed arbitrary programming languages in an org document, and includes things like showing the results of calculations) all the time. It's great for generating documents with can't-be-wrong examples.

Let me try to explain to you, with my best abilities, what you are missing.

You are missing nothing. Absolutely nothing. As a vim user.

org-mode, is a bunch of features, unrelated sometimes, put together in the emacs eco-system that work well together, and work well in the emacs eco-system.

Org (and sometimes, with extensions) can handle scheduling, task management, document production, journals, literate programming, writing html emails, maintaining contacts info, building knowledge base, writing blog articles, etc.

If you are a vim user, you probably better off sticking with markdown for creating documents, and then using pandoc to convert them. You are probably better off sticking with task warrior for tasks. You are probably better off sticking with a calendar app for schedule, ... you get the picture.

But in emacs, org-mode is integrated so well in the eco-system that it makes it quite powerful. You can, while reading some code, take a note immediately, pointing to the region (which includes a hyperlink to the line, as well as copy of the content of the highlighted region) and store it in your todo list, with a scheduled time to review. It will appear in your agenda when you ask emacs to view your agenda.

In emacs, you can write a document (in org-mode format) and then include it in an email (within emacs), which is automatically converted into html when you send (or text, or both MIME.), ... you probably get this picture too. Org-mode provides a set of APIs that allows for automation and customization.

Because emacs has many usecases, and because org-mode meets many of these usecases, and because it integrates well, org-mode has found a special place in the emacs community.

Vim user here. Is this functionality not widely known in the Emacs world? In Vim's normal mode, gf will do the same thing and I'm under the impression it's a pretty widely used command.
it's known but not put forth as much as vim it seems. a case of subpar defaults in a way
I have been a user of Vim as well as Emacs. Vim's gf command and M-x ffap RET of Emacs were both known to me since my early days of using these editors.
My Emacs config replaces the default 'find-file' with the 'find-file-at-point' mentioned in the article, so the keybinding is just C-x C-f

I also modify it slightly to look for line-numbers and column-numbers, so pressing C-x C-f when the cursor is on '/home/chriswarbo/foo.txt:135:23' will open that foo.txt file, then navigate to line 135 and column 23. This is especially useful when looking through compiler messages, etc.

https://github.com/Warbo/warbo-emacs-d/blob/5e8b18dbae1767a9...

We do this in evil-mode too except it's bound to `g F`
> The org-mode extension to emacs is popular in part because it lets you create and follow hyperlinks between files.

Huh? I almost never use this feature. Mostly, I use org-mode for the markup, org-capture, org-agenda and org-export.

To be fair, it says "in part" and I'm sure different users use different subsets of features. For example, I've never used export, but do a lot of refiling and archiving, which you didn't mention.
(comment deleted)
I use org-mode, first because it's an outliner, secondly because at point I can do much more then links, I can also execute code, have personal link-types to do things, I can have attachments, query my notes with org-ql etc

I've also tried Hyperbole but, no, org-mode is used because it do much more than anything else, and so Emacs as a whole vs gazillion of modern individual apps loosely connected by GUIs IPCs (copy&paste, drag&drop)...

I share the author's excitement for gemtext. It is a minimal format with a great accessibility story and I can expect it to still make sense in 10 years. Meanwhile org files quickly become dated as the format evolves and Emacs library becomes more bloated and convoluted. Instead of including tables, link to a CSV file. Keep things simple. Stop making documents for presentation. Accessibility is way more important.