neovcs.vim ๐ŸŒฑ

October 13, 2025 ยท View on GitHub

VCS support for Neovim

Basic support for:

Installation ๐Ÿง™

Lazy

Add the following lines on the NeoVim config file (Lua):

require('lazy').setup({
  {
    'https://github.com/adelarsq/neovcs.vim',
    keys = {
        '<leader>v',
    },
    config = function ()
        require('neovcs').setup()
    end
  },
}, {})

Plug

Add the following lines on the Vim/NeoVim config file:

Plug 'https://github.com/adelarsq/neovcs.vim'

lua require('neovcs').setup()

Then open the editor and install with PlugInstall.

Dein

Add the following lines on the Vim/NeoVim config file:

call dein#add('adelarsq/neovcs.vim')

lua require('neovcs').setup()

Then open the editor and install with call dein#install().

Packer

use 'adelarsq/neovcs.vim'

require('neovcs').setup()

Configurations ๐Ÿงฉ

Emojis on commit messages are disabled by default. Enabled with vim.g.neovcs_enable_emojis == true.

Mappings ๐Ÿ—บ

  • <leader>v - help
  • <leader>va - add file. Parameters:
    • 1 Changelist name (just for SVN at moment)
  • <leader>vA - add all files
  • <leader>vb - blame line
  • <leader>vB - blame file
  • <leader>vc - commit. Parameters:
    • 1 Message
    • 2 Changelist name (just for SVN at moment)
  • <leader>vC - commit with amend. Parameters:
    • 1 Message
  • <leader>vd - hunk diff
  • <leader>vD - file diff. Parameters:
    • 1 Revision (just for SVN at moment)
  • <leader>vo - open URL for current line
  • <leader>vO - open URL for repository
  • <leader>vm - mark conflict as resolved for current file
  • <leader>vn - go to next hunk
  • <leader>vN - go to previous hunk
  • <leader>vl - log for current file
  • <leader>vL - log for the project
  • <leader>vr - reload changes (get/send changes from/to remote)
  • <leader>vp - get changes from remote
  • <leader>vP - send changes to remote
  • <leader>vs - status
  • <leader>vt - show branchs
  • <leader>vu - hunk undo
  • <leader>vU - undo last commit
  • <leader>vx - remove file
  • <leader>vX - revert last commit

Commands ๐Ÿ•น

  • VcsName() - get the VCS name. Can be used on status line plugins to show the VCS name for the current repository
  • VcsStatusLine() - get the repository status to use on status lines
  • VcsBranchName() - get the name for the current branch

Supported Plugins ๐Ÿงฉ

  • rcarriga/nvim-notify
  • nvim-tree.lua. Mappings:
    • <leader>va - add file or directory under cursor
    • <leader>vx - remove file or directory under cursor
  • stevearc/oil.nvim. Mappings:
    • <leader>va - add file or directory under cursor
    • <leader>vx - remove file or directory under cursor

Features

Emoji Support for Commits

Just add a prefix based on the table:

Commit TypeTitleDescriptionEmojiReleaseInclude in changelog
featFeaturesA new featureโœจminorwip
fixBug FixesA bug Fix๐Ÿ›patchwip
docsDocumentationDocumentation only changes๐Ÿ“špatch if scope is readmewip
styleStylesChanges that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)๐Ÿ’Ž-wip
refactorCode RefactoringA code change that neither fixes a bug nor adds a feature๐Ÿ“ฆ-wip
perfPerformance ImprovementsA code change that improves performance๐Ÿš€patchwip
testTestsAdding missing tests or correcting existing tests๐Ÿšจ-wip
buildBuildsChanges that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)๐Ÿ› patchwip
ciContinuous IntegrationsChanges to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)โš™๏ธ-wip
choreChoresOther changes that don't modify src or test filesโ™ป๏ธ-wip
revertRevertsReverts a previous commit๐Ÿ—‘-wip

Todo ๐Ÿšง

  • Remove Gitsigns dependency [wip]
  • Root folder based on the current file [wip]
  • Convert all source code to Fennel/Lua
  • Telescope integration
  • Show commit for current line. Based on 1.
  • Hightlight itens on quickfix with diferent colors
  • Support all commands on:
  • On repository for modified files show the lines status, like +3-2~1M

Acknowledgments ๐Ÿ’ก

Thanks goes to these people/projects for inspiration:

Self-plug ๐Ÿ”Œ

If you liked this plugin, also check out:

  • vim-emoji-icon-theme - Emoji/Unicode Icons Theme for Vim and Neovim with support for 40+ plugins and 300+ filetypes
  • neoline.vim - Status Line for Neovim focused on beauty and performance