Create beautiful, standardized commits using Conventional Commits and Gitmojis directly from Neovim.
recorded with asciinema, some emojis are looking weird :(
- 🔍 Fuzzy search for commit types and emojis
- 👀 Preview before committing
- 📝 Full vim-style editing
- 🎯 No dependencies
Using lazy.nvim
{
'zerbiniandrea/conventional-commits.nvim',
cmd = 'ConventionalCommit',
config = function()
require('conventional-commits').setup({
-- Optional configuration here
})
end,
keys = {
{ '<leader>gc', '<cmd>ConventionalCommit<cr>', desc = 'Conventional Commit' },
},
}The plugin follows standard Neovim plugin structure and should work with any plugin manager.
:ConventionalCommitDefault keymap: <leader>gc
require('conventional-commits').setup({
show_emoji_step = true, -- Show emoji selection step
show_preview = true, -- Show preview before committing
border = 'rounded', -- Border style ('rounded', 'single', 'double', 'solid')
-- Customize commit types
commit_types = {
{ key = 'feat', description = 'A new feature' },
{ key = 'fix', description = 'A bug fix' },
{ key = 'docs', description = 'Documentation changes' },
{ key = 'refactor', description = 'Code refactoring' },
-- Add your own types...
},
-- Emojis are loaded from gitmojis.json
-- Override if you want custom emojis:
-- emojis = { { key = '✨', name = 'sparkles', description = 'new feature' } },
})- Type to filter (fuzzy search),
↓/↑orCtrl-n/Ctrl-pto navigate <CR>to select,<Esc>to cancel
