Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cursor.vim

A pixel-faithful port of Cursor IDE's default Dark Modern colorscheme to Vim and Neovim.

If you switch between Cursor and (Neo)Vim through the day, this keeps the visual context identical: same backgrounds, same syntax hues, same accents, same diagnostic colors.

cursor.vim screenshot


Features

  • Vim 8+ and Neovim ≥ 0.8 support, single repo, no duplication
  • Treesitter highlight groups (@comment, @function, @keyword.*, …)
  • LSP semantic tokens (@lsp.type.*, @lsp.typemod.*)
  • CoC.nvim semantic token groups (CocSem*) — purple-class fix included
  • Dimmed inlay hints so type hints fade into the background
  • Diagnostics, diff, gitsigns / GitGutter / Signify
  • Telescope, nvim-tree, neo-tree, NERDTree, bufferline, lualine-friendly
  • nvim-cmp, WhichKey, indent-blankline
  • Terminal ANSI colors that match Cursor's integrated terminal
  • True-color only (termguicolors)

Palette

RoleHexNotes
Editor bg#1f1f1feditor.background
Sidebar / status bg#181818sideBar.background
Float bg#252526popups, hover
Cursor line#2a2a2a
Selection#264f78
Accent#0098fffocus border, links
Comment#6a9955italic
String#ce9178
Number#b5cea8
Keyword#569cd6
Control flow#c586c0if / return / import / decorators
Function#dcdcaa
Type / Class#4ec9b0
Variable / Property#9cdcfe
Constant#4fc1ff
Error / Warn / Info / Hint#f14c4c / #cca700 / #3794ff / #b267e6

Install

Neovim — lazy.nvim

{
'fmflurry/cursor.vim',
lazy=false,
priority=1000,
config=function()
require('cursor').setup({
transparent=false,
italic_comments=true,
dim_inlay_hints=true,
desaturate_types=false,
overrides= {
-- Comment = { fg = '#7faa72' },
},
})
end,
}

Or skip the helper module and just:

vim.cmd.colorscheme('cursor')

Neovim — packer.nvim

use { 'fmflurry/cursor.vim', config=function() vim.cmd.colorscheme('cursor') end }

Vim — vim-plug

Plug 'fmflurry/cursor.vim'" then in your vimrc:settermguicolorscolorschemecursor

Manual

git clone https://github.com/fmflurry/cursor.vim ~/.vim/pack/themes/start/cursor.vim
# Neovim:
git clone https://github.com/fmflurry/cursor.vim ~/.config/nvim/pack/themes/start/cursor.vim

Then add to vimrc / init.lua:

settermguicolorscolorschemecursor

Options (Neovim only)

Pass these to require('cursor').setup({ ... }):

OptionDefaultEffect
transparentfalseStrip background from Normal, SignColumn, LineNr, EndOfBuffer
italic_commentstrueMatch Cursor IDE's italic comments
dim_inlay_hintstrueLSP inlay hints render at #5a5a5a italic
desaturate_typesfalseSoften @type / @lsp.type.class from #4ec9b0#7aa89c
overrides{}Table of { Group = { fg, bg, ... } } applied last

CoC.nvim notes

If you use coc.nvim and TypeScript class names look bright purple instead of teal, that's CoC's semantic-token defaults overriding the syntax. cursor.vim ships overrides for every CocSem* group — restart CoC after switching themes:

:colorschemecursor
:CocCommand semanticTokens.refreshCurrent

To dim TS inlay hints, the theme also styles CocInlayHint, CocInlayHintType, CocInlayHintParameter.

Lualine

A matching lualine theme is on the roadmap. For now use:

require('lualine').setup({ options= { theme='auto' } })

Status

🟢 Editor UI · syntax · Treesitter · LSP semantic · CoC.nvim · diagnostics · diff 🟡 Lualine custom theme — pending 🟡 Lightline · airline · heirline themes — pending 🟡 Bufferline custom palette — partial

PRs welcome.

License

MIT — do whatever you want, attribution appreciated.

Credits

  • Cursor IDE team for the original Dark Modern theme this ports.
  • Microsoft VSCode for the upstream Dark Modern palette Cursor forks.
  • Built with help from Claude Code.

About

Cursor IDE (Dark Modern) colorscheme for Vim and Neovim

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages