4 ms·
I really don't like Kakoune's model of extensibility. It's one of the reasons I switched back to Vim after using Kakoune as my main editor for several months. T
by bccdee 3y ago
I really don't like Kakoune's model of extensibility. It's one of the reasons I switched back to Vim after using Kakoune as my main editor for several months. The configuration system is esoteric, fiddly, and (as of 4 years ago or so, when I last used it) not thoroughly documented.
I think Helix made a good choice by building in LSP support and other things that would otherwise require extensions, and by having a "you don't really need it" policy for things like panes, which you can just do with tmux. And I think Neovim made a good choice by exporting a configuration/extension API in a very standard, commonplace extension language like Lua. I disagree that Neovim's Lua API is really a different language. It's just an API; Kakoune has one too, albeit of a more esoteric sort.
Incidentally, I started using Helix a month or two ago and I've been liking it a lot. Having the language server stuff already integrated is a fantastic convenience. I could probably switch to using hx exclusively if I really wanted, even with no extension system whatsoever. The only thing I want that they haven't implemented yet is easymotion jumps, and there's an MR for that already [0].
[0]: https://github.com/helix-editor/helix/pull/3791 https://github.com/helix-editor/helix/pull/3791
- chrismorgan 3y agoWait, no panes? What about things like diffing two files? There are also plenty of other situations too where I’ve definitely wanted splits in the same client, so I can see multiple files at once but also copy between them (which requires shared registers), write macros that switch between the panes (which… well, I suppose Kakoune’s composability approach might be able to support such a concept, but I get the impression Helix really wouldn’t), &c. Wow, https://github.com/helix-editor/helix/issues/405 https://github.com/helix-editor/helix/issues/405, indeed no side-by-side diffing and the approach being suggested would be hopelessly crippled for even two-way diff (let alone three- or four-way diff, which are probably just total non-starters), since it would only support editing one of the documents! Seriously, my mind is boggling at considering a “you don’t really need it” policy for at least splits. I really do need it: even on my base task load, tmux would be inadequate in painful ways multiple times per month; and I regularly (sometimes daily for weeks, though other times not for months on end) do things for which it would be completely debilitating so that I couldn’t possibly use Helix and would have to go back to Vim.
- pipe_connector 3y agoYou can still use a dedicated diff tool for these situations if they come up regularly. In my experience they are better than vim anyhow.
- riffraff 3y agoVim is not a very good diff tool (e.g. no word diff, tho there's a plugin) but it's good enough for most cases and it's nice to never have to switch the way you work.
- lytedev 3y agoHelix has splits and the issue you linked for side-by-side diffs is still open!
- archseer 3y agoSplits are provided, tabs and terminals aren't. Diff mode is work in progress.
- hyperhopper 3y agoWhat if I need to cut and paste things from one file to another? Registers wouldn't sync I'm guessing, so I'd have to do something hacky with the system clipboard
- vulcan01 3y agoThere are default keybinds for copy/paste to system clipboard, but as the parent said, tabs are a work in progress.
- Symmetry 3y agoThe lack of diff mode has been my biggest hangup in terms to trying helix out seriously. I'll keep an eye out for it to land.
- doix 3y ago> and by having a "you don't really need it" policy for things like panes, which you can just do with tmux. They do panes, they don't have tabs. Although it looks like github user nrabulinski created a PoC[0]. Not having tabs is what made helix unusable for me, it just messes with my workflow too much. And you are wrong about using tmux for this. It does not work with helix because it doesn't follow a client-server model, two instances do not share information between each other (someone please correct me if I'm wrong) If you are using kakoune, you can actually use tmux (or any tiling window manager like i3wm) to recreate proper tabs since it does have a client-server model. Multiple kakoune instances can kakoune processes can share information. It's actually the most flexible system for windowing in my opinion. It allows you to do things like |kak|firefox|kak| with both kak instances sharing information. [0] https://github.com/helix-editor/helix/issues/2295#issuecomment-1499559184 https://github.com/helix-editor/helix/issues/2295#issuecomme...