# Vim vs Neovim: source lines of code compared

The Vim vs Neovim comparison on OctoCounts shows side-by-side source line counts for vim/vim and neovim/neovim, counted with the same engine and analysis options on the dates shown in the methodology line: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.

As of 2026-09-14, vim/vim contains 1,959,337 total lines (1,313,276 code) across 3,604 files, while neovim/neovim contains 1,690,245 total lines (1,160,101 code) across 3,743 files as of 2026-09-14. vim/vim and neovim/neovim are similar in size by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [vim/vim](https://octocounts.com/github/vim/vim) | [neovim/neovim](https://octocounts.com/github/neovim/neovim) |
| --- | ---: | ---: |
| Files | 3,604 | 3,743 |
| Total lines | 1,959,337 | 1,690,245 |
| Code lines | 1,313,276 | 1,160,101 |
| Comment lines | 399,309 | 352,460 |
| Blank lines | 246,752 | 177,684 |
| Languages counted | 12 | 12 |

Top languages in vim/vim: Vim Script (42.3% of code), C (33.7% of code), PO File (17.9% of code). Top languages in neovim/neovim: Vim Script (34.4% of code), Lua (29.9% of code), C (23.7% of code). Vim Script, C, PO File, C Header appear in both top language lists; Makefile appears only in vim/vim's top languages; Lua appears only in neovim/neovim's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. vim/vim was counted at ref master (commit 6e67c47e6edd) on 2026-09-14; neovim/neovim was counted at ref master (commit aaee64e00882) on 2026-09-14. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

vim/vim counts the Vim repository: the C core, the large runtime directory of syntax, indent, and filetype scripts, documentation, and test directories. neovim/neovim counts the Neovim repository: its C core (a fork of Vim), a Lua-based runtime, documentation, tests, and bundled third-party sources. Both counts include far more than the editor core itself, and both were taken on the dates shown above.

In both trees, the runtime directories — syntax highlighting, indent rules, and filetype plugins — plus documentation form a large share of the totals, so much of each count is distribution material rather than editor core code, visible when comparing the per-language tables.

The per-language tables show Neovim's Lua runtime alongside its C core, while Vim's counted code is C with its runtime scripts written in Vim's own script language — a reflection of each project's plugin and configuration story.

_Editor repository size does not indicate features, startup time, or resource use; both projects ship runtime files that most users load selectively, so line count is a poor proxy for what an editor does._

Sources: [vim/vim repository](https://github.com/vim/vim) · [neovim/neovim repository](https://github.com/neovim/neovim). Statements verified 2026-09-16.

Evidence and next steps:

- [vim/vim SLOC report](https://octocounts.com/github/vim/vim)
- [neovim/neovim SLOC report](https://octocounts.com/github/neovim/neovim)
- [Compare vim/vim and neovim/neovim interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Fvim%2Fvim&right=https%3A%2F%2Fgithub.com%2Fneovim%2Fneovim)

Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.

## Compare FAQ

### Which has more lines of code, vim/vim or neovim/neovim?

As of 2026-09-14, vim/vim and neovim/neovim are close in size: 1,313,276 vs 1,160,101 code lines, a difference of less than 15%. Neither clearly outsizes the other by this metric.

### Does more source lines of code mean more complexity?

Not necessarily. SLOC measures size, not complexity, quality, or maintainability. A larger codebase can mean more features, more generated or vendored code, more verbose language idioms, or more tests — none of which imply the code is harder to work with. Use SLOC to gauge the scale of what you'd be reading or maintaining, not as a quality signal for vim/vim, neovim/neovim, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. vim/vim was counted at ref master (commit 6e67c47e6edd) on 2026-09-14; neovim/neovim was counted at ref master (commit aaee64e00882) on 2026-09-14. See the counting methodology for ignored directories and analysis options.

### Can I compare a different branch, tag, or commit?

Yes. This page shows the default branch for each repository. Use the interactive comparison tool to pick any public GitHub repository, branch, tag, or commit SHA for both sides and get a fresh side-by-side report.

## Related OctoCounts pages

- [Interactive repository comparison](https://octocounts.com/compare)
- [Recently analyzed repositories](https://octocounts.com/recent)
- [Popular SLOC reports](https://octocounts.com/popular)
- [Trending GitHub repositories](https://octocounts.com/trending)
- [Hall of Monoliths](https://octocounts.com/hall-of-monoliths)
- [Original research: how filtering changes SLOC counts](https://octocounts.com/research)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [SLOC and code metrics glossary](https://octocounts.com/docs/glossary)
- [OctoCounts API docs](https://octocounts.com/docs/api)
