Get Started
JavaScript API references are available in API References.
Rsvim is the Vim editor reinvented in Rust+TypeScript. It follows main features, concepts and philosophy of Vim and Neovim, 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, terminal input is processed asynchronously along with all various file I/O, network and CPU-bound tasks.
- JavaScript
Promise
,async
/await
is natively handled by tokio's async tasks. - Multi-file modules and plugins are structured via ESCM modules
import
keyword implementation. - TypeScript is parsed and transformed into JavaScript and executed by V8 engine on the fly.
- (TODO) NPM package is accepted as a compatible plugin schema, thereby the npm registry can be leveraged to publish/upgrade/distribute all plugins.
From one perspective, you can conceptualise javascript and typescript as configuration languages for Rsvim. In another, Rsvim can be treat as a highly specialised javascript-based runtime akin to Node.js and Deno, but purpose-built for text editor: stdin
for receiving terminal inputs, stdout
for rendering the interface.
Perfect compatibility with existing Vimscript community (for Vim) and Lua community (for Neovim) is unrealistic, breaking changes are expected and unavoidable.
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.