40c9d5672db3166f81fadc24b2445f4d732e3ac3
ChatGPT NeoVim Plugin (Extensively Updated with Chunking)
This plugin integrates a ChatGPT O1 model workflow into Neovim. It allows you to:
-
Generate prompts containing:
- An initial prompt (from
.chatgpt_config.yaml) - A list of directories (also specified in
.chatgpt_config.yaml) from which it gathers the project structure and file contents - Interactive file selection if enabled, so you can pick exactly which directories to include
- Any initial files you define (e.g.,
README.md, etc.)
- An initial prompt (from
-
Copy these prompts to your clipboard to paste into ChatGPT O1.
-
Receive YAML changes from ChatGPT, then run
:ChatGPTPasteto apply them or supply additional files.
New Key Features
- Chunking (
enable_chunking: true): If the combined prompt or file request is too large (exceedstoken_limit), the plugin automatically splits it into multiple chunks. Each chunk is opened in its own buffer, and the first chunk is copied to your clipboard. You can paste them sequentially into ChatGPT to work around size limitations. - Partial Acceptance: If
partial_acceptance: true, you can open a buffer that lists the final changes. Remove or comment out lines you don’t want, then only those changes are applied. - Preview Changes: If
preview_changes: true, you get a buffer showing proposed changes before you apply them. - Interactive File Selection: If
interactive_file_selection: true, you choose which directories from.chatgpt_config.yamlget included in the prompt, reducing token usage. - Improved Debug: If
improved_debug: true, debug logs go into a dedicatedChatGPT_Debug_Logbuffer for easier reading.
Example .chatgpt_config.yaml
project_name: "chatgpt_nvim"
default_prompt_blocks:
- "basic-prompt"
- "workflow-prompt"
directories:
- "."
initial_files:
- "README.md"
debug: false
enable_chunking: true
preview_changes: true
interactive_file_selection: true
partial_acceptance: true
improved_debug: true
token_limit: 3000
Usage
-
:ChatGPT- If
interactive_file_selectionis on, you’ll pick directories to include. - A buffer
ChatGPT_Prompt.mdopens to type your instructions. - Save & close with
:wq→ Ifenable_chunkingis on and the prompt exceedstoken_limit, it’s split into multiple chunks. Each chunk is opened in a buffer, and the first one is copied to your clipboard.
- If
-
Paste Prompt to ChatGPT
- If multiple chunks exist, copy/paste them one by one in ChatGPT.
-
:ChatGPTPaste- The plugin reads the YAML from your clipboard. If it requests more files, the plugin might chunk that request too if large.
- If final changes are provided:
- Optionally preview them (
preview_changes). - Optionally partially accept them (
partial_acceptance). - Then the plugin writes/deletes files as specified.
- Optionally preview them (
Troubleshooting & Tips
- Adjust
token_limitin.chatgpt_config.yamlas needed. - If partial acceptance is confusing, remember to remove or prepend
#to lines you don’t want before saving and closing the buffer. - If chunking occurs, ensure you copy/paste all chunks into ChatGPT in the correct order.
- Check
ChatGPT_Debug_Logifimproved_debugis on, or the Neovim messages ifdebugis on, for detailed info.
Enjoy your improved, more flexible ChatGPT Neovim plugin with chunking support!
Description
Languages
Lua
99.7%
Vim Script
0.3%