2020-12-30 17:34:38 +03:00
# VimR — Neovim GUI for macOS
2016-06-04 00:43:39 +03:00
2020-12-30 17:34:38 +03:00
[Download ](https://github.com/qvacua/vimr/releases ) • [Documentation ](https://github.com/qvacua/vimr/wiki )
2016-06-04 00:43:39 +03:00
2016-12-01 23:30:31 +03:00
![Screenshot 1 ](https://raw.githubusercontent.com/qvacua/vimr/develop/resources/screenshot1.png )
2017-06-30 22:32:02 +03:00
![Screenshot 2 ](https://raw.githubusercontent.com/qvacua/vimr/develop/resources/screenshot2.png )
2016-07-10 21:57:00 +03:00
2016-07-19 01:33:28 +03:00
## About
2016-07-10 21:57:00 +03:00
2020-12-30 17:34:38 +03:00
Project VimR is a Neovim GUI for macOS.
2020-02-07 19:37:47 +03:00
The goal is to build an editor that uses Neovim inside with many of the convenience
GUI features similar to those present in modern editors. We mainly use Swift,
2020-12-30 17:34:38 +03:00
but also use C/Objective-C when where appropriate.
2016-07-10 21:57:00 +03:00
2019-04-23 23:48:20 +03:00
There are other Neovim GUIs for macOS, e.g. [NyaoVim ](https://github.com/rhysd/NyaoVim ), [neovim-dot-app ](https://github.com/rogual/neovim-dot-app ), [Oni ](https://www.onivim.io ), etc., so why?
2016-08-15 00:02:04 +03:00
2020-12-30 17:34:38 +03:00
- Play around with [Neovim ](https://github.com/qvacua/neovim ),
2020-02-07 19:37:47 +03:00
- play around with Swift (and especially with [RxSwift ](https://github.com/ReactiveX/RxSwift )), and
2016-08-15 00:02:04 +03:00
- (most importantly) have fun!
2020-12-30 17:34:38 +03:00
If you want to support VimR financially, use [Github's Sponsor ](https://github.com/sponsors/qvacua )
2020-06-23 20:15:31 +03:00
or [Bountysource ](https://www.bountysource.com/teams/vimr ).
2020-02-07 19:37:47 +03:00
## Download
Pre-built binaries can be found under [Releases ](https://github.com/qvacua/vimr/releases ).
## Reusable Components
2016-08-16 23:44:15 +03:00
2019-03-29 23:51:37 +03:00
* [RxMessagePort ](https://github.com/qvacua/vimr/blob/develop/RxPack/RxMessagePort.swift ): RxSwift wrapper for local and remote `CFMessagePort` .
2020-12-30 17:34:38 +03:00
* [RxMsgpackRpc ](https://github.com/qvacua/vimr/blob/develop/RxPack/RxMsgpackRpc.swift ): Implementation of MsgpackRpc using RxSwift.
2019-03-29 23:51:37 +03:00
* [RxNeovimApi ](https://github.com/qvacua/vimr/blob/develop/RxPack/RxNeovimApi.swift ): RxSwift wrapper of Neovim API.
2020-12-30 17:34:38 +03:00
* [NvimView ](https://github.com/qvacua/vimr/tree/develop/NvimView ): SwiftPM module which bundles everything, e.g. Neovim's `runtime` -files, needed to embed Neovim in a Cocoa App.
2016-08-16 23:44:15 +03:00
2019-03-05 14:44:10 +03:00
## Some Features
2016-08-01 23:10:41 +03:00
2017-03-30 22:18:32 +03:00
* Markdown preview
2017-04-18 21:48:03 +03:00
* Generic HTML preview (retains the scroll position when reloading)
2016-09-09 13:51:07 +03:00
* Fuzzy file finder a la Xcode's "Open Quickly..."
2019-03-05 14:44:10 +03:00
* Trackpad support: Pinching for zooming and two-finger scrolling.
2016-08-01 23:10:41 +03:00
* Ligatures: Turned off by default. Turn it on in the Preferences.
2016-09-26 20:05:50 +03:00
* Command line tool.
2016-10-06 23:37:46 +03:00
* (Simple) File browser
2017-04-18 21:48:03 +03:00
* Flexible workspace model a la JetBrain's IDEs
2016-07-19 01:33:28 +03:00
2016-06-04 00:43:39 +03:00
## How to Build
2016-11-30 12:47:59 +03:00
First after cloning the VimR source tree you need to initialize git submodules
```bash
2020-02-05 23:06:49 +03:00
git lfs install
2020-02-07 19:37:47 +03:00
git submodule update --init
2016-11-30 12:47:59 +03:00
```
2020-02-07 19:37:47 +03:00
First install `homebrew` , then in the project root:
2016-06-06 19:25:03 +03:00
2016-06-04 00:43:39 +03:00
```bash
2017-12-03 11:59:15 +03:00
xcode-select --install # install the Xcode command line tools, if you haven't already
brew bundle
2016-06-06 19:25:03 +03:00
2020-02-07 19:37:47 +03:00
code_sign=false use_carthage_cache=false ./bin/build_vimr.sh # VimR.app will be placed in build/Build/Products/Release/
2016-08-09 23:01:47 +03:00
```
2016-06-04 00:43:39 +03:00
## Project Setup
2016-06-07 00:29:36 +03:00
### Artifacts Hierarchy
```
2016-07-12 09:13:40 +03:00
VimR.app
2017-12-03 11:59:15 +03:00
+-- NvimView.framework
+-- NvimServer
2016-06-07 00:29:36 +03:00
+-- libnvim
2016-11-22 23:09:54 +03:00
+-- other libs for Neovim
2020-12-30 17:34:38 +03:00
+-- NvimView
+-- NvimServer binary (copied by the build script)
+-- runtime files for Neovim (copied by the build script)
2016-06-07 00:29:36 +03:00
```
2020-12-30 17:34:38 +03:00
### How to develop
2016-06-07 00:29:36 +03:00
2020-12-30 17:34:38 +03:00
See [DEVELOP.md ](docs/develop.md ).
2016-07-10 21:57:00 +03:00
## License
2016-09-10 15:57:56 +03:00
[MIT ](https://github.com/qvacua/vimr/blob/master/LICENSE )
2016-11-06 12:34:27 +03:00
---
If you are here for VimR-MacVim, use the [macvim/master ](https://github.com/qvacua/vimr/tree/macvim/master ) branch and the version [0.8.0 (32) ](https://github.com/qvacua/vimr/releases/tag/v0.8.0-32 ).