5 ms·
I'm not the target for your question (I distribute 0 plugins). But Lua support in Neovim is the primary reason I moved over from Emacs. Elisp and Vim are both
by rustyhancock 8mo ago
I'm not the target for your question (I distribute 0 plugins).
But Lua support in Neovim is the primary reason I moved over from Emacs. Elisp and Vim are both so heart sink for me.
That said I'd have preferred something other than Lua if I had the choice.
- freedomben 8mo ago> That said I'd have preferred something other than Lua if I had the choice. Same. I know we as a community would never agree on what that language should be, but in my dreams it would have been ruby. Even javascript would have been better for me than Lua.
- elros 8mo ago> Even javascript would have been better for me than Lua. Why?
- freedomben 8mo agoBecause I know javascript a lot more than I know Lua (and I suspect given js popularity, a lot of people are in the same boat). Yes Lua is easy to learn, but it's still different enough that there is friction. The differences also aren't just syntactically, it's also libraries/APIs, and more. I also don't have any need/use for Lua beyond neovim, so it's basically having to learn a language specifically for one tool. It's not ideal for me. But the people who did the work wanted Lua, and I have no problem with that. That's their privilege as the people doing the work. I'm still free to fork it and make ruby or js or whatever (Elixir would be awesome!) first-class.
- 01100011 8mo agoI agree but also wonder if editor plugins fall squarely in the range of things an LLM could vibe-code for me? There is a large class of problems now for which I consider the chosen programming language to be irrelevant. I don't vibe code my driver code/systems programming stuff, but my helper scripts, gdb extensions, etc are mostly written or maintained by an LLM now.
- metrix 8mo agoI'm right there with you, and to be honest Lua just works. I helped with Neovim when it started ~10 years ago, and didn't understand the big deal about implementing lua.. But now that it's here, I can't believe it wasn't forked and implemented sooner
- maleldil 8mo agoIME, Claude is quite good at generating Lua code for neovim. It takes some back and forth because there's no easy way for it to directly test what it's writing, but it works.
- joeblubaugh 8mo agoI vibe-coded a simple neovim lua plugin very recently. It worked well! https://joeblu.com/blog/2026_01_introducing-nvim-beads-manage-beads-in-neovim/ https://joeblu.com/blog/2026_01_introducing-nvim-beads-manag...
- FuckButtons 8mo agoI was in the same boat, but you’d be surprised by the number of projects that have embedded lua. Zfs, nginx, redis, haproxy.
- jitl 8mo agoi’ve written probably north of a million lines of production js, maybe around 100,000 lines of production ruby, and about 300 lines of production lua. lua is a fun language and i think a much better fit than JS for technical reasons (who has a js engine that is both fast and embeds well? nobody), but i am certainly more productive in those other languages where i have more experience. lua array index starting at 1 gets me at least once whenever i sit down to write a library for my nvim or wezterm.
- llimllib 8mo ago> who has a js engine that is both fast and embeds well? nobody Fabrice Bellard! https://github.com/bellard/mquickjs https://github.com/bellard/mquickjs (I agree with you, just wanted to note this super neat project)
- jitl 8mo agoquickjs/mquickjs are good at embedding but nowhere close to luajit in terms of speed. (i have some experience with quickjs https://github.com/justjake/quickjs-emscripten https://github.com/justjake/quickjs-emscripten) as an aside i’m curious how quickjs/mquickjs compares to mruby in speed and size. something to ponder
- satvikpendem 8mo agoLua, especially with LuaJIT, is nearly as fast as C. I certainly don't want to have to run a slow language like Ruby or especially a full blown JS runtime like V8 just to run Vim, the entire point is speed and keyboard ergonomics, otherwise just use VSCode.
- user3939382 8mo agoBabashka! Super fast clojure/lisp.
- zem 8mo agothere's always fennel for a lispy layer over lua
- freedomben 8mo agoQuite a fair point! For intensive plugins and such, this would matter quite a bit.
- lloeki 8mo agoIsn't LuaJIT kind of a dead end? Also Ruby has been getting quite fast since YJIT (and now ZJIT): https://railsatscale.com/2023-08-29-ruby-outperforms-c/ https://railsatscale.com/2023-08-29-ruby-outperforms-c/
- comex 8mo agoV8 is faster than LuaJIT. But sure, it has a large binary size.
- augusto-moura 8mo agoYou don't need V8 for running JS for scripting, you have quickjs[1] or mquickjs[2] for example. You might have problems importing npm packages, but as we can see from lua plugins you don't even need support for package managers. Performance is not as good as luajit, but it is good enough [1]: https://bellard.org/quickjs/ https://bellard.org/quickjs/ [2]: https://github.com/bellard/mquickjs https://github.com/bellard/mquickjs
- MarsIronPI 8mo agoDoesn't Vim support extensions written in several languages? Or was that removed in Vim 9?
- chrisbra80 8mo agoIt still does, but those only work with a Vim built that has those interfaces compiled in.
- Graziano_M 8mo agoI wish they supported Janet
- nine_k 8mo agoCan you run Fennel in Neovim? It's a Lisp running on Lua. https://fennel-lang.org/ https://fennel-lang.org/
- golly_ned 8mo agoYes.
- Graziano_M 8mo agoYep! and I already do: https://github.com/Grazfather/dotfiles/tree/master/nvim/fnl https://github.com/Grazfather/dotfiles/tree/master/nvim/fnl
- jauntywundrkind 8mo ago> That said I'd have preferred something other than Lua if I had the choice. Denops is super easy to use, works great. Connects over RPC. https://github.com/vim-denops/denops.vim https://github.com/vim-denops/denops.vim Nvim-oxi is wild. Uses neovim's FFI to let you write Rust that talks directly to neovim. https://github.com/noib3/nvim-oxi https://github.com/noib3/nvim-oxi Denops has always been a niche but it was a really popular niche for a couple years. Activity is fading somewhat. I'm still doing my plugin dev in lua, and it's... survivable. But I do think of switching more into one of these options.