Alternative Copilot gratuite et ultrarapide pour Vim et Neovim
Codeium complète automatiquement votre code avec l'IA dans tous les principaux IDE. Nous avons lancé cette implémentation du plugin Codeium pour Vim et Neovim afin d'apporter cette superpuissance de codage moderne à davantage de développeurs. Consultez notre terrain de jeu si vous souhaitez essayer rapidement Codeium en ligne.
Les contributions sont les bienvenues ! N'hésitez pas à soumettre des demandes d'extraction et des problèmes liés au plugin.
Installez Vim (au moins 9.0.0185) ou Neovim (au moins 0.6)
Installez Exafunction/codeium.vim
à l'aide du gestionnaire de plugins vim de votre choix ou manuellement. Voir Options d'installation ci-dessous.
Exécutez :Codeium Auth
pour configurer le plugin et commencer à utiliser Codeium.
Vous pouvez exécuter :help codeium
pour une liste complète des commandes et des options de configuration, ou consulter ce guide pour un didacticiel rapide sur la façon d'utiliser Codeium.
Pour une liste complète des options de configuration, vous pouvez exécuter :help codeium
. Quelques-unes des options les plus populaires sont présentées ci-dessous.
Codeium fournit les fonctions suivantes pour contrôler les suggestions :
Action | Fonction | Liaison par défaut |
---|---|---|
Effacer la suggestion actuelle | codeium#Clear() |
|
Suggestion suivante | codeium#CycleCompletions(1) |
|
Suggestion précédente | codeium#CycleCompletions(-1) |
|
Insérer une suggestion | codeium#Accept() |
|
Déclencher manuellement une suggestion | codeium#Complete() |
|
Accepter le mot de la suggestion | codeium#AcceptNextWord() |
|
Accepter la ligne de la suggestion | codeium#AcceptNextLine() |
|
Les raccourcis clavier par défaut de Codeium peuvent être désactivés en définissant
let g: codeium_disable_bindings = 1
ou dans Neovim :
vim . g . codeium_disable_bindings = 1
Si vous souhaitez simplement désactiver la liaison
, vous pouvez également utiliser l'option g:codeium_no_map_tab
.
Si vous souhaitez lier les actions ci-dessus à différentes clés, cela pourrait ressembler à ceci dans Vim :
imap codeium#Accept()
imap codeium#AcceptNextWord()
imap codeium#AcceptNextLine()
imap call codeium#CycleCompletions(1)
imap call codeium#CycleCompletions(-1)
imap call codeium#Clear()
Ou dans Neovim (en utilisant wbthomason/packer.nvim ou folke/lazy.nvim) :
-- Remove the `use` here if you're using folke/lazy.nvim.
use {
' Exafunction/codeium.vim ' ,
config = function ()
-- Change '' here to any keycode you like.
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#Accept ' ]() end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#CycleCompletions ' ]( 1 ) end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#CycleCompletions ' ]( - 1 ) end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#Clear ' ]() end , { expr = true , silent = true })
end
}
(Assurez-vous d'avoir exécuté :Codeium Auth
après l'installation.)
Codeium peut être désactivé pour des types de fichiers particuliers en définissant la variable g:codeium_filetypes
dans votre fichier de configuration vim (vimrc/init.vim) :
let g: codeium_filetypes = {
" bash " : v: false ,
" typescript " : v: true ,
}
Codeium est activé par défaut pour la plupart des types de fichiers.
Vous pouvez également désactiver le codeium par défaut avec la variable g:codeium_enabled
, et l'activer manuellement par tampon en exécutant :CodeiumEnable
:
let g: codeium_enabled = v: false
ou dans Neovim :
vim . g . codeium_enabled = false
Ou vous pouvez désactiver le codeium pour tous les types de fichiers avec la variable g:codeium_filetypes_disabled_by_default
et utiliser la variable g:codeium_filetypes
pour activer sélectivement le codeium pour les types de fichiers spécifiés :
" let g:codeium_enabled = v:true
let g: codeium_filetypes_disabled_by_default = v: true
let g: codeium_filetypes = {
" rust " : v: true ,
" typescript " : v: true ,
}
Si vous souhaitez simplement désactiver le déclenchement automatique des complétions :
let g: codeium_manual = v: true " You might want to use `CycleOrComplete()` instead of `CycleCompletions(1)`. " This will make the forward cycling of suggestions also trigger the first " suggestion manually. imapcall codeium#CycleOrComplete()
Pour désactiver le rendu automatique du texte des suggestions (le texte gris qui apparaît pour une suggestion) :
let g: codeium_render = v: false
Le statut Codeium peut être généré en appelant la fonction codeium#GetStatusString()
. Dans Neovim, vous pouvez utiliser vim.api.nvim_call_function("codeium#GetStatusString", {})
à la place. Il produit une chaîne de 3 caractères avec le statut Codeium :
'3/8'
- troisième suggestion sur 8'0'
- Codeium n'a renvoyé aucune suggestion'*'
- en attente de la réponse de Codeium En mode normal, l'état indique si Codeium est activé ou désactivé en affichant 'ON'
ou 'OFF'
.
Afin de l'afficher dans la ligne d'état, ajoutez la ligne suivante à votre .vimrc
:
set statusline+={…}%3{codeium#GetStatusString()}
Variante plus courte sans logo Codeium :
set statusline+=%3{codeium#GetStatusString()}
Veuillez consulter :help statusline
pour plus d'informations sur la création de statusline dans VIM.
vim-airline prend en charge Codeium prêt à l'emploi depuis le commit 3854429d.
L'appel de la fonction codeium#Chat()
ou l'utilisation de la commande Codeium Chat
permettra la recherche et l'indexation dans le projet en cours et lancera Codeium Chat dans une nouvelle fenêtre de navigateur.
: call codeium#Chat ()
:Codeium Chat
La racine du projet est déterminée en recherchant dans le répertoire de travail actuel de Vim certains fichiers ou répertoires spécifiques qui doivent être présents et remonte jusqu'aux répertoires parents jusqu'à ce qu'on en trouve un. Cette liste d'indices est configurable par l'utilisateur et la valeur par défaut est :
let g:codeium_workspace_root_hints = ['.bzr','.git','.hg','.svn','_FOSSIL_','package.json']
Notez que le lancement du chat active la télémétrie.
{
' Exafunction/codeium.vim ' ,
event = ' BufEnter '
}
Plug ' Exafunction/codeium.vim ' , { ' branch ' : ' main ' }
Plugin ' Exafunction/codeium.vim '
use ' Exafunction/codeium.vim '
Exécutez ce qui suit. Sous Windows, vous pouvez remplacer ~/.vim
par $HOME/vimfiles
:
git clone https://github.com/Exafunction/codeium.vim ~ /.vim/pack/Exafunction/start/codeium.vim
Exécutez ce qui suit. Sous Windows, vous pouvez remplacer ~/.config
par $HOME/AppData/Local
:
git clone https://github.com/Exafunction/codeium.vim ~ /.config/nvim/pack/Exafunction/start/codeium.vim