banner
orion

orion

中国科学技术大学研究生;数据库内核开发工程师;生产力爱好者;

Lunarvim/NeovimでChatGPTをスムーズに使用する

効果展示#

与 ChatGPT 对话#

image

  • コマンドラインモードでNeoAIと入力すると、ターミナルの右側に対話ボックスが表示され、体験モードはブラウザと同じで、速度もブラウザと同じくらい速いです。
  • Escキーを押すと対話ボックスが隠れます。注意が必要なのは、毎回NeoAIを再入力することは新しいセッションを開始することと同じです。
  • では、対話ボックスを隠した後に新しいセッションを開始せずに対話ボックスを再表示するにはどうすればよいでしょうか?

解释代码#

NeoAIContext

  • ビューモードで渡したいコードを選択し、コマンドラインモードでNeoAIContextと入力すると、選択したコードが ChatGPT にコピーされて送信され、ChatGPT は提供されたコード情報に基づいてより正確に回答できます。
  • コマンドラインモードで直接NeoAIContextと入力すると、バッファ全体がコピーされて送信されます。

写文档#

NeoAIInject

  • コマンドラインモードでNeoAIInject 要書写的文档主题と入力すると、ChatGPT が対応する文書を生成し、現在開いているファイルに挿入します。

配置使用#

添加插件#

Lunarvim ユーザーは、以下のコードを lvim.plugins に追加するだけです:

 {
        "Bryley/neoai.nvim",
        dependencies = {
            "MunifTanjim/nui.nvim",
        },
        cmd = {
            "NeoAI",
            "NeoAIOpen",
            "NeoAIClose",
            "NeoAIToggle",
            "NeoAIContext",
            "NeoAIContextOpen",
            "NeoAIContextClose",
            "NeoAIInject",
            "NeoAIInjectCode",
            "NeoAIInjectContext",
            "NeoAIInjectContextCode",
        },
        keys = {
            { "<leader>as", desc = "テキストを要約する" },
            { "<leader>ag", desc = "gitメッセージを生成する" },
        },
        config = function()
            require('neoai').setup {
                -- 以下はデフォルトのオプションです。変更したいものを自由に上書きしてください
                ui = {
                    output_popup_text = "NeoAI",
                    input_popup_text = "プロンプト",
                    width = 30,               -- パーセンテージ例:30%
                    output_popup_height = 80, -- パーセンテージ例:80%
                    submit = "<Enter>",       -- プロンプトを送信するためのキーbinding
                },
                models = {
                    {
                        name = "openai",
                        model = "gpt-3.5-turbo",
                        params = nil,
                    },
                },
                register_output = {
                    ["g"] = function(output)
                        return output
                    end,
                    ["c"] = require("neoai.utils").extract_code_snippets,
                },
                inject = {
                    cutoff_width = 75,
                },
                prompts = {
                    context_prompt = function(context)
                        return "こんにちは、今後のメッセージのためにいくつかのコンテキストを提供したいです。"
                            .. "これが私たちの今後の会話で参照したいコード/テキストです:\n\n"
                            .. context
                    end,
                },
                mappings = {
                    ["select_up"] = "<C-k>",
                    ["select_down"] = "<C-j>",
                },
                open_api_key_env = "OPENAI_API_KEY",
                shortcuts = {
                    {
                        name = "textify",
                        key = "<leader>as",
                        desc = "AIでテキストを修正する",
                        use_context = true,
                        prompt = [[
                テキストをより読みやすく、明確に、簡潔に書き直し、
                文法、句読点、またはスペルの
                エラーを修正してください
            ]],
                        modes = { "v" },
                        strip_function = nil,
                    },
                    {
                        name = "gitcommit",
                        key = "<leader>ag",
                        desc = "gitコミットメッセージを生成する",
                        use_context = false,
                        prompt = function()
                            return [[
                    次のgit diffを使用して、簡潔で
                    明確なgitコミットメッセージを生成し、
                    75文字以内の短いタイトル要約を作成してください:
                ]] .. vim.fn.system("git diff --cached")
                        end,
                        modes = { "n" },
                        strip_function = nil,
                    },
                },
            }
        end
    },

neoai

添加 OPENAI_API_KEY 环境变量#

  • ~/.zshrc を開きます(bash を使用している場合は~/.bashrc を開きます)
    sudo vim ~/.zshrc
    
  • 最後に以下の内容を追加します(自分の OPENAI トークンに置き換えてください)
    export OPENAI_API_KEY=sk-kSynjjGgqIdsgVIK7iyz$$$$$$$$$$$$KFYkQwJxM8
    
  • 保存して終了します(コマンドラインモードでwqと入力)
  • 変更を有効にします
    source ~/.zshrc
    
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。