Reconstructing Obsidian Features in Vim and Bash
erikjohannes.no
erikjohannes.no
Neovim might never be able to provide complete live-rendering. I don't blame it though, I wouldn't want terminals to become a rendering engine.
Edit: Grammar
I don't understand. I currently use obsidian and the live rendering is great, not exactly sure what you mean.
Obsidian is now in a space where many people want something more richful, with elaborated data-handling, charts, pictures, videos, code-fragments with syntax highlighting, execution of code-framgments, and so on. The scale of demand is far more than just plaintext, or simple markup, and the tooling can't fetch up at the moment, because anything becomes very dirty and hacky around the higher abilities and more specialized workflows.
And then there is the problem of documentation and learning, which with plaintext is always a big problem, because everything depends on your input. With richtext-interfaces, you have an environment whose whole purpose is to support you in inputing and manipulating which ever richful text/object you want. So they simply scale up better. Which brought me to the realization that a modern environment around richtext and objects is what I really need. Because it's simple to level down richtext, but hard to level up plaintext.
"local modal editing" is most often seen in richer IDE experiences like Darklang v0.2's IDE and the Hazel type-directed-holes experiments.
There are more interesting takes as well (Lighttable's live forms, lots of Vic's experiments) but I'm definitely seeing more instances of the first two experiences these days.
There may be examples prior to that, but that's the earliest that I recall.
I'm not sure what is meant by local modal editing - is that describing what logseq does? It switches a block to plain markdown when you're editing it.
I thought word perfect show codes was in another pane, but it's been a very long time since I've seen it, and I didn't use it personally.
If people would just finally realize that this especially applies to code!
It's imho a complete joke that we're still using plain text for source code, and convert it back and forth between it's actual structure (an AST) and some limited and quirky textual representation.
The text representation of code should be just that: A visual representation. Not "the real thing".
Having proper rich data structures for code instead of plain text would make so much more possible given some proper editors…
I assume that anyone seriously R&Ding in this field has at least a passing familiarity with org-mode.
Org-mode is text based, Thymer has a document graph. Advantages of the graph approach is you can nest as much as you want and zoom in on any part of the graph. You can transclude sections and have references and backlinks. With text based approaches you have to sprinkle location identifiers (guids or relative paths typically) into your document so you can track the location as files gets edited. But guids are awkward and paths can result in broken (back)links. We built Thymer as a document graph from the ground up. Tree mutations don't break (back)links.
With Thymer every node in the graph has metadata. Who last edited it? When? Where did it move from? Previous versions? For text paragraphs this isn't super useful, but when you have tasks this metadata is very useful.
org-mode on a phone? I'm sure there are apps for that, but I think it's designed with a keyboard in mind. Thymer uses the (subjectively) more modern command palette approach where you don't have to remember as many shortcuts, and it also translates more easily to touchscreen devices.
1: https://docs.logseq.com/#/page/the%20basics%20of%20block%20r...
The thing it is really missing are plain pages, in MD, without bullets
https://github.com/vimwiki/vimwiki
I tried a whole bunch of personal wikis over the years (I see Zim has been mentioned, that's one of the ones I remember trying) and this is the only one that stuck.
The github page shows some basic markdown, but it also handles nested checklists (parent nodes can be partially checked off) and understands tables (automatically fixing spacing so columns stay aligned). It can also render to HTML (though I don't use that feature) and has a whole bunch of other stuff too.
Regardless: In my experience, Vim + wiki with some additional plugins for fast searching and navigation is a very good combo!
There's also zk[2], a zettelkasten-based notetaking tool like Obsidian, but the functionalities are provided through a CLI and LSP server.
With a proper keyboard, it's super fast to create and link notes. On mobile it sucks hard. Things like "[text](linkForText)" are not very mobile-friendly.
One big gripe i have is the table editor. There is an advanced table add-in to help, but it still sucks. Create a table and put a long link into it.
Well-known keys like "end" or "pos1" don't do the expected. "TAB" will add fields... i don't know, this should be better.
I've been wanting to make my own program to deal with that since using tex for that seems like overkill even though it works well enough. I may still as Obsidian being closed source is kind of a bummer and I'm trying to limit the closed source software I use as much as possible.
I still use it every day though.
Neither OneNote nor a wiki have the workflow of modern knowledge managers like Obsidian, Notion and the like.
Furthermore, how do OneNote or a wiki fit into "Vim and Bash"?