This project serves as an alternative to the official Codeium Neovim/Vim plugin, but using the Open-Codeium-Engine instead.
- Ai Code Completion using codebase context
- Ai Chat
First follow the setup instructions in the engine repository.
Second, add BlazeMCworld/open-codeium.nvim
to your plugins, and MunifTanjim/nui.nvim
to its dependencies.
Once done, configure the keybinds. Here is an example:
local codeium = require("codeium")
vim.keymap.set("i", "<Tab>", function()
if codeium.completions.is_shown() then
codeium.completions.accept()
else
vim.fn.feedkeys(" ", "i")
end
end)
vim.keymap.set("i", "<M-Right>", codeium.completions.next)
vim.keymap.set("i", "<M-Left>", codeium.completions.prev)
Valid methods are:
codeium.completions.is_shown()
If a completion is shown at the moment.codeium.completions.accept()
Accept the current completion.codeium.completions.next()
Show the next completion.codeium.completions.prev()
Show the previous completion.codeium.completions.dispose()
Reject the suggestions.
Firstly, you will need to login, for that use :CodeiumLogin
. Once that is done you can use your specified keybindings for the completions.
For getting better completions, you will most likely want to use :CodeiumIndexAdd
with a file or directory, to add it to the index.
The indexing happens locally, and may take a bit. When specifying a directory, all files will be added recursively. Files already indexed will be skipped, unless they were changed since then. You are recommended to setup a .codeiumignore
file, according to the documentation in the engine repository, in case you want to automatically exclude files.
For opening the chat, just use :CodeiumChat
, the chat history will be kept, as long as neovim is open, or until you type /clear
(or its alias /new
) into the chat box.