{{tag>éditeur_de_texte console programmation IDE}}
{{ :application:neovim:neovim_logo_2x.png| logo de neovim}}
====== Neovim ======
**[[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.
===== Installation =====
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.
* Il est aussi distribué par ses développeurs au format [[#AppImage]].
* **[[#Bob]]** est un gestionnaire de versions pour **Neovim**.
==== dépôts officiels APT ====
En fonction de votre [[:versions|version]] d'Ubuntu cette méthode ne permet pas d'installer une version récente de **Neovim**.
**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]]'' :
sudo apt install neovim
==== AppImage ====
Cette méthode ne permet pas de mettre à jour automatiquement **Neovim** !
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|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.
Ou en ligne de commande :
wget https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.appimage
chmod +x nvim-linux-x86_64.appimage
mv nvim-linux-x86_64.appimage .local/bin/nvim
(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 ====
**[[https://github.com/MordechaiHadad/bob|Bob]]** est un gestionnaire de versions pour **Neovim**.
Il n'est malheureusement pas disponible dans les 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]]).
L'installation de Cargo peut nécessiter jusqu'à 534 Mo d'usage de disque !
Il faut donc installer **Cargo**, pour installer **Bob**, pour installer **Neovim**...
- [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>cargo]]'' :sudo apt install cargo
- puis **Bob** depuis **Cargo** :cargo install bob-nvim
- puis **Neovim** depuis **Bob** :bob install stable
==== alias et vim/vimdiff avec git ====
Vous voudrez sans doute continuer à appeler votre éditeur préféré via les commandes ''vi'', ''vim'' et ''vimdiff'' ?\\
Pour cela, définir les [[:alias]] :
alias vi='nvim'
alias vim='nvim'
alias vimdiff='nvim -d'
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]] :
[core]
editor = nvim
[diff]
tool = nvimdiff
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))
echo 'export EDITOR=nvim' >> ~/.bashrc
===== Configuration =====
Pour avoir des informations sur la configuration, on peut exécuter :
nvim --version
qui, pour plus d'infos, invite à saisir :
nvim -V1 -v
... qui invite elle-même à exécuter, depuis **Neovim**, la commande '':checkhealth'' qui retourne beaucoup d'informations.
Pour savoir où se trouve le fichier de configuration, dans **Neovim**, on peut exécuter la commande '':help nvim-config'', qui va sans doute vous retourner :
Use $XDG_CONFIG_HOME/nvim/init.vim` instead of `.vimrc` for your config
Les fichiers décris ci-dessous n'existent pas si **[[:vim]]** n'avait pas été préalablement installé, auquel cas on peut les créer.\\
Sous Ubuntu le répertoire de config par défaut est ''~/.config''.((https://neovim.io/doc/user/starting.html#base-directories))
Le premier fichier de configuration lu par **Neovim** est le fichier ''~/.config/nvim/init.vim''.
Par défaut, celui-ci appelle ''~/.vimrc''.
On peut remplacer comme source ''~/.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))
set clipboard+=unnamedplus
Si la ligne ci-dessus fonctionne sous [[:focal]] ou [[:jammy]], ça ne semble plus fonctionner sous [[:noble]]. Pour cette dernière version((src: https://askubuntu.com/a/1555422/385361)), installer sudo apt install xclip
et modifier votre fichier de configuration //vimrc// avec :
let clipboard="xclip"
ajout de la ligne d’état (//statusline//, //ruler//), notamment pour avoir le nom du fichier et le numéro de colonne du curseur :
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
==== 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'' :
[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++;
==== Répertoires ====
Les fichiers de coloration syntaxique se trouvent dans le répertoire ''/usr/share/nvim/runtime/syntax''.
===== Fonctionnalités =====
==== Correcteur orthographique ====
cf. [[vim#correcteur_s_orthographique_s|Vim correcteur orthographique]] qui fonctionne aussi dans **Neovim**.
===== Voir aussi =====
* **(//en//)** [[https://neovim.io/|site officiel]]
* [[https://github.com/neovim/neovim|GitHub]]
* [[https://fabi1cazenave.github.io/slides/2024-jdll-vim-ergo/|Ergonomie Vimiste]] : une excellente initiation à l'utilisation de **Neovim**, **[[:Vim]]**, etc.
----
//Contributeurs : [[:utilisateurs:krodelabestiole]]...//