Add claudecode.nvim for email refinement in neomutt

This commit is contained in:
2026-03-10 16:22:28 +01:00
parent 1e0da1267f
commit 9afcc87711

62
vim.org
View File

@@ -131,6 +131,12 @@ Plug 'nvim-telescope/telescope-ui-select.nvim'
Plug 'folke/which-key.nvim'
#+end_src
** Claude Code
#+begin_src vimrc
Plug 'folke/snacks.nvim'
Plug 'coder/claudecode.nvim'
#+end_src
** Plug End
#+begin_src vimrc
call plug#end()
@@ -526,6 +532,13 @@ snoremap <C-K> <Esc>b[sviw<C-G>
#+begin_src vimrc
autocmd FileType mail set spell spelllang=en_us,fr
autocmd FileType mail set textwidth=0
autocmd FileType mail lcd %:p:h
" Start Claude: save, open Claude, add current buffer, then ask to refine
autocmd FileType mail nnoremap <buffer> <leader>ae <cmd>lua ClaudeMailRefine()<cr>
" Finish: accept diff, close Claude pane, save and quit
autocmd FileType mail nnoremap <buffer> <leader>aq <cmd>ClaudeCodeDiffAccept<cr><cmd>ClaudeCode<cr>
function! Mailcomplete(findstart, base)
if a:findstart == 1
@@ -788,6 +801,55 @@ lua << EOF
EOF
#+end_src
** Diff wrap
#+begin_src vimrc
autocmd OptionSet diff if v:option_new | setlocal wrap linebreak | endif
#+end_src
** =claudecode=
#+begin_src vimrc
lua << EOF
require('claudecode').setup({
split_side = "right",
split_width_percentage = 0.35,
})
function ClaudeMailRefine()
local win = vim.api.nvim_get_current_win()
vim.cmd('w')
vim.cmd('ClaudeCode')
vim.defer_fn(function()
if vim.api.nvim_win_is_valid(win) then
vim.api.nvim_set_current_win(win)
end
vim.cmd('ClaudeCodeAdd %')
vim.defer_fn(function()
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
local name = vim.api.nvim_buf_get_name(buf)
if name:match('claude') then
local job_id = vim.b[buf].terminal_job_id
if job_id then
vim.api.nvim_chan_send(job_id, "Refine this email using a single file edit tool call: fix the subject, grammar, clarity and tone all at once. Do not make multiple edits.\r")
break
end
end
end
end, 500)
end, 1000)
end
EOF
nnoremap <leader>ac <cmd>ClaudeCode<cr>
nnoremap <leader>af <cmd>ClaudeCodeFocus<cr>
nnoremap <leader>ar <cmd>ClaudeCode --resume<cr>
nnoremap <leader>aC <cmd>ClaudeCode --continue<cr>
nnoremap <leader>am <cmd>ClaudeCodeSelectModel<cr>
nnoremap <leader>ab <cmd>ClaudeCodeAdd %<cr>
vnoremap <leader>as <cmd>ClaudeCodeSend<cr>
nnoremap <leader>aa <cmd>ClaudeCodeDiffAccept<cr>
nnoremap <leader>ad <cmd>ClaudeCodeDiffDeny<cr>
#+end_src
* Key Bindings
** Quit
#+begin_src vimrc