Instalación y personalización de Codeium en Nvim
Una alternativa a Github Copilot es Codeium, el cual lo podemos integrar con múltiples entornos gráficos de desarrollo. En este artículo trataré la instalación de Codeium como extensión en Nvim configurado con NvChad. A continuación el paso a paso.
Primero necesitaremos una cuenta
Para posteriormente usar este servicio en nvim, necesitaremos tener una cuenta creada en Codeium. Teniendo esto ya hecho, podemos seguir.
Agregamos esta nueva extensión
Procedemos ahora a agregar este coplemento y algunas configuraciones, modificando el archivo ~/.config/nvim/lua/custom/plugins.lua
.
1
2
3
4
5
6
7
8
9
10
11
12
13
# [Otras extensiones]
{
"Exafunction/codeium.vim",
lazy = false,
config = function ()
-- Podemos personalizar '<C-[tecla]>'.
vim.keymap.set('i', '<C-g>', function () return vim.fn['codeium#Accept']() end, { expr = true, silent = true })
vim.keymap.set('i', '<C-,>', function() return vim.fn['codeium#CycleCompletions'](1) end, { expr = true, silent = true })
vim.keymap.set('i', '<C-.>', function() return vim.fn['codeium#CycleCompletions'](-1) end, { expr = true, silent = true })
vim.keymap.set('i', '<C-x>', function() return vim.fn['codeium#Clear']() end, { expr = true, silent = true })
vim.keymap.set('i', '<C-i>', function() return vim.fn['codeium#Chat']() end)
end
},
Hemos agregado los siguientes atajos:
Ctrl + g
aceptar una sugerencia.Ctrl + ,
siguiente sugerencia.Ctrl + .
anterior sugerencia.Ctrl + x
quitar sugerencia.Ctrl + i
habilitar chat con IA.
Nos autenticamos
Ingresamos a Nvim para que se instale el plugin automáticamente, y cuando termine este proceso podremos autenticarnos presionando la tecla de escape y escribiendo :Codeium Auth
, luego solo tendremos que seguir las instrucciones dadas y listo, ya tenemos este asistente de código instalado.
Video de referencia
Si queremos ver más información de todo el proceso de instalación, podemos ver el siguiente video el cual nos dará una idea de lo realizado, cabe agregar que hay diferencias notables a lo que hemos hecho.
Actualización para LazyVim
Si utilizas LazyVim en lugar de NvChad, el proceso es ligeramente diferente y más estructurado. A continuación se detalla el método recomendado para integrar Codeium.
1. Añadir el Plugin y Desactivar Keymaps por Defecto
En LazyVim, cada plugin puede tener su propio archivo de configuración en lua/plugins/
. Para mantener todo organizado, crea el archivo lua/plugins/codeium.lua
y desactiva los atajos por defecto.
1
2
3
4
5
6
7
8
9
-- lua/plugins/codeium.lua
return {
"Exafunction/codeium.vim",
event = "BufEnter",
config = function()
-- Desactiva los keymaps por defecto para definir los nuestros.
vim.g.codeium_disable_bindings = 1
end,
}
2. Configurar Keymaps Personalizados
LazyVim centraliza los atajos de teclado en lua/config/keymaps.lua
. Añade las siguientes líneas a ese archivo para configurar tus atajos personalizados para Codeium:
1
2
3
4
5
6
7
8
9
10
-- lua/config/keymaps.lua
-- (Añadir al final del archivo)
-- Keymaps para Codeium
vim.keymap.set("i", "<C-g>", function() return vim.fn["codeium#Accept"]() end, { expr = true, silent = true, desc = "Codeium: Aceptar" })
vim.keymap.set("i", "<C-,>", function() return vim.fn["codeium#CycleCompletions"](1) end, { expr = true, silent = true, desc = "Codeium: Siguiente" })
vim.keymap.set("i", "<C-.>", function() return vim.fn["codeium#CycleCompletions"](-1) end, { expr = true, silent = true, desc = "Codeium: Anterior" })
vim.keymap.set("i", "<C-x>", function() return vim.fn["codeium#Clear"]() end, { expr = true, silent = true, desc = "Codeium: Limpiar" })
vim.keymap.set("n", "<C-i>", function() vim.fn["codeium#Chat"]() end, { silent = true, desc = "Codeium: Chat" })
3. Autenticación
Al igual que con NvChad, después de reiniciar Nvim, ejecuta :Codeium Auth
para autenticar tu cuenta y empezar a usar el asistente.