https://github.com/erf/vid
A minimal vim-like text editor for modern terminals written in Dart
https://github.com/erf/vid
console-application dart neovim terminal text-editor vim vim-like
Last synced: about 2 months ago
JSON representation
A minimal vim-like text editor for modern terminals written in Dart
- Host: GitHub
- URL: https://github.com/erf/vid
- Owner: erf
- Created: 2023-01-05T03:24:10.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-03T11:49:45.000Z (5 months ago)
- Last Synced: 2026-02-04T01:37:16.679Z (5 months ago)
- Topics: console-application, dart, neovim, terminal, text-editor, vim, vim-like
- Language: Dart
- Homepage:
- Size: 1.73 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# vid
A minimal vim-like text editor for modern terminals written in [Dart](https://dart.dev)
> Made for myself for fun and learning
## Documentation
- [Getting Started Guide](docs/GUIDE.md) — quick introduction to vid
- [Keybindings Reference](docs/KEYBINDINGS.md) — complete list of all keybindings
## Features
- vim motions, operators, text objects, visual and command mode
- multiple selections with regex search (`:select `)
- syntax highlighting with theme selector (mono, rosepine, ayu, unicorn)
- LSP support (go to definition, references, rename, format and more..)
- proper emoji and wide character support
- multi-buffer support with interactive popups
- undo and redo
- file-based YAML configuration
## Building
Requires the [Dart SDK](https://dart.dev/get-dart) (3.10+).
See [build.sh](build.sh).
## Configuration
`vid` loads configuration from YAML files at these locations (in order):
1. `./` — local project config (hidden dotfiles)
2. `$XDG_CONFIG_HOME/vid/`
3. `~/.config/vid/`
Two config files are supported:
| Local (project) | Global (~/.config/vid/) | Purpose |
|-----------------|-------------------------|--------|
| `.vid.yaml` | `config.yaml` | Editor settings (see [config.example.yaml](config.example.yaml)) |
| `.vid-lsp.yaml` | `lsp_servers.yaml` | LSP server configs (see [lsp_servers.example.yaml](lsp_servers.example.yaml)) |
## Contributing
I'm open to PR's that align with `vid`'s minimal philosophy.