You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kickstart.nvim/lua/nvim-claude/mappings.lua

67 lines
1.6 KiB
Lua

-- Keybinding mappings for nvim-claude
local M = {}
function M.setup(config, commands)
local prefix = config.prefix or '<leader>c'
-- Basic commands
vim.keymap.set('n', prefix .. 'c', ':ClaudeChat<CR>', {
desc = 'Open Claude chat',
silent = true
})
vim.keymap.set('n', prefix .. 's', ':ClaudeSendBuffer<CR>', {
desc = 'Send buffer to Claude',
silent = true
})
vim.keymap.set('v', prefix .. 'v', ':ClaudeSendSelection<CR>', {
desc = 'Send selection to Claude',
silent = true
})
vim.keymap.set('n', prefix .. 'h', ':ClaudeSendHunk<CR>', {
desc = 'Send git hunk to Claude',
silent = true
})
vim.keymap.set('n', prefix .. 'b', ':ClaudeBg ', {
desc = 'Start background agent',
silent = false -- Allow user to type the task
})
vim.keymap.set('n', prefix .. 'l', ':ClaudeAgents<CR>', {
desc = 'List agents',
silent = true
})
vim.keymap.set('n', prefix .. 'k', ':ClaudeKill<CR>', {
desc = 'Kill agent',
silent = true
})
vim.keymap.set('n', prefix .. 'x', ':ClaudeClean<CR>', {
desc = 'Clean old agents',
silent = true
})
-- Register with which-key if available
local ok, which_key = pcall(require, 'which-key')
if ok then
which_key.register({
[prefix] = {
name = 'Claude',
c = { 'Chat' },
s = { 'Send Buffer' },
v = { 'Send Selection' },
h = { 'Send Git Hunk' },
b = { 'Background Agent' },
l = { 'List Agents' },
k = { 'Kill Agent' },
x = { 'Clean Old Agents' },
}
})
end
end
return M