{"id":13870224,"url":"https://github.com/vv-vim/vv","last_synced_at":"2025-07-15T20:32:00.307Z","repository":{"id":37445303,"uuid":"136782442","full_name":"vv-vim/vv","owner":"vv-vim","description":"Neovim client for macOS","archived":false,"fork":false,"pushed_at":"2024-06-27T18:21:34.000Z","size":3301,"stargazers_count":219,"open_issues_count":24,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-06T21:23:52.872Z","etag":null,"topics":["client","electron","gui","macos","neovim","vim"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vv-vim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-10T05:38:54.000Z","updated_at":"2024-07-01T08:25:52.000Z","dependencies_parsed_at":"2024-01-16T08:10:47.142Z","dependency_job_id":"38e72df0-f1a1-440f-a323-fa57f232b151","html_url":"https://github.com/vv-vim/vv","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vv-vim%2Fvv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vv-vim%2Fvv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vv-vim%2Fvv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vv-vim%2Fvv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vv-vim","download_url":"https://codeload.github.com/vv-vim/vv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226068312,"owners_count":17568734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","electron","gui","macos","neovim","vim"],"created_at":"2024-08-05T20:01:35.145Z","updated_at":"2024-11-23T16:31:22.050Z","avatar_url":"https://github.com/vv-vim.png","language":"TypeScript","readme":"# VV\n\nVV is a Neovim client for macOS. A pure, fast, minimalistic Vim experience with good macOS integration. Optimized for speed and nice font rendering.\n\n![VV screenshot](packages/electron/assets/screenshot.png)\n\n- Fast text render via WebGL.\n- OS integration: copy/paste, mouse, scroll.\n- Fullscreen support for native and simple (fast) mode.\n- All app settings configurable via Vimscript.\n- Command line launcher.\n- “Save All” dialog on quit and “Refresh” dialog on external changes.\n- Text zoom.\n\nVV is built on Electron. There are no barriers to porting it to Windows or Linux, or making plugins with Javascript, HTML, and CSS.\n\n## Installation\n\n### Install via Homebrew\n\nVV is available via Homebrew Cask:\n\n```\n$ brew install vv\n```\n\nNOTE: older versions of brew require a special command to install `vv`\n\n```\n$ brew cask install vv\n```\n\nIt will also install Neovim (if it is not installed) and command line launcher `vv`.\n\n### Download\n\nOr you can download the most recent release from the [Releases](https://github.com/vv-vim/vv/releases/latest) page.\n\nYou need Neovim to run VV. You can install it via Homebrew: `$ brew install neovim`. Or you can find Neovim installation instructions here: [https://github.com/neovim/neovim/wiki/Installing-Neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim). Neovim version 0.4.0 and higher is required.\n\n### Build manually\n\nYou can also build it manually. You will need [Node.js](https://nodejs.org/en/download/) and [Yarn](https://yarnpkg.com/lang/en/) installed.\n\n```\n$ git clone git@github.com:vv-vim/vv.git\n$ cd vv\n$ yarn\n$ yarn build:electron\n```\n\nThis will generate a VV.app binary in the dist directory. Copy VV.app to your /Applications folder and add the CLI launcher `vv` to your `/usr/local/bin`.\n\n## Command Line Launcher\n\nYou can use the `vv` command to run VV in a Terminal. Install it via the `VV → Command Line Launcher...` menu item. VV will add the command to your `/usr/local/bin` folder. If you prefer another place, you can link the command manually:\n\n```\nln -s -f /Applications/VV.app/Contents/Resources/bin/vv [dir from $PATH]/vv\n```\n\nUsage: `vv [options] [file ...]`\n\nOptions are passed to `nvim`. You can check available options in nvim help: `nvim --help`.\n\n## Settings\n\nYou can setup VV-specific options via the `:VVset` command. It works the same as the vim built-in command `:set`. For example `:VVset nofullscreen` is the same as `:VVset fullscreen=0`. You can use `:help set` for syntax reference.\n\n- `fullscreen`, `fu`: Switch to fullscreen mode. You can also toggle fullscreen with `Cmd+Ctrl+F`. Default: `0`.\n- `simplefullscreen`, `sfu`: Use simple or standard fullscreen mode. Simple mode is faster than standard macOS fullscreen mode. It does not have any transition animation. Default: `1`.\n- `bold`: Allow bold font. You can completely disable bold even if the colorscheme uses it. Default: `1`.\n- `italic`: Allow italic. Default: `1`.\n- `underline`: Allow underline. Default: `1`.\n- `undercurl`: Allow undercurl. Default: `1`.\n- `strikethrough`: Allow strikethrough. Default: `1`.\n- `fontfamily`: Font family. Syntax is the same as CSS [`font-family`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family). You can use comma-separated list of fonts. It will use first installed font in the list and fallback to default monospace font if none of them installed. Spaces should be excaped by `\\`. For example: `:VVset fontfamily=Menlo,\\ Courier\\ New`. Default: `monospace`.\n- `fontsize`: Font size in pixels. Default: `12`.\n- `lineheight`: Line height related to font size. Pixel value is `fontsize * lineheight`. Default: `1.25`.\n- `letterspacing`: Fine-tuning letter spacing in retina pixels. Can be a negative value. For retina screens the value is physical pixels. For non-retina screens it works differently: it divides the value by 2 and rounds it. For example, `:VVset letterspacing=1` will make characters 1 pixel wider on retina displays and will do nothing on non-retina displays. Value 2 is 2 physical pixels on retina and 1 physical pixel on non-retina. Default: `0`.\n- `windowwidth`, `width`: Window width. Can be a number in pixels or percentage of display width.\n- `windowheight`, `height`: Window height.\n- `windowleft`, `left`: Window position from left. Can be a number in pixels or a percentage. Percent values work the same as the `background-position` rule in CSS. For example: `25%` means that the vertical line on the window that is 25% from the left will be placed at the line that is 25% from the display's left. 0% — the very left, 100% — the very right, 50% — center.\n- `windowtop`, `top`: Window position top.\n- `quitoncloselastwindow`: Quit app on close last window. Default: `0`.\n- `autoupdateinterval`: Autoupdate interval in minutes. `0` — disable autoupdate. Default: `1440`, one day.\n- `openinproject`: Open file in existing VV instance if this file is located inside current directory of this instance. By default it will obey [`switchbuf`](https://neovim.io/doc/user/options.html#'switchbuf') option, but you can set `switchbuf` override as a value of this option, for example: `:VVset openinproject=newtab`. Possible values are: `1` use switchbuf, `0` open in new instance, any valid `switchbuf` value. Default: `1`.\n\nYou can use these settings in your `init.vim` or change them any time. You can check if VV is loaded by checking the `g:vv` variable:\n\n```\nif exists('g:vv')\n  VVset nobold\n  VVset noitalic\n  VVset windowheight=100%\n  VVset windowwidth=60%\n  VVset windowleft=0\n  VVset windowtop=0\nendif\n```\n\nVV also sets `set termguicolors` on startup.\n\n## Development\n\nFirst, you need start a Webpack watch process in a separate terminal:\n\n```\nyarn dev\n```\n\nThen you can run the app:\n\n```\nyarn start:electron\n```\n\nYou can run tests with `yarn test` and ESLint with `yarn lint` commands.\n\nIt is written on TypeScript, but it uses Babel to build. It does not check types during the build. If you want do do type check manually you can run it with `yarn typecheck`.\n\n## Server\n\nYou can run Neovim remotely in browser via VV Server. More info: [packages/server/README.md](packages/server/README.md)\n\n## Browser Renderer\n\n[Browser Renderer](packages/browser-renderer/README.md) is a separate package used in Electron app and Server.\n\n## Name\n\nThe VV name comes from the bash shortcut `vv` that I use to start Vim.\n\n## License\n\nVV is released under the [MIT License](https://opensource.org/licenses/MIT).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvv-vim%2Fvv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvv-vim%2Fvv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvv-vim%2Fvv/lists"}