vim out of the box

**TL;DR** This is a campaign to add a full time developer to [Neovim](, significantly accelerating its progress. ## **Neovim is the future of Vim** > “Neovim is exactly what it claims to be. It fixes every issue I have with Vim” -- [Geoff Greer](, [ag]( developer > “I know emacs has done this for ages but the new terminal integrated into @Neovim is awesome” -- [@wezm]( > “Outstanding communication and handling of bugs from @Neovim. Exemplary FOSS project in my experience so far.” -- [@telemachus]( ## **What is Neovim?** Neovim is an ambitious (yet careful) refactor of Vim. Primary goals of the project are: * Refactor the code to improve maintenance * Implement new advanced features * Expose a better, more powerful plugin system * Have a more open development model, where contributions are more readily accepted, and the criteria for acceptance is clear. ## **What has been achieved:** * Complete job control API for managing multiple processes asynchronously. This enabled the creation of projects like [Neomake]( * Powerful msgpack-rpc API and UI architecture which enabled the creation of numerous [external GUIs]( projects such as [NyaoVim](, [Neovim-Qt](, [VimR]( and [SolidOak]( (an IDE for Rust). * Great infrastructure for functional testing. We test the user interface with a Lua-based DSL. * Built-in terminal emulator that not only lets you run interactive programs inside Neovim, but also script and control those programs to create advanced workflows like integration with REPLs and [debuggers]( ## **Why Neovim needs your support** There's still a lot of work to do, and some drastic changes are hard to implement without full-time commitment. Here's some of what we have planned: * Cross platform built-in GUI, a C port/refactor of the [pygtk GUI]( prototype * More complete client/server features: * Attach/detach to Neovim instances running in the background(like tmux) * Connect to remote instances. Use a Neovim GUI with it's built-in terminal emulator to manage servers, for example. * Be used as the emacsclient/server combo, without losing Vim's lightweightness! * Support multiple screens of different sizes. This will enable the creation of advanced GUIs that displays windows with different fonts/sizes, for example. * Buffer change notifications, to simplify the creation of projects like [neovim-atom]( which integrate Neovim with another editor or IDE. * Implement more language bindings for [remote plugins](, such a javascript (node.js), ruby, go and even rust. To handle all that, plus reviewing an increasing number of pull requests being received every day, this campaign helps fund a full-time dedicated resource. You can make that happen by pledging a small amount each month.