Get Started
Rsvim is the Vim editor reinvented in Rust+TypeScript. It follows main features, concepts and philosophy of (Neo)Vim, developed with Rust, Tokio and V8 JavaScript engine, all components are redesigned/reinvented/reimplemented from scratch in a modern development approach. The most prominent one among many highlights of Rsvim is its first-class citizen support for JavaScript (ECMAScript) and TypeScript as configuration script.
What distinguishes Rsvim from other two:
- With Tokio's async multi-threaded runtime, user input is handled seamlessly alongside various file I/O, network and CPU-intensive tasks. Furthermore, JavaScript
Promise(includingasync/await) is natively handled as well. - Multi-file modules and plugins utilize standard ES module
importdeclarations. NPM package format is also supported, thereby all plugins can be distributed and versioned directly via the npmjs registry. - TypeScript is parsed and transformed into JavaScript on the fly.
- Script first. From one perspective, you can think of js/ts as configurations for Rsvim. In another, it can be treat as a highly specialised javascript-based runtime akin to Node.js and Deno, but purpose-built for text editor:
stdinfor receiving terminal inputs,stdoutfor rendering the interface.
Rsvim is developed by the rsvim community. The project is hosted on GitHub, with documentation available on GitHub Pages. Both are licensed under Vim License in accordance with the Vim project. Perfect compatibility with existing Vimscript community (for Vim) and Lua community (for Neovim) is unrealistic, breaking changes are expected and unavoidable.