| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| neovim [Le 27/05/2025, 19:30] – suppr doc vim (?) / réécriture installation / plus de deb isolé / +appimage / +bob / mise en forme krodelabestiole | neovim [Le 24/06/2026, 15:27] (Version actuelle) – contrib… bcag2 |
|---|
| {{tag>éditeur_de_texte console programmation IDE}} | {{tag>éditeur_de_texte console programmation IDE}} |
| |
| | {{ https://raw.githubusercontent.com/neovim/neovim/refs/heads/master/cmake.packaging/neovim.png?90|Icône de Neovim}} |
| {{ :application:neovim:neovim_logo_2x.png| logo de neovim}} | |
| ====== Neovim ====== | ====== Neovim ====== |
| |
| **[[wpfr>Neovim]]** est un éditeur de texte. C'est un //[[wpfr>Fork_(développement_logiciel)|fork]]// de **[[:Vim]]** dont l'objectif est d'être plus facile à étendre et à maintenir. | **[[wpfr>Neovim]]** est un éditeur de texte. C'est un //[[wpfr>Fork_(développement_logiciel)|fork]]// de **[[:Vim]]** qui vise à être plus facile à étendre et à maintenir.\\ |
| | On peut lui adjoindre des extensions pour en faire un [[:IDE]] puissant et personnalisé. |
| |
| ===== Installation ===== | ===== Installation ===== |
| |
| Il existe plusieurs méthodes pour d'installation au choix : | Il existe plusieurs méthodes d'installation au choix : |
| * **Neovim** est disponible dans les [[#dépôts officiels APT]] d'Ubuntu, mais il s'agit rarement de la dernière version. | * **Neovim** est disponible dans les [[#dépôts officiels APT]] d'Ubuntu, mais il s'agit rarement de la dernière version. |
| * Il est aussi distribué par ses développeurs au format [[#AppImage]]. | * Il est aussi distribué par ses développeurs au format [[#AppImage]]. |
| * Il existe **[[#Bob]]**, un gestionnaire de versions pour **Neovim**. | * **[[#Bob]]** est un gestionnaire de versions pour **Neovim**. |
| |
| ==== dépôts officiels APT ==== | ==== dépôts officiels APT ==== |
| |
| <note>En version de votre [[:versions|version]] d'Ubuntu cette méthode ne permet pas d'installer une version récente de **Neovim**.</note> | <note>En fonction de votre [[:versions|version]] d'Ubuntu cette méthode ne permet pas d'installer une version récente de **Neovim**.</note> |
| |
| **Neovim** est présent dans les [[:dépôts|dépôts Ubuntu]] ([[:deb]]). On peut donc simplement [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>neovim]]'' : | **Neovim** est présent dans les [[:dépôts|dépôts Ubuntu]] ([[:deb]]). On peut donc simplement [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>neovim]]'' : |
| sudo apt install neovim | sudo apt install neovim |
| |
| Pour installer une **[[:AppImage]]** référez-vous avant tout au [[:appimage#installer_un_appimage|chapitre dédié]] au sujet. | Pour installer une **[[:AppImage]]** référez-vous avant tout au [[:appimage#installer_un_appimage|chapitre dédié]] au sujet. |
| |
| En résumé téléchargez le fichier [[https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.appimage]] puis [[:permissions#modifier_les_permissions|rendez-le exécutable]] (clic droit sur le fichier -> //Propriétés// -> //Permissions// -> //Autoriser l’exécution//). Finalement lancez-le en double-cliquant dessus.\\ | En résumé téléchargez le fichier ''[[https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.appimage|nvim-linux-x86_64.appimage]]'' puis [[:permissions#modifier_les_permissions|rendez-le exécutable]] (clic droit sur le fichier -> //Propriétés// -> //Permissions// -> //Autoriser l’exécution//). Finalement lancez-le en double-cliquant dessus. |
| Vous pouvez utiliser un service tel que **[[:appimage#go_appimageappimaged|appimaged]]** pour créer automatiquement un [[:raccourci-lanceur|lanceur]]. | |
| |
| Ou en ligne de commande : | Ou en ligne de commande : |
| wget https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.appimage | wget https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.appimage |
| chmod +x nvim-linux-x86_64.appimage | chmod +x nvim-linux-x86_64.appimage |
| mv nvim-linux-x86_64.appimage .local/bin/nvim | mv nvim-linux-x86_64.appimage ~/Applications |
| (puis éventuellement relancer le terminal) | (puis éventuellement relancer le terminal). |
| | |
| | Vous pouvez aussi utiliser un service tel que **[[:appimage#go_appimageappimaged|appimaged]]** pour automatiser ces opérations et créer en plus un [[:raccourci-lanceur|lanceur]] automatiquement. |
| |
| ==== Bob ==== | ==== Bob ==== |
| **[[https://github.com/MordechaiHadad/bob|Bob]]** est un gestionnaire de versions pour **Neovim**. | **[[https://github.com/MordechaiHadad/bob|Bob]]** est un gestionnaire de versions pour **Neovim**. |
| |
| Il n'est malheureusement pas disponible dans les dépôts officiel, mais peut s'installer au moyen de **cargo** (le gestionnaire de paquet de [[wpfr>Rust_(langage)|Rust]], dépôt [[https://crates.io/|crates]]). | Il n'est malheureusement pas disponible dans les [[:depot|dépôts]] officiels, mais peut s'installer au moyen de **Cargo** (le gestionnaire de paquet de [[wpfr>Rust_(langage)|Rust]], dépôt **[[https://crates.io/|crates]]**). |
| | <note>**Cargo** peut utiliser jusqu'à 534 Mo d'espace de stockage !</note> |
| |
| Il faut donc installer **cargo**, pour installer **Bob**, pour installer **Neovim**... | Il faut donc installer **Cargo**, pour installer **Bob**, pour installer **Neovim**... |
| |
| - [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>cargo]]'' :<code>sudo apt install cargo</code> | - [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>cargo]]'' :<code>sudo apt install cargo</code> |
| - puis **Bob** depuis **cargo** :<code>cargo install bob-nvim</code> | - puis **Bob** depuis **Cargo** :<code>cargo install bob-nvim</code> |
| - puis **Neovim** depuis **Bob** :<code>bob install stable</code> | - puis **Neovim** depuis **Bob** :<code>bob install stable</code> |
| |
| ==== alias et vim/vimdiff avec git ==== | ==== alias et vim/vimdiff avec git ==== |
| |
| Vous voudrez sans doute continuer à appeler votre éditeur préféré via les commandes //vi//, //vim// et //vimdiff//?\\ | Vous voudrez sans doute continuer à appeler votre éditeur préféré via les commandes ''vi'', ''vim'' et ''vimdiff'' ?\\ |
| Pour cela, définir les [[:alias]] :\\ | Pour cela, définir les [[:alias]] : |
| <file - .bash_aliases> | <file - .bash_aliases> |
| alias vi='nvim' | alias vi='nvim' |
| </file> | </file> |
| |
| Avec git, il faut définir l'éditeur pour les commits et/ou les correction lors des problèmes de fusion, et si vous utilisiez //vimdiff// (qui n'est autre qu'un alias vers //vim -d//), il suffit de le spécifier dans votre fichier de configuration de [[:git]] : | Avec [[:git]], il faut définir l'éditeur pour les //commits// et/ou les corrections lors des problèmes de fusion, et si vous utilisiez ''vimdiff'' (qui n'est autre qu'un alias vers ''vim -d''), il suffit de le spécifier dans votre fichier de configuration de [[:git]] : |
| <file - .gitconfig> | <file - .gitconfig> |
| [core] | [core] |
| </file> | </file> |
| |
| Pour l'édition des tâches [[:CRON]], il suffit d'exécuter ((src: https://unix.stackexchange.com/questions/311105/permanently-setting-vim-as-the-editor-for-crontab)): | Pour l'édition des tâches [[:CRON]], il suffit d'exécuter :((src: https://unix.stackexchange.com/questions/311105/permanently-setting-vim-as-the-editor-for-crontab)) |
| <code bash> | <code bash> |
| echo 'export EDITOR=nvim' >> ~/.bashrc | echo 'export EDITOR=nvim' >> ~/.bashrc |
| ===== Configuration ===== | ===== Configuration ===== |
| |
| Pour savoir où se trouve le fichier de configuration, dans **Neovim**, on peut exécuter : | Pour avoir des informations sur la configuration, on peut exécuter : |
| <code>:help nvim-config | nvim --version |
| # qui va sans doute vous retourner : | qui, pour plus d'infos, invite à saisir : |
| Use $XDG_CONFIG_HOME/nvim/init.vim` instead of `.vimrc` for your |config | nvim -V1 -v |
| </code> | ... qui invite elle-même à exécuter, depuis **Neovim**, la commande '':checkhealth'' qui retourne beaucoup d'informations. |
| <note important>Les fichiers décris ci-dessous n'existent pas si [[:vim]] n'avait pas été préalablement installé, auquel cas il faut les créer !\\ | |
| Sous Ubuntu le répertoire de config par défaut est ''~/.config'' ((https://neovim.io/doc/user/starting.html#base-directories)) | Pour savoir où se trouve le fichier de configuration, dans **Neovim**, on peut exécuter la commande '':help nvim-config'', qui va sans doute retourner : |
| | Use $XDG_CONFIG_HOME/nvim/init.vim` instead of `.vimrc` for your config |
| | |
| | <note important> |
| | Les fichiers décrits ci-dessous n'existent pas si **[[:Vim]]** n'avait pas été préalablement installé, auquel cas on peut les créer. |
| | |
| | Sous Ubuntu le [[:arborescence#stockage_des_configurations|répertoire de configuration]] par défaut est ''~/.config''.((https://neovim.io/doc/user/starting.html#base-directories)) |
| </note> | </note> |
| Le premier fichier de configuration lu par **Neovim** est le fichier ''~/.config/nvim/init.vim'' | |
| Par défaut, celui-ci //source// ''~/.vimrc'' | Le premier fichier de configuration lu par **Neovim** est le fichier ''~/.config/nvim/init.vim'' (ou ''~/.config/nvim/init.lua'').\\ |
| on peut remplacer comme source ''~/.vim/vimrc'' | Par défaut, celui-ci appelle ''~/.vimrc''. Pour récupérer sa configuration de **[[:Vim]]**, voir la [[https://neovim.io/doc/user/nvim/#_transitioning-from-vim|documentation officielle]]. |
| |
| Dans ''~/.vim/vimrc'',\\ | Dans ''~/.vim/vimrc'',\\ |
| pour pouvoir utiliser les raccourcis classiques de clavier pour les coller/supprimer à partir du presse-papier système :(((//en//) https://neovim.io/doc/user/provider.html#clipboard)) | pour pouvoir utiliser les raccourcis classiques de clavier pour les coller/supprimer à partir du presse-papier système :(((//en//) https://neovim.io/doc/user/provider.html#clipboard)) |
| <code> | <code bash> |
| set clipboard+=unnamedplus | set clipboard+=unnamedplus |
| </code> | </code> |
| | Si la ligne ci-dessus fonctionne sous [[:focal]] ou [[:jammy]], ça ne semble plus fonctionner sous [[:noble]]. Pour cette version,((source : [[https://askubuntu.com/a/1555422/385361]])) [[:deb#installer_un_paquet_deb|installer]] ''[[apt>xclip]]'' et modifier le fichier de configuration //vimrc// avec : |
| | <code bash> |
| | let clipboard="xclip" |
| | </code> |
| | |
| ajout de la ligne d’état (//statusline//, //ruler//), notamment pour avoir le nom du fichier et le numéro de colonne du curseur : | ajout de la ligne d’état (//statusline//, //ruler//), notamment pour avoir le nom du fichier et le numéro de colonne du curseur : |
| <code> | <code bash> |
| set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P | set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P |
| </code> | </code> |
| | |
| | ==== Lanceur ==== |
| | |
| | On peut ajouter un [[:raccourci-lanceur|lanceur]] pour pouvoir depuis [[:nautilus|Fichier]] faire un clic-droit puis //ouvrir avec// … neovim.\\ |
| | Pour cela, ajouter le fichier suivant dans ''/usr/share/applications'' : |
| | <file - neovim.desktop> |
| | [Desktop Entry] |
| | Name=Neovim |
| | GenericName=Text Editor |
| | GenericName[fr]=Éditeur de texte |
| | Comment=Edit text files |
| | Comment[en_GB]=Edit text files |
| | Comment[fr]=Éditer des fichiers texte |
| | TryExec=nvim |
| | Exec=nvim %F |
| | Terminal=true |
| | Type=Application |
| | Keywords=Text;editor; |
| | Keywords[fr]=Texte;éditeur; |
| | Icon=nvim |
| | Categories=Utility;TextEditor; |
| | StartupNotify=false |
| | MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; |
| | </file> |
| |
| ==== Répertoires ==== | ==== Répertoires ==== |
| |
| cf. [[vim#correcteur_s_orthographique_s|Vim correcteur orthographique]] qui fonctionne aussi dans **Neovim**. | cf. [[vim#correcteur_s_orthographique_s|Vim correcteur orthographique]] qui fonctionne aussi dans **Neovim**. |
| | |
| | ==== Language Server Protocol (LSP) ==== |
| | Neovim dispose d’un client LSP qui peut donc profiter des fonctionnalités associés à un/des serveur(s) LSP. |
| | |
| | FIXME comment installer un server LSP, ref : https://neovim.io/doc/user/lsp.html |
| | |
| | Pour installer //nvim-lspconfig// qui doit faciliter la configuration de neovim :\\ |
| | Se reporter au § https://github.com/neovim/nvim-lspconfig?tab=readme-ov-file#quickstart |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| ---- | ---- |
| |
| //Contributeurs : [[:utilisateurs:krodelabestiole]]...// | //Contributeurs : [[:utilisateurs:bcag2]], [[:utilisateurs:krodelabestiole]]...// |
| |