lua << EOF require("gp").setup({ agents = { { name = "ChatGPT4", chat = true, command = true, -- string with model name or table with model name and parameters model = { model = "gpt-4o-2024-05-13", temperature = 1.1, top_p = 1 }, -- system prompt (use this to specify the persona/role of the AI) system_prompt = "レスポンスは、日本語で回答してください\n\n" .. "1つずつ、step by stepで説明してください。\n\n", }, }, chat_assistant_prefix = { "🤖:", "[{{agent}}]" }, chat_dir = vim.fn.stdpath("data"):gsub("/$", "") .. "/gp/chats", chat_shortcut_respond = { modes = { "n", "i", "v", "x" }, shortcut = "<C-c>r" }, chat_shortcut_delete = { modes = { "n", "i", "v", "x" }, shortcut = "<C-c>d" }, chat_shortcut_stop = { modes = { "n", "i", "v", "x" }, shortcut = "<C-c>s" }, chat_shortcut_new = { modes = { "n", "i", "v", "x" }, shortcut = "<C-c>c" }, }) EOF " 選択範囲のテキストをechoするコマンド function! GpRewriteTidyToMarkdown() let prompt =<< trim END - 英語の記事は日本語に翻訳する - 誤字脱字を修正する - 要約はmarkdown形式とする - 最初の項目に、タイトルは以下のフォーマットとする - `* {{記事のタイトル}}:` - ``で強調されたテンプレートのフォーマットに従う - 次の項目に、## Raw input という項目だけを追加し、入力されたテキストをそのままコピーしてください - 次の項目に、## Structure(構造) という項目を追加し、人間が書き込むスペースのため、空欄にしてください - 次の項目に、## Process(再現性)という項目を追加し、人間が書き込むスペースのため、空欄にしてください - 次の項目に、## summary(内容を2~3行で要約する) という項目を追加し、人間が書き込むスペースのため、空欄にしてください - キャッチフレーズまで作成したら、処理を終了してください。 END " 選択範囲のテキストを出力 echo prompt exe "GpRewrite " . join(prompt, "\n") endfunction " コマンドを定義(ビジュアルモード用) command! -range=% GpRewriteTidyToMarkdown call GpRewriteTidyToMarkdown() " チャット画面呼び出し nnoremap <silent> ,, :GpChatNew vsplit<CR> nnoremap <silent> <M-g> :GpChatNew vsplit<CR> nnoremap <silent> <D-g> :GpChatNew vsplit<CR> vmap <silent> <CR><CR> :GpChatNew vsplit<CR> vnoremap <silent> ,, :GpChatPaste vsplit<CR> vnoremap <silent> <leader>gr :GpRewrite " .gitリポジトリのトップに、コンテキストとなるファイルを作成する(GpRewriteとかするとき、文脈として参照される) nnoremap <silent> <leader>gP :GpContext<CR>