https://github.com/Nimaoth/Nev
Nev is a keyboard focused GUI and terminal text editor
https://github.com/Nimaoth/Nev
editor nim programming-language projection-editor projectional-editor text-editor
Last synced: about 1 month ago
JSON representation
Nev is a keyboard focused GUI and terminal text editor
- Host: GitHub
- URL: https://github.com/Nimaoth/Nev
- Owner: Nimaoth
- License: other
- Created: 2022-06-24T14:55:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-03T16:11:50.000Z (about 1 month ago)
- Last Synced: 2025-10-03T18:29:33.790Z (about 1 month ago)
- Topics: editor, nim, programming-language, projection-editor, projectional-editor, text-editor
- Language: Nim
- Homepage:
- Size: 62.2 MB
- Stars: 119
- Watchers: 7
- Forks: 1
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Support: docs/supported_vim_keybindings.md
Awesome Lists containing this project
- awesome-nim - Nev - A keyboard focused GUI and terminal text editor. (Language Features / Editors)
README
# Nev

Nev is a text editor focused on keyboard usage, customizability and speed which runs in the terminal and in a GUI.
It also aims to provide tools for writing code out of the box, like Git integration, syntax highlighting using [Treesitter](https://tree-sitter.github.io/tree-sitter/), language integration using [LSP](https://microsoft.github.io/language-server-protocol) and debugging using [DAP](https://microsoft.github.io/debug-adapter-protocol/).
I'm also experimenting with a programming language system where instead of writing the source code as plain text,
the abstract syntax tree (AST) is edited directly (or rather through _projections_, which are still trees).
This feature is not included in release builds, and has to enabled by compiling with `-D:enableAst=true` (note that it doesn't compile with the latest version, I will continue work on this at a later stage, for now the focus is on making this a good text editor for "normal" programming languages).
Nev is still relatively new, so many things are still missing or need improvement. If you want to contribute check out [this](CONTRIBUTING.md).
There is a [Discord server](https://discord.gg/eJjBMcgP2V) where you can ask questions as well.
## Features
- Vim motions (incomplete)
- [LSP](docs/lsp.md) (incomplete)
- [Syntax highlighting](docs/treesitter.md) using treesitter (no support for nested languages yet)
- Basic debugging using DAP
- [Fuzzy search for various things](docs/finders.md)
- [Sessions](docs/sessions.md)
- [WASM plugins](docs/configuration.md)
- Basic git integration (list/diff/add/stage/unstage/revert changed files)
- [Builtin terminal emulator](docs/docs.md#Terminal) support multiple shells (e.g `bash`, `powershell`, `wsl`)
- [Flexible layout system](docs/docs.md#Layout)
- And many more smaller features...
## Planned features
- Collaborative editing (the foundation exists already, the editor is using CRDTs based on [Zeds](https://github.com/zed-industries/zed) implementation)
- Create custom UI in plugins
- Fine grained permissions for plugins
- Builtin terminal
- Generic tree/table view with fuzzy searching, collapsing nodes, support for large trees. This will be used for e.g. file tree, document symbol outlines, type hierarchies, etc.
- Helix motions
## Installation
Download latest [release](https://github.com/Nimaoth/Nev/releases) or [build from source](docs/building_from_source.md)
## Inspirations
- [Neovim](https://github.com/neovim/neovim)
- [Helix](https://github.com/helix-editor/helix)
- [Zed](https://github.com/zed-industries/zed)
- [JetBrains MPS](https://github.com/JetBrains/MPS)
## Important notes if you intend to use it
- Currently only UTF-8 encoded files are supported
- Carriage return (`0xD`) will be removed when loading, and not added back when saving.
- Language servers and debug adapters have to installed manually at the moment, treesitter parsers require [emscripten](https://github.com/emscripten-core/emscripten)
- Read the [docs](docs/getting_started.md)
## Docs
- [General docs, contains things that don't fit into other files](docs/docs.md)
- [Build from source](docs/building_from_source.md)
- [Getting started](docs/getting_started.md)
- [Cheatsheet](docs/cheatsheet.md)
- [Configuration](docs/configuration.md)
- [Keybindings](docs/keybindings.md)
- [Finders](docs/finders.md)
- [Plugin API](https://nimaoth.github.io/AbsytreeDocs/scripting_nim/htmldocs/theindex.html).
- [Virtual filesystem](docs/virtual_file_system.md)
## Screenshots
Some of these screenshots and GIFs are quite old and things might look different.
### Nev running inside Windows Terminal -> WSL -> Zellij with transparent background

---
### LSP integration

---
### Git integration

---
### Debugging support (breakpoints aren't rendered correctly in the GIF because of recording with asciinema and they use unicode symbols, see screenshot above)

---
### Global and open file finders (and more)

---
### Global search

---
### Themes

---
### LSP completions

---
### Diagnostics, inlay hints and hover information

---
### Fuzzy search for document symbols

---
### View changed/added files in git, and open the diff for files directly, or stage/unstage/revert them

---
### View the git diff in the editor

---