Reconstructing Obsidian Features in Vim and Bash

(erikjohannes.no)

80 points | by wuldr 322 days ago

15 comments

  • nkit 322 days ago
    For me the main benefit of Obsidian is live-rendering editor + other handy features. Not having to look at two panes side-by-side (or having to parse the markdown format in my head) is such a QOL improvement.

    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

    • PurpleRamen 322 days ago
      Funny enough, Obsidians live rendering has shown me that plaintext sucks, and that I want richtext and data structures for my stuff. Just that there is no good tool for this. Notion and its clones are the best in that regard, but they suck in their own regard, mainly because they are online-only. And considering how many tried to replicate Notion in obsidian-extensions (and failed), I'm not the only one I guess. There probably is a market for a modern hacker-friendly offline richtext-IDE that no one has satisfied yet.
      • wim 322 days ago
        We’re working on building an IDE of sorts [1] (but specifically for tasks/notes) trying to combine the benefits of plain text but with rich elements and structure (tree/graph). The illusion of a real editor breaks down pretty quickly when you can’t easily copy-paste or select rich elements as if it was plain text, so that’s why we’re trying to build the whole thing from scratch.

        [1] https://thymer.com

        • quantumite 322 days ago
          This looks interesting, I'll take a flyer. Good luck!
        • dotancohen 322 days ago
          Honest question from someone who has been looking at these tools for almost two decades. What advantages does Thymer have over org-mode?

          I assume that anyone seriously R&Ding in this field has at least a passing familiarity with org-mode.

          • jdvh 322 days ago
            Thymer has real-time multiplayer with CRDT based synchronization. With org-mode you can collaborate, but you'd have to DIY with git or something similar. Thymer is also end-to-end encrypted. With org-mode you'd have to self-host something to sync with your phone.

            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.

            • dotancohen 321 days ago
              I see, thank you. I am impressed that you do have a comprehensive answer.
      • TheFreim 322 days ago
        > Obsidians live rendering has shown me that plaintext sucks

        I don't understand. I currently use obsidian and the live rendering is great, not exactly sure what you mean.

        • PurpleRamen 322 days ago
          That live rendering exists is in itself a sign that we want more than plaintext. On its own, plaintext is simple, which is why we like it. And it shoves everything directly in your face, which is also why we like it. But many of us also want more than just plaintext, so we invented markup, to add some levels of richness. But this makes it complicated again, and the more we want, the harder it gets, the less support from the tools we have.

          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.

          • still_grokking 322 days ago
            > That live rendering exists is in itself a sign that we want more than plaintext.

            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…

          • svieira 322 days ago
            Everyone is re-inventing "show codes" from Wordperfect 5 and other similar platforms because no one who is inventing these things has ever used Wordperfect 5. That said, re-solving this problem is turning up some nice new U/X patterns that (as far as I know) weren't around in the older platforms ("show codes on cursor", "local modal editing for format", etc.)
            • fellowniusmonk 322 days ago
              What editors have those two new ux's? I'd like to try them out ("show codes on cursor", "local modal editing for format", etc.)
              • dunham 322 days ago
                Guessing what they mean by show codes on cursor. Showing markdown around the cursor is now in Obsidian, but previously it was in Typora, FoldingText, and a circa 2016 web app called "usecanvas":

                https://github.com/usecanvas

                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.

              • svieira 322 days ago
                Obsidian's editor is "show codes on cursor" by default. As you navigate through the rich text expression it changes to the markdown format that produces that expression. You're always in a line / block of Markdown, but the rest of the document is rendered.

                "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.

        • rob74 322 days ago
          Probably referring to the limitations of Markdown? Not sure what Markdown flavor Obsidian supports, some extensions (e.g. tables) are quite powerful...
      • d4mi3n 322 days ago
        I've become a big fan of LogSeq for these reasons. In LogSeq, you have pages and trees of data (aka blocks[1]. All can be cross-referenced or embeded between each context. It's quite nice.

        1: https://docs.logseq.com/#/page/the%20basics%20of%20block%20r...

        • BrandoElFollito 318 days ago
          Logseq is my note telling app, very much aligned with my style (short notes, bullet style).

          The thing it is really missing are plain pages, in MD, without bullets

        • still_grokking 322 days ago
          Looks clean and nice, if only it wouldn't be an Electron app…
      • pcen 322 days ago
        One plug-in in beta, but has quite a large following in the Obsidian community to achieve what you’re describing with Obsidian is the make.md plug-in.
    • qwerty456127 322 days ago
      The Ggraph is another major feature. I wish I had the same in form of a widget (a desktup GUI toolkit widget preferably) to experiment with. Obsidian is such a great app but still is very far from what I want to I'd love to be able to build a similar thing from blocks for myself.
  • Izkata 322 days ago
    What, we're talking about wikis and vim, and not mentioning vimwiki?

    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.

    • lervag 322 days ago
      Shameless plug: there's also wiki.vim [0], which I believe is starting to be a real contender to Vimwiki.

      Regardless: In my experience, Vim + wiki with some additional plugins for fast searching and navigation is a very good combo!

      [0]: https://github.com/lervag/wiki.vim/

      • alfyboy 321 days ago
        Happy user of wiki.vim here. I've just started using the journaling feature which I enjoy. What do you use on mobile to edit your wiki/journal?
  • jrm4 322 days ago
    Again, I'll put up another vote for http://zim-wiki.org which I've been using for now almost decades. I've begun to experiment more with Obsidian as well, a killer thing for me would be for e.g. Zim to support standard Markdown and just make the two fully cross-compatible...
    • jandeboevrie 322 days ago
      Does zim support markdown? (no there is a fork but not merged yet) and no mobile app...
  • dicytea 322 days ago
    For neovim, there's the obsidian.nvim[1] plugin.

    There's also zk[2], a zettelkasten-based notetaking tool like Obsidian, but the functionalities are provided through a CLI and LSP server.

    [1]: https://github.com/epwalsh/obsidian.nvim

    [2]: https://github.com/mickael-menu/zk

  • PrimeMcFly 322 days ago
    I also only found out about Obsidian recently and I've become interested in switching. So far for my notes for the last several years I've just been using raw tex files with TexStudio, and creating various level subsections with macros bound to key combos as needed. It works quite well with the navigation tree and MDI, but Obsidian sounds like it might be a better solution.
    • the_cramer 322 days ago
      The great thing about Obsidian is that it still uses plaintext (it's not obsidian exclusive, i know). In case of issues with the tool, you can view and edit files in an editor. It also makes syncing stuff / backups very easy. Since you're probably having a kind of syntax already it won't be hard to change.

      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.

      • PrimeMcFly 322 days ago
        I'm familiar with markdown enough, but I don't have much need to format my own notes, no need for tables etc. All I really need is headings, and sub-headings to various degrees.

        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.

      • nray 322 days ago
        Isn't the licensing an issue? As far as I can tell you can't use Obsidian at your workplace without an annual commercial license, which is fair enough but maybe too heavy a lift for many.
        • the_cramer 322 days ago
          Yes. Professional use requires licensing. Too bad as our workplace forces the use of OneNote, which imho is lacking.
  • sudobash1 322 days ago
    The last issue listed is the killer. If you rename or move a file, you need to update all the links. It's not terribly hard to solve with a quick script as he showed, but that is the part which has always felt very hacky to me when I've done this.
    • teddyh 322 days ago
      I’m thinking an inotify hook could be created to run the script.
  • loloquwowndueo 322 days ago
    A couple of those Obsidian features (and more) come out of the box with Vimwiki if configured in Markdown mode. I use it rather interchangeably with Obsidian since they grok the same format and file structure.
  • sharikous 322 days ago
    For an open source alternative to obsidian check out Trilium. Electron based and with a whole lot of features and possible tinkering
  • satyanash 322 days ago
    for emacs, there is obsidian.el - https://github.com/licht1stein/obsidian.el
  • singhrac 322 days ago
    The one killer feature that I wish Obsidian had is CRDT support, Apple Notes-style. I realize it's a huge engineering lift and they are (appropriately) focused on making the UX perfect, but it would be really great for collaboration. I can't really recommend it to my team without better collaboration.

    I still use it every day though.

  • dSebastien 321 days ago
    It's interesting, but honestly I prefer to stick with Obsidian. The biggest selling point is the huge collection of community plugins that vastly extends its capabilities, enable automation, and more fun things
  • mipselaer 322 days ago
    I wrote a vim plugin which is my daily wiki driver. It uses Hugo as markdown indexer.

    https://github.com/linden-project/linny.vim

  • lachlan_gray 322 days ago
    The obsidian vim bindings can also be modified with the vimrc plugin. It lets you hook into obsidian’s native features with normal mode maps e.g. for pane splitting and navigation.
  • arp242 322 days ago
    Since the page doesn't seem to load: https://archive.is/oRhu0
  • tesdinger 322 days ago
    Just use one note, or a wiki.
    • cl3misch 322 days ago
      ...something something you can build Dropbox trivially with these existing tools...

      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"?