{{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]]...//