Readit News logoReadit News
spapas82 · a month ago
Helix is great and includes a lot of stuff out of the box (file pickers, syntax highlighting, linting etc) without any configuration or installing plugins (contrary to vim or neovim).

I would definitely use it but the main disadvantage is that some keybindings work differently than vim. I understand that the keybindings may be better that the vim ones but after years of using vim I expect "x" in normal mode to delete the character under the cursor or "d" to wait for the motion before deleting anything. When this does not happen I get confused and angry. I think this would be a problem with most people that are using vim; it's very difficult to change your habits especially since you can't ever escape from vim because of its ubiquity.

Thankfully, some good people have released evil-helix, a soft fork of Helix which introduces Vim keybindings https://github.com/usagi-flow/evil-helix ; I tried it and it works great so I'll totally recommend it to people that have my problems.

As a final notice, helix (and evil-helix) works great in Windows (cmd). No need to install rust or anything. Get the .exe and you're gtg.

mmcromp · a month ago
For me, the issue isn't that I'm unwilling to learn new things. It's that I cannot use these keybindings anywhere else. Almost all online editors and workstations have some sort of vim keybindings. When I ssh into a Linux machine I can trust it has vim editor. It's like qwerty keyboard, I'm sure that there's better layouts but I just cannot discard the flexibility of being able to jump on most machines and be 99% productive almost instantly.
eviks · a month ago
> I just cannot discard the flexibility of being able to jump on most machines and be 99% productive almost instantly.

You can easily discard it if you can become 200% productive with better defaults on your machine. Like, do you also not use any plugins just because they aren't available on another machine?

Also the keyboard comparison doesn't work since it's not as hard to copy your editor to another machine

dpatterbee · a month ago
Honestly, I don't think this is a big deal. I use helix as my primary editor, but when I'm on another machine and it only has vi or whatever I just use that and I can mentally switch to using the vim keybinds with little issue. Like sometimes I'll mistakenly `m-i-w-c` instead of `c-i-w` or `d` instead of `x`, but then I just hit `u` and continue.
zeendo · a month ago
To anti-pile-on to the other replies - this is exactly why I haven't given it much of a spin.

I'm glad to find out about evil-helix.

Barrin92 · a month ago
i didn't find it to be a big issue because helix doesn't have different key bindings as much as it simply has a reverse grammar. If you think of vim as a language to manipulate text objects (which is what it is basically) everything is verb-noun, in helix it's noun-verb. There's a few idiosyncrasies but approaching it that way I got around pretty much immediately.
_cwpi · a month ago
I'm totally fine with (re)learning new tools, but having given Helix a solid try found the noun-verb model worse; the visual feedback is fun but distracting, particularly when you're moving around reading code. For it you give up things like repeating edits easily (bound as '.' in Vim). There's also a statefulness to Helix's model that isn't present in Vim; whereas in the latter I only have to care about where I _am_ in the file as I'm making my edit, in Helix I have to care about where I've _been_ because that dictates what I've currently got selected. See my other comment for details.

I want an editor with OOTB configuration and a modal editing paradigm (probably Vim's) that isn't constructed around visually synchronizing every edit action. Doing the latter means relinquishing what's good about an editing language, which is that you needn't actively think about edits so much. It's not about speed, but freeing up mental resources to think about the more interesting programming tasks at hand. Editors that demand more attention are doing a worse job.

Deleted Comment

zem · a month ago
surprised helix doesn't support the . key - is that incompatible with its interaction model somehow?
latexr · a month ago
As someone who used vim (and then neovim) for some two decades, I didn’t find it hard to adapt to helix, and now vastly prefer it.

I did edit several modal behaviours but always stick to helix logic.

Things like the multiple selections and LSP support out of the box make it super worthy, aided by its fantastic help that when you press a multi-step character it shows a little hint of possible next options, including your own custom actions.

I do on occasion need to use bare vim setups, and while some commands have been remapped in my head, I still remember enough for quick edits.

positron26 · a month ago
Helix is adding a Scheme for programmable configuration.

With programmability, you can have a lot more state and contextual behavior. We get this kind of fine-grained stuff in Emacs with repeat maps, transient maps, heuristic DWIM behavior, state tracking per-buffer etc.

As LLMs lower the cost of having that 8th or 9th language, you can expect programmable tools to float up in the market.

mi_lk · a month ago
Omg. Vim keybindings is the single blocker for me to try helix.

It means that it's possible to add vim support for Helix but they don't want to?

justusthane · a month ago
Sure, why wouldn’t it be? Plenty of programs have Vim keybindings. The challenge is matching the behavior perfectly 1-1.

Deleted Comment

bestouff · a month ago
Same same.
lynndotpy · a month ago
I love Helix, I highly recommend it to anyone who never quite got on board with vim but likes the idea of it. I found it much easier to learn and use, and it is distinguished from other vimlikes in that it's got a useful starting configuration.
xmonkee · a month ago
I really really like it. I honestly think they should wrap it in a GUI with some conveniences like a mouse based file browser and it can compete well with vscode.
ssernikk · a month ago
Zed has Helix keybindings now!

https://zed.dev/

vouaobrasil · a month ago
Very nice to see a text editor that is very capable, yet still minimal and not focused on including a bunch of useless AI features.
38 · a month ago
stusmall · a month ago
I agree. I can't fit this on my hard drive. I've had this 386 for 30 years. Why should I have to upgrade it just for some text editor?
OptionX · a month ago
111mb is bloat apparently in a time where storage is in the terabytes.
watersb · a month ago
> As an example, here's the official Alpine package: https://pkgs.alpinelinux.org/package/edge/community/x86_64/h...

> It comes with no grammars installed and it's up to the user to install what they need ... and the grammars can be shared with other editors.

burgerrito · a month ago
Do correct me if I'm wrong, but aren't grammar files optional?
varbhat · a month ago
Congrats!

I am happy for helix but i don't think it's a good fit for me.

I use Neovim. It does what i want it to do. It's one of the best available options. But, i am not completely satisfied with it. I personally want an editor with following:

* Modern codebase. Written from scratch.

* VIM Keybindings: I have muscle memory of Vim. I would like to use Vim Keybindings in my editor. I don't want to use any other keybindings even if they are proclaimed to be better. It must walk like vim and quack like vim.

* Good defaults. I hate configuring a lot. Neovim requires configuring a lot and need not always provide good defaults if it provided. Helix might have gotten this right.

* Based on Treesitter. Better they run Treesitter parsers as a WASM in WASM runtime just like how Zed and latest Neovim do.

* Extension System. But, I don't really favor lua, js or scheme. They just aren't my cup of tea. Maybe make it a wasm module with only necessary functions exposed to it. And configuration of those plugins in non turning complete configuration language.

* TUI and optional GUI

* LSP,DAP and Snippets support built-in(along with auto complete/suggestions, UI for Testing and Debugging)

* Oil.nvim like FS as buffer built-in

* Telescope/FZF-lua style Search built-in

* Git integration built-in (Maybe magit/neogit like GIT UI is welcome)

* Flash.nvim style Treesitter based Code AST Manipulation and Jump-to by label built-in

* Macros and Multi cursors

* Optional Cursor Style AI integration (Chat UI)

munificent · a month ago
> I have muscle memory of Vim.

I respect the preferences of others but I think that most people overfit for muscle memory. I've switched OSes/editors/IDEs many times in my career. Every time, the first day or two I feel like "This is the worst fucking thing ever, I can't even type God damn it I want to set the computer on fire and become a farmer."

But... that passes. After a couple of days, I have new muscle memory and it's fine. It would be a shame to let a few days of discomfort control which software I use when software varies in its other capabilities so much more widely than just keybindings.

aequitas · a month ago
But there is only so much room for muscle memory or context to switch between. I tried Helix for a while, got used to it and I really liked it, especially the noun verb order being different from vim. Seeing what you have selected before performing the action. But for me the problem is that vim is everywhere I go or will eventually end up. All my servers have vim. Every server I need to randomly debug has vim or vi. So my muscle memory for vim keeps getting refreshed as well. And switching between the two constantly is just a pain. I could take along Helix to all these servers. But that is not practical nor do I need all the features Helix uses. Or I would miss specific feature which I then also have to bring along.

Now I’ve settled with Zed as desktop editor/IDE and still use vim on remotes. The context switch between a desktop app en cli is big enough that it’s never a problem. I don’t even use the vim bindings in Zed.

notnmeyer · a month ago
i know many very smart people that insist that their muscle memory makes it impossible to switch editors or shells.

i respect the perspective of “i like my tools and have no reason to switch”.

what i feel is constantly missed if the understanding that your regular tools are literally one command away. learning something new doesn’t mean you can’t also take advantage of your muscle memory as necessary.

skavi · a month ago
personally i just find verb noun editing a tiny bit more fun than noun verb.

you craft an incantation that either does everything right or backfires. there’s no feedback while said incantation is being constructed.

practically, noun verb is much better of course.

dman · a month ago
Its not very clear to me which of these Helix hasnt hit. To me it looks like Helix is very close to what you are looking for.
pavon · a month ago
* VIM Keybindings: I have muscle memory of Vim.

Helix is strongly inspired by vim, but it is not attempting to be a drop-in replacement, and it is not possible to configure it to have the same behavior as vim with custom key-bindings because there are many things that work fundamentally differently between the two editors.

b0sk · a month ago
FYI (for OP): check this fork out https://github.com/usagi-flow/evil-helix
f_devd · a month ago
Only extension system, but honestly I've never missed it in 3y of usage coming from nvim.
milliams · a month ago
Its keybindings aren't identical to vim. They're very similar in many places, but are also different in quite common things like deleting lines etc. (dd vs xd)

Deleted Comment

angra_mainyu · a month ago
>list of requirements So basically Neovim, but swapping out Lua for something else.
qn9n · a month ago
And with better defaults akin to Helix
zenlot · a month ago
Love Helix. Congrats. Good looking default theme. Sensible defaults. Literally install and use, no configuration needed. Well I haven't replaced my IDE with it , but set alias of vi to it and made it as $EDITOR for all quick cli edits. So now whenever I need to do quick debugging edits in k9s, it calls for Helix.
Xiol32 · a month ago
I really wanted to like Helix, and for the most part did, but there is something about the way undo works that just feels incredibly wrong to me. What it wants to undo doesn't always seem logical and always undoes too much. I've lost work because of it in the past.
suby · a month ago
There are two things that consciously bug me about undo,

* When you press undo, and the content to be undone isn't on the screen, it will jump your screen to the relevant section (good) but also with that same keypress actually undo the content (bad). Other editors, if the content is not on the screen, will not perform the undo action unless the content is actually visible. When I press undo in Helix, I'm always taking a moment to figure out what has actually changed because of this.

* This is a conscious decision by the Helix creator, so it's unlikely to change, but undo is not granular enough. It's chunked per insert mode operation. So you could type the entirety of a tale of two cities while in insert mode, you could be in insert mode for 30 minutes, and then go back to normal mode -- at this point, if you press undo once, the entirety of what you did in insert mode is undone. There is a feature where you can explicitly give the editor a save point for undo, and you're expected to press the key manually at your desired undo points. I really don't like this at all. I have bound some keys such as spacebar to this save point, so I get more granular undo, but this has some consequences such as clearing any selections that are currently present. I couldn't figure out a way to fix this without any side effects unfortunately.

I like Helix a lot, and I have no intention of changing editors, but there are some default behaviors which I think are absolutely baffling, and the undo granularity + expectation that you manually save checkpoints for undo is one of them.

aquova · a month ago
> Other editors, if the content is not on the screen, will not perform the undo action unless the content is actually visible.

Really? What editor does this? Vim/Neovim definitely will undo the change with a single 'u' press, and every GUI editor I've ever used will undo the change immediately with a single ctrl+z.

eviks · a month ago
What happens if you can't fit all changes into one screen? Does it jump to a random /last edit but undoes all the changes?

By the way, I find this forced move rather annoying sometimes, especially when I want to jump back and forth (undo/redo) and this behavior blocks visual comparison by constantly shifting the view

Deleted Comment

latexr · a month ago
I agree the undo is sometimes a bit weird, as is the “repeat last command”. However, the rest of it is so nice that I keep Helix as my main editor.

How did you lose work, though, could you not redo?

Xiol32 · a month ago
I think I panicked at the amount it has undone and then in my attempt to redo, made a change and got myself into a mess with the history. It was quite early on in my time with it.

Deleted Comment

GrantMoyer · a month ago
I'd love for Helix to implement a "Kakoune mode". I develop on Windows at work, where Kakoune is not ideal, so Helix seems like it'd be a perfect fit, except I can't get over the keybindings. Its keybinding philosophy encourages verbosity instead of Kakoune's terseness, which bothers me more than it probably should, and as far as I can tell its keymap configuration isn't yet powerful enough to emulate Kakoune well.

Vim's inconsistent keybinds and behavior are what pushed me to Kakoune — which I find has more consistent and elegant bindings and behavior — in the first place, and Helix feels like a step backwards on that front.

rightbyte · a month ago
Heh. A "post-modern" editor. The second best joke since Fish's "Finally a command line shell for the 90s".

And looking at the video it seems to be tui based. Nice. Gave me Emacs tui vibes.