Show HN: Ki Editor - the multicursor syntactical editor
Ki Editor is a modal text editor for multi-cursor structural editing, featuring syntax-based selections, customizable themes, and an active community offering resources and practical editing recipes for users.
Read original articleKi Editor is a modal text editor designed for multi-cursor structural editing, pronounced as /kɪ/ and meaning "tree" in Japanese. It operates in different modes, allowing users to perform various editing tasks efficiently. The editor features core movements, selection modes based on syntax or regex, and supports both local and global searches. Users can execute a range of actions, including clipboard-related tasks and movement commands, enhancing their editing experience. Ki Editor also includes a file explorer, prompt, and customizable themes, making it versatile for different user preferences. The community around Ki Editor is active, with resources available for collaboration and sharing tips. Users can find practical recipes for common tasks, such as removing print statements, sorting TODO lists, renaming variables, and performing case-agnostic search and replace. The editor's design emphasizes efficiency and flexibility, catering to both novice and experienced programmers.
- Ki Editor is a modal editor that supports multi-cursor structural editing.
- It features various modes for efficient text manipulation and editing.
- The editor allows for syntax and regex-based selections and searches.
- Users can customize themes and configurations to suit their preferences.
- An active community provides resources and showcases practical editing recipes.
Related
Chr – terminal editor inspired by Turbo Pascal editor from 1997
A terminal-based text editor "chr" on GitHub mimics desktop editors' shortcuts, blending modern GUI with retro text mode. Developed with Tui Widget, it welcomes contributions. Installation involves cloning, building, and compiling.
Cursor – The AI Code Editor
Cursor is an AI-powered code editor that enhances developer productivity through predictive editing, natural language coding, and a focus on privacy, receiving positive feedback for its efficiency and user experience.
Anvil: Graphical, multi-pane tiling editor
Anvil is a multi-pane tiling text editor that emphasizes mouse usage, featuring syntax highlighting, multiple cursors, remote file editing, and is inspired by the Acme editor, supported by GIO and Go communities.
Show HN: A retro terminal text editor for GNU/Linux coded in C (C-edit)
C-EDIT is an alpha text editor for Linux, mimicking MSDOS EDIT, featuring a simple interface, dynamic buffer, and modular design. Installation requires source code compilation, with future enhancements planned.
Code Smarter, Not Harder: Developing with Cursor and Claude Sonnet
Cursor is an AI-powered code editor that enhances software development by integrating with the Claude Sonnet 3.5 model, allowing users to generate code and reference various sources for context.
- Users appreciate the structured editing capabilities and the innovative approach compared to other modal editors like Kakoune and Helix.
- Several commenters express a desire for improved documentation and user guidance, such as a built-in tutorial and clearer options in the GUI.
- There are requests for additional features, including customizable themes, layout management, and performance improvements in theme browsing.
- Some users compare Ki Editor to other editors, noting its unique command structure and potential ease of learning for newcomers.
- Overall, there is a positive reception of the project, with many users eager to try it out and provide feedback.
To summarize for those who know [Kakoune](https://github.com/mawww/kakoune) or [Helix](https://github.com/helix-editor/helix), the idea is that every command has the form ["selection mode" -> "movement" -> "action"](https://ki-editor.github.io/ki-editor/comparisons/modal-edit...) instead of Kakoune's movement->action.
So, instead of having separate commands for "next character", "next word", "next structural element", there is one command for "next" (as well as [a few additional motions](https://ki-editor.github.io/ki-editor/normal-mode/core-movem...)). Every command starts with a ["selection mode"](https://ki-editor.github.io/ki-editor/normal-mode/selection-...) like "column", "line", or "structural element".
It's hard to know without some practice and experience how much I'd enjoy it, but it is a good idea, and perhaps it'd be easier for a newcomer to learn than Kakoune/Helix.
Thus, Vis is easier to learn than Helix/Kakoune and gives you (IMO) the most useful feature of Helix/Kakoune.
Unfortunately, Vis is also a bit bare-bones, I don't think it has LSP support for instance.
About the editor : I love what I see. I must admit that for me now the ultimate vim-fu I settled upon for navigating/editing is searching/replacing ( with something like traces.vim and `set incsearch on` so it feels nicer ) so this new paradigm makes a lot sense I believe.
Although i have some questions / concerns: - "Command mode" (`:`) seems a bit more different compared to Helix / Kakoune and maybe even VIM. I would have also expected to be able to change the theme like so.
- I couldn't find (after just a bit of skimming around the docs) how to adjust the sizes of e.g. the file-tree. Or well, even change to a different window. I like the concept of having multiple windows within the browser, but couldn't really figure it out.
Also, layouts may be a neat idea to implement, so that e.g. the file browser will always spawn on the exact same location of a defined layout (may as well be pre-defined) - Theme browsing is a little bit slow i feel like, not big of a deal, just something i noticed.
- The docs may also need a way to change from selection based movement (e.g. via Token / ts node) back to character based.
- The gui may need some improvements, maybe it's just subjective perception, but having a small window with all the options there is good, but i couldn't intuitively tell whether or not those were all the options (e.g. in <SPC> mode). Also i am fairly certain there were more options.
- A builtin tutor is also a neat idea, considering that your editor looks very young, i am sure you thought of that, but it's a really easy way to get new users comfortable with using it.
Anyway, very neat project! I will keep an eye out and eventually try and daily it, at least for a week. The structured editing you implemented is REALLY GREAT, like better than i could have done it (or even thought about).
As is, Dance with Kakoune bindings is good enough and supports all of VS Code plugins, so I'm not sure I'll get enough use of Ki to actually get used to its bindings. Or maybe I'll play with it anyway...
P.S. I linked this in [Dance's forum](https://github.com/71/dance/discussions/347), perhaps it'll turn into an actual discussion.
Here's a short video demo if anyone is interested: https://youtu.be/owuuFxDBQh4
Case agnostic search and replace is such a nice feature too. I have no idea why it isn't standard in IDEs.
It was a bit hard to see on mobile - what are the hotkeys in the first demo to select the full function call?
I’m building my own semi-structured editor but it’s specifically for UI design. Love seeing more examples for inspiration!
Good keybinds though, I like it a lot.
going to try this out: the idea of breaking motion -> action into something like topic -> adjective -> action has been kicking around in my head for a while
Aside from that congrats!
Over the years, I've heard many arguments against Emacs but found none of them convincing, especially if you take the point of view that learning a powerful tool can be an essential asset in any profession. Emacs certainly is such a tool.
The same question could be asked about vi(m), although that one at least received some hipster love in recent years. That seems to have cooled down somewhat too, though.
Related
Chr – terminal editor inspired by Turbo Pascal editor from 1997
A terminal-based text editor "chr" on GitHub mimics desktop editors' shortcuts, blending modern GUI with retro text mode. Developed with Tui Widget, it welcomes contributions. Installation involves cloning, building, and compiling.
Cursor – The AI Code Editor
Cursor is an AI-powered code editor that enhances developer productivity through predictive editing, natural language coding, and a focus on privacy, receiving positive feedback for its efficiency and user experience.
Anvil: Graphical, multi-pane tiling editor
Anvil is a multi-pane tiling text editor that emphasizes mouse usage, featuring syntax highlighting, multiple cursors, remote file editing, and is inspired by the Acme editor, supported by GIO and Go communities.
Show HN: A retro terminal text editor for GNU/Linux coded in C (C-edit)
C-EDIT is an alpha text editor for Linux, mimicking MSDOS EDIT, featuring a simple interface, dynamic buffer, and modular design. Installation requires source code compilation, with future enhancements planned.
Code Smarter, Not Harder: Developing with Cursor and Claude Sonnet
Cursor is an AI-powered code editor that enhances software development by integrating with the Claude Sonnet 3.5 model, allowing users to generate code and reference various sources for context.