效果展示#
與 ChatGPT 對話#
- 透過命令行模式輸入
NeoAI
可以在終端右側喚出對話框,體驗模式和瀏覽器一樣,並且速度和使用瀏覽器一樣快。 - 點擊
Esc
鍵可隱藏對話框。需要注意的是,每次重新輸入NeoAI
都相當於打開來一次新會話。 - 那麼如何在隱藏對話框後不開啟新會話且重新喚出對話框呢?
解釋代碼#
- 透過視圖模式選中要傳入的代碼,然後在命令行模式輸入
NeoAIContext
相當於複製並發送了被選中的代碼到 ChatGPT,使得 ChatGPT 能基於你提供的代碼信息進行更準確地回答。 - 如果直接在命令行模式輸入
NeoAIContext
相當於複製並發送整個緩衝區。
寫文檔#
- 命令行模式輸入
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>", -- 提交提示的鍵綁定
},
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
},
添加 OPENAI_API_KEY 環境變量#
- 打開~/.zshrc(如果你使用的是 bash 的話,則打開~/.bashrc)
sudo vim ~/.zshrc
- 在末尾添加如下內容(注意換成你自己的 OPENAI token)
export OPENAI_API_KEY=sk-kSynjjGgqIdsgVIK7iyz$$$$$$$$$$$$KFYkQwJxM8
- 保存退出(命令行模式輸入
wq
) - 使修改生效
source ~/.zshrc