6 ms·
According to the feature-set, this is basically NeoVIM. * Separation into front-end and back-end: NeoVIM does this. The UI uses the same interface a plugin doe
by fritzy 10y ago
According to the feature-set, this is basically NeoVIM.
* Separation into front-end and back-end: NeoVIM does this. The UI uses the same interface a plugin does.
* Asynchronous operations: NeoVIM uses libuv to do this (same asynchronous C++ lib as NodeJS).
* Plug-ins over scripting: Yup, NeoVIM does this, as well as dropping vimscript (although it will compile vimscript into Lua for you).
* JSON: NeoVIM uses msgpack, which is significantly less overhead than JSON, but structure compatible.
The two other features listed are Rust and rope-structures, which are implimentation specifics that don't affect users or plugin writers at all.
Edit: The more the merrier! And it's good to see more projects using Rust, but I don't see this as a strong need. See https://github.com/rogual/neovim-dot-app https://github.com/rogual/neovim-dot-app for a nice native Mac UI plugin/client for neovim.
- grblovrflowerrr 10y agoI think the overlap in features demonstrates popular appeal for such features in our tools. I think the details of how they're implemented are pretty important to users too so there's space for innovation even if the feature set is the same on the surface. Another feature mentioned in the introduction is this: * Developer friendliness. It should be easy to customize xi editor, whether by adding plug-ins or hacking on the core. I'm vaguely familiar with NeoVIM, is the core "hackable"? This is really subjective territory but I'm guessing the author is implying that the xi core code is also optimized for human understandability and extensibility and that new code is judged by those criteria as well as the other stuff.
- raphlinus 10y agoNeoVIM is great, and obviously it has been inspiration. I think it remains to be seen whether NeoVIM can deliver an experience that feels like a modern editor. My experience is that projects which attempt to layer a GUI on top of an existing, mature console UI end up leaking bits of the underlying UI. I'm thinking mostly of the various TeX shells here. A large part of my motivation for starting this project is to explore how suitable Rust is for this kind of work. End users shouldn't have to care, they should judge it strictly by the quality of what it delivers. But I'm hoping this project will be interesting to Rust programmers for a number of reasons.
- coldtea 10y ago>NeoVIM is great, and obviously it has been inspiration. I think it remains to be seen whether NeoVIM can deliver an experience that feels like a modern editor. Well, when it comes to this new editor, doesn't it remain _even more_ to be seen? At least NeoVIM has all the basics covered already.
- cyphar 10y agoI don't understand why people need a GUI to edit text. And while I donate to the NeoVIM project, I don't really like that they are increasing incompatibility with Vim in order to create a GUI layer. It also bothers me that they didn't just use the GPLv2 (because I find the dual Vim-Apache licensing troubling).
- Myrmornis 10y agoIs your terminal program not a GUI? Or do you not run a graphical window environment at all?
- mikekchar 10y agoNot the OP, but a lot of people (myself included) have minimal mouse interaction even when they use X-windows. For example, I use a tiling window manager and only interact with it through the keyboard. I use urxvt as my terminal emulator and while I suspect it has some kind of mouse support I have no idea what it is because I have never used it. I have my web browser set up so that as much as possible everything is controllable through the keyboard. I move all my windows around, resize, hide, focus with the keyboard. I don't have any menu bars at all. All of the apps I use I have hidden the menu bars if I can because I don't use them. So even with GUI apps, I tend not to use the GUI. I don't think I'm alone. Virtually everything I run is either a terminal app to begin with or can run from the terminal. I have tmux set up to work almost exactly like my X window manager, so if I don't run X I barely notice. I'm just as productive without X window as I am with it except for a very few things: browser, gimp, a few games... Honestly I can't think of very much. It's great that some people like GUIs. I used to use them a lot, but have since found that I'm happier without them. The keyboard is not really a discoverable UI device most of the time, but it can be ridiculously efficient once you learn how to use it. I also have very poor eyesight, so that probably predisposes me to using interfaces where I don't need to use my vision.
- Retra 10y agoIf my car has those same features, is it basically NeoVIM, too?
- threatofrain 10y agoI don't think the comment associating Xi with NeoVim is that critical. It's more of a quick mental summarize-and-compare that other people would've performed as well when peeking at the project.
- umanwizard 10y agoGP's point was that GGP doesn't say anything about what the project actually does or how it's UI works.
- dalailambda 10y agoIn line with your JSON bullet point, I think this project should adopt a smaller/binary data transfer format. Having something that's human readable isn't of that much value in this case, where maximising speed seems to be the goal.
- qbi_ 10y agoAbout NeoVIM I agree with everything except for the fact that - if I'm not mistaken, but maybe I am - the back-end is still tied to the VIM key bindings & modes. I don't think they plan on changing that. Regardless of my personal preference, I always found it odd: the back-end should be independent of what I perceive as an interface "detail". Even if, in this case, the detail is part of the software's identity.
- viraptor 10y agoYes and no. NeoVIM is tied to key bindings as much as VIM is (so you can rebind basically anything). But yes, they basically redo VIM, so modes are definitely staying.
- qbi_ 10y agoThanks for the clarification. What I perceived, and maybe should have said above, was simply that it would be hard for me to make a simple GUI front-end which would follow CUA, for instance, while leveraging the solid back-end. Which is why I gladly welcome the xi project :)