neovim/neovim
GitHub: neovim/neovim
Neovim 是 Vim 的现代化重构版本,专注于可扩展性和易用性,通过内置 LSP、异步架构和 Lua 脚本支持打造面向开发者的下一代终端编辑体验。
Stars: 98096 | Forks: 6715
文档 |
聊天
[](https://scan.coverity.com/projects/2227)
[](https://repology.org/metapackage/neovim)
[](https://buildd.debian.org/neovim)
[](https://github.com/neovim/neovim/releases/)
Neovim 是一个旨在对 [Vim](https://www.vim.org/) 进行深度重构的项目,其目标如下:
- 简化维护并鼓励[贡献](CONTRIBUTING.md)
- 在多个开发者之间分工协作
- 无需修改核心即可启用[高级 UI]
- 最大化[可扩展性](https://neovim.io/doc/user/api-ui-events.html#api-ui-events)
有关更多信息,请参阅 [Introduction](https://github.com/neovim/neovim/wiki/Introduction) wiki 页面和 [Roadmap](路线图)。
## 功能特性
- 现代化的 [GUI](https://github.com/neovim/neovim/wiki/Related-projects#gui)
- 支持任何语言的 [API 访问](https://github.com/neovim/neovim/wiki/Related-projects#api-clients),包括 C/C++、C#、Clojure、D、Elixir、Go、Haskell、Java/Kotlin、JavaScript/Node.js、Julia、Lisp、Lua、Perl、Python、Racket、Ruby、Rust
- 内置、可编写脚本的[终端模拟器](https://neovim.io/doc/user/terminal.html)
- 异步[任务控制](https://github.com/neovim/neovim/pull/2247)
- 多个编辑器实例之间[共享数据 (shada)](https://github.com/neovim/neovim/pull/2506)
- 支持 [XDG 基础目录](https://github.com/neovim/neovim/pull/3470)
- 兼容大多数 Vim 插件,包括 Ruby 和 Python 插件
完整功能列表请参阅 [`:help nvim-features`][nvim-features],最新版本的重要更改请参阅 [`:help news`][nvim-news]!
## 通过软件包安装
Windows、macOS 和 Linux 的预编译软件包可在
[Releases](https://github.com/neovim/neovim/releases/) 页面找到。
[托管的软件包] 可在 [Homebrew]、[Debian]、[Ubuntu]、[Fedora]、[Arch Linux]、[Void Linux]、[Gentoo] 等平台中找到!
## 从源码安装
详情请参阅 [BUILD.md](./BUILD.md) 和[支持的平台](https://neovim.io/doc/user/support.html#supported-platforms)。
构建系统基于 CMake,但为了方便起见,也提供了一个 Makefile。
在安装完依赖项后,运行以下命令。
```
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
```
要安装到非默认位置:
```
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=/full/path/
make install
```
用于检查构建的 CMake 提示:
- `cmake --build build --target help` 列出所有构建目标。
- `build/CMakeCache.txt`(或 `cmake -LAH build/`)包含所有 CMake 变量的解析值。
- `build/compile_commands.json` 显示每个翻译单元的完整编译器调用。
## 从 Vim 迁移
请参阅 [`:help nvim-from-vim`](https://neovim.io/doc/user/nvim.html#nvim-from-vim) 获取指南。
## 项目结构
```
├─ cmake/ CMake utils
├─ cmake.config/ CMake defines
├─ cmake.deps/ subproject to fetch and build dependencies (optional)
├─ runtime/ plugins and docs
├─ src/nvim/ application source code (see src/nvim/README.md)
│ ├─ api/ API subsystem
│ ├─ eval/ Vimscript subsystem
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
│ ├─ lua/ Lua subsystem
│ ├─ msgpack_rpc/ RPC subsystem
│ ├─ os/ low-level platform code
│ └─ tui/ built-in UI
└─ test/ tests (see test/README.md)
```
## 许可证
自 [b17d96][license-commit] 以来的 Neovim 贡献均采用 Apache 2.0 许可证授权,从 Vim 复制的贡献(由 `vim-patch` 令牌标识)除外。详情请参阅 [LICENSE.txt](./LICENSE.txt)。
标签:API, Bash脚本, DNS解析, GUI, IDE, Lua, Neovim, rizin, Vim, 代码编辑器, 可扩展性, 威胁情报, 开发者工具, 开源项目, 异步编程, 插件开发, 文本编辑器, 终端, 编程工具, 软件开发, 远程代码执行, 重构