{{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]]** dont l'objectif est d'être plus facile à étendre et à maintenir.
===== Installation =====
Il existe plusieurs méthodes pour 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]].
* Il existe **[[#Bob]]**, un gestionnaire de versions pour **Neovim**.
==== dépôts officiels APT ====
En version 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]] 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 :
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)
==== 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 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 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 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]] :
[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 savoir où se trouve le fichier de configuration, dans **Neovim**, on peut exécuter :
: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 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))
Le premier fichier de configuration lu par **Neovim** est le fichier ''~/.config/nvim/init.vim''
Par défaut, celui-ci //source// ''~/.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
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
==== 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]]...//