1. 24

  2. 8

    Really cool. Funny that “vim-as-a-library” would need ncurses but I assume that’s just to move past some build issue.

    Inspecting (render-buffer) reveals that Paravim is not using any of Vim’s actual screen state. Instead it just gets the buffer text and displays it. That explains why the video doesn’t show Vim’s statusline, etc. And syntax-highlighting is done by tokenizing the buffer contents in clojure, then assigning colors.

    That’s why in Neovim we’ve done lots of work exposing Vim’s internal state as a UI protocol: so that statusline, tabline, syntax, visual states, messages, etc., are available to embedders.

    From the video:

    There’s all kinds of cool things you can do when everything is a Vim buffer

    Indeed. Maybe we can finally stop reinventing “Vim modes” in every IDE/editor/etc. That’s one of the primary goals of Neovim.

    1. 3

      I’m curious what you think about the developer’s reasoning on why he went with Vim over Neovim. https://www.reddit.com/r/Clojure/comments/d1tz3p/paravim_a_parasitic_editor_for_clojure/ezs6veu/ And it seems he is saying this isn’t a vim mode, it is full on Vim, if that makes a difference.

      I’m not trying to stir anything up, just genuinely curious. I use and am a big fan of all you folks and your respective projects.

      1. 2

        And it seems he is saying this isn’t a vim mode, it is full on Vim,

        ? I’m in favor of libvim for that reason, and want projects like it to succeed. I want “Vim modes” in IDEs, shells, web browsers, etc., to stop re-implementing vim and start embedding it.

        1. 1

          Ahh, ok. I think I misunderstood. My knowledge is thin in all this but I find it all very interesting. This libvim does sound cool. And this paravim project is quite fun. There have been some really cool developments happening in the Clojure and vim worlds. Fireplace is still so solid, and there are many new ones like Conjure, Iced, and Acid. Liquid. It’s a fun community.

    2. 5

      By running inside your project, it has complete access to the running state of your program. The ambition is to create something that follows the Lisp and Smalltalk tradition, blurring the line between your tools and your code to provide unprecedented interactivity.

      I see Vim is asymptotically nearing its final apotheosis as Emacs…

      1. 1

        What does that mean, precisely? Both Vim and Emacs have 300k lines of C source code, and 1M+ lines of Vimscript and Elisp respectively. So I’m really curious why people in the last 15 years keep implying that Vim is meaningfully leaner (or … what, exactly?) than Emacs.

        blurring the line between your tools and your code

        This is called “composition”. That was supposed to be “the unix way”, or so I thought.

        1. 2

          You can run code in your Emacs, and now apparently you can run Vim in your code.

      2. 1

        I’m currently having issues using fireplace with clojurescript. How well Paravim works in Linux, with Leningen and clojurescript?