Live data from Hacker News

Helix: A Neovim inspired editor, written in Rust

github.com

221–230 of 321 posts

Re: Helix: A Neovim inspired editor, written in Rust

#221
post #114

I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Installation was easy and the default configuration is good. Plugging in rust-analyzer still needed a line or two of config file e…

>I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Do you have some supernatural ability to quickly (re)learn muscle memory for new keybindings? I’d consider myself a fairly advanc…

The keybindings are pretty similar, the paradigm change from verb-noun to noun-verb and the multiple cursor paradigm are bigger changes. I got used to it with my brief affair with Kakoune.

The Vim muscle memory will be quite helpful and not a whole lot of unlearning is necessary. hjkl navigation and other familiar concepts are similar in Helix and Vim.

Vim ci" translates to Helix mi"c. After the first key press (m), a help dialog pops up.

Re: Helix: A Neovim inspired editor, written in Rust

#222
Some interesting stats:

- Helix has 624 open issues (1,103 closed) [0]

- Vim has 1,172 open issues (5,518 closed)[1]

- NeoVim has 1,258 open issues (7,496 closed)[2]

- VSCode has 7,463 open issues (136,638 closed) [3]

[0] https://github.com/helix-editor/helix/issues

[1] https://github.com/vim/vim/issues

[2] https://github.com/neovim/neovim/issues

[3] https://github.com/microsoft/vscode/issues

Re: Helix: A Neovim inspired editor, written in Rust

#223
post #211

Earlier quoted context omitted.

>I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Do you have some supernatural ability to quickly (re)learn muscle memory for new keybindings? I’d consider myself a fairly advanc…

what does `ci"` do in vim? I'm decent with vim, but it didn't make sense to me - then I tried it and it didn't do anything.

Cursor needs to be between double quotes (e.g. inside string literal) for ci" to work. See `:help text-objects`.

Re: Helix: A Neovim inspired editor, written in Rust

#224
post #114

I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Installation was easy and the default configuration is good. Plugging in rust-analyzer still needed a line or two of config file e…

> But I haven't had a need to add any kind of plugin, and it's easy enough to fork a shell for an external process if needed. For me, coming from writing Clojure with Neovim + vim-sexp + vim-fireplace, I would need Paredit and REPL integration. Paredit is doable with Treesitter, and I'm actually really excited about Helix's Treesitter integration--- every time I write a non-Lisp language, I miss structural editing, s…

> Paredit is doable with Treesitter

Yes, indeed.

Helix has built-in paredit-like navigation using tree-sitter, the default keybindings are alt-i, alt-o, alt-n and alt-p.

Maybe the Debug Adapter Protocol (DAP) used by vscode will solve the REPL issue in the future. Helix has experimental DAP support but it's still quite rough (but no Clojure DAP server yet).

Re: Helix: A Neovim inspired editor, written in Rust

#225
post #47
post #43

Earlier quoted context omitted.

> Helix is built from the ground up around Tree-Sitter and LSP And what happens in ten or twenty years, when both are obsolete? I don't really care, what technologies my text editor is built on top of, but I sure would like to be able to still use it for writing my memoirs when I'm old.

LSP will not become obsolete, it will evolve. The entire industry is rallying around LSP, and Microsoft is constantly improving the protocol. In "ten or twenty years" LSP will have become a required feature for every programming language and every text editor. It will be essentially impossible to replace it with any other technology because of the massive investment already made in the ecosystem. I can imagine Tree-S…

Unless the protocol changes to specifically address this, I find it unlikely that LSP will ever be a full solution for real-time syntax highlighting. The amount of JSON that has to be slung interprocess on each edit is just too much. Providing extra semantic highlighting on top of a built in option, absolutely, but I don't think it can replace an in-process, specifically incremental option like Tree-sitter or Sublime/TextMate language defs (or a completely custom solution like JetBrains, Nova, etc.).

Re: Helix: A Neovim inspired editor, written in Rust

#226
post #211

Earlier quoted context omitted.

>I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Do you have some supernatural ability to quickly (re)learn muscle memory for new keybindings? I’d consider myself a fairly advanc…

what does `ci"` do in vim? I'm decent with vim, but it didn't make sense to me - then I tried it and it didn't do anything.

ci is "change inner ..."

If we use | to mark our cursor, and you have your cursor inside quote: '"he|re"'

ci" would replace everything inside giving you '"|"' and putting you in insert mode.

cab would aso remove the quotation marks and give you '|'

With ce or cw you'd get '"he"' and cE or cW would give you '"he'

Re: Helix: A Neovim inspired editor, written in Rust

#227
post #115
post #10

I fully expect Helix to replace Vim, Neovim, and Kakoune for most users in the long run. Helix is built from the ground up around Tree-Sitter and LSP. This means you get the best syntax highlighting available, and IDE-like functionality, with zero configuration required other than installing the appropriate language server. Those are by far the most important features for a text editor to have, and crucially, they ar…

> Regrettably, Helix has inherited Vim's worst design flaw, namely being unusable with non-English keyboard layouts How so? I find the default helix shorcuts to be generally quite close to "ascii text input" - that is: ctrl, shift, alt, a-z and regular punctation? FWIW I work on a Norwegian layout on a Mac, which is rather horrible for programming and shell use (option-7 for pipe, shift-option-k+space for tilde (!?),…

> How so? I find the default helix shorcuts to be generally quite close to "ascii text input" - that is: ctrl, shift, alt, a-z and regular punctation?

Try it with a non-Latin script language. It's borderline unusable.

Nothing works in Normal mode. You have to manually switch back to English any time you switch to Normal mode and back to the other language in Insert/Replace mode, or when typing parameters to things like :s.

No other editor requires you to switch language back and forth just to use the editor's commands.

Re: Helix: A Neovim inspired editor, written in Rust

#228

Earlier quoted context omitted.

>Those are by far the most important features for a text editor to have I'd say that those features are useful for source code editing, not text in general.

I'd say that has been true in the past (and is still mostly true today), but I think this will change in the future. I have been using lsp+treesitter for markdown editing and it's been an excellent experience. It's still early days, but with treesitter and lsp being as universal as they are I've been seeing a lot of people just experimenting with what's possible. So yes, they are essential only for source code editin…

I am curious, what features does an LSP server provide for such a simple format as markdown?

Re: Helix: A Neovim inspired editor, written in Rust

#229
post #221

Earlier quoted context omitted.

>I've used Helix for all my recreational programming projects (in Rust) for about 6 months and I've written about 10kLOC of code with it. Still using vim at $WORK for a variety of reasons (giant c++ codebase that does not easily plug in to clangd/LSP), but I might be doing the switch soon. Do you have some supernatural ability to quickly (re)learn muscle memory for new keybindings? I’d consider myself a fairly advanc…

The keybindings are pretty similar, the paradigm change from verb-noun to noun-verb and the multiple cursor paradigm are bigger changes. I got used to it with my brief affair with Kakoune. The Vim muscle memory will be quite helpful and not a whole lot of unlearning is necessary. hjkl navigation and other familiar concepts are similar in Helix and Vim. Vim ci" translates to Helix mi"c. After the first key press (m),…

hjkl are definitely table stakes for a vim-ish editor, but I also can’t live without 0 and $. Making me move my hand over to find home and end misses the point of hjkl entirely.

Re: Helix: A Neovim inspired editor, written in Rust

#230
post #159

Does this 'written in Rust, written in Zig, written in Go' make any difference in the user experience? See this often nowadays.

Right, except for libraries or language-specific toolchain, the only legitimate reason to mention language in the title is to suggest doubt it was possible.

Hey ncmncm, I know this is off-topic, but I just wanted to say that I really enjoyed your informative comments on high performance low-latency architectures. I was wondering, could I ask you a question via email?
Post reply on HN