Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
neovim [Le 14/06/2023, 18:45] bcag2 créée après un an en brouillon ! |
neovim [Le 08/09/2025, 16:00] (Version actuelle) krodelabestiole mini corrections |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>éditeur_de_texte console programmation IDE}} | {{tag>éditeur_de_texte console programmation IDE}} | ||
- | |||
- | ---- | ||
{{ :application:neovim:neovim_logo_2x.png| logo de neovim}} | {{ :application:neovim:neovim_logo_2x.png| logo de neovim}} | ||
- | |||
====== Neovim ====== | ====== Neovim ====== | ||
- | 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. | ||
- | Si avec [[:bionic]], il suffisait d’installer le paquet //vim-gnome// pour avoir l’option //presse-papier// (clipboard), sous [[:jammy]], il faut soit installer [[apt>vim-gtk3]] soit **neovim**. Ce dernier apporte d’autres avantages. | + | **[[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 ===== | ===== Installation ===== | ||
- | ==== Via les dépôts standard ==== | + | Il existe plusieurs méthodes d'installation au choix : |
- | Neovim est présent dans les dépôts standard :\\ | + | * **Neovim** est disponible dans les [[#dépôts officiels APT]] d'Ubuntu, mais il s'agit rarement de la dernière version. |
- | <code bash> | + | * Il est aussi distribué par ses développeurs au format [[#AppImage]]. |
- | sudo apt install neovim | + | * **[[#Bob]]** est un gestionnaire de versions pour **Neovim**. |
- | </code> | + | |
- | mais une fois encore dans une version pas toujours très à jour ([[https://packages.ubuntu.com/search?neovim|exemple]] : 0.6 sous [[:jammy]] alors que la 0.8 est stable et la 0.9 disponible en version //dev//) | + | |
- | ==== Via un paquet ==== | + | ==== dépôts officiels APT ==== |
- | Cette solution permet de disposer de la dernière version stable ou en développement.\\ | + | |
- | Elles sont disponible via la page [[https://github.com/neovim/neovim/releases]] en [[:cli|CLI]] : | + | |
- | <code bash>wget https://github.com/neovim/neovim/releases/download/v0.8.3/nvim-linux64.deb</code> | + | |
- | Si vous avez une ancienne version des dépôts standard, désinstallez-la au préalable avec : | + | <note>En fonction de votre [[:versions|version]] d'Ubuntu cette méthode ne permet pas d'installer une version récente de **Neovim**.</note> |
- | <code bash>sudo apt autoremove neovim</code> | + | |
- | Si vous êtes sûr de votre basculement vers neovim, vous pouvez supprimer vim : | + | |
- | <code bash>sudo apt remove vim-common</code> | + | |
- | ce qui permettra de créer les [[#alias]] de nos commandes usuelles… | + | |
- | Puis lancer l'installation du paquet téléchargé : | + | **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]]'' : |
- | <code bash> | + | sudo apt install neovim |
- | sudo dpkg -i nvim-linux64.deb | + | |
- | </code> | + | ==== AppImage ==== |
+ | |||
+ | <note>Cette méthode ne permet pas de mettre à jour automatiquement **Neovim** !</note> | ||
+ | |||
+ | 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]]). | ||
+ | <note>L'installation de Cargo peut nécessiter jusqu'à 534 Mo d'usage de disque !</note> | ||
+ | |||
+ | 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> | ||
+ | - puis **Bob** depuis **Cargo** :<code>cargo install bob-nvim</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//?\\ | + | |
- | Pour cela, définir les [[:alias]] :\\ | + | Vous voudrez sans doute continuer à appeler votre éditeur préféré via les commandes ''vi'', ''vim'' et ''vimdiff'' ?\\ |
+ | Pour cela, définir les [[:alias]] : | ||
<file - .bash_aliases> | <file - .bash_aliases> | ||
alias vi='nvim' | alias vi='nvim' | ||
alias vim='nvim' | alias vim='nvim' | ||
- | alias vimdiff='nvim -d ' | + | alias vimdiff='nvim -d' |
</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] | ||
Ligne 52: | Ligne 67: | ||
</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 | ||
</code> | </code> | ||
+ | |||
===== Configuration ===== | ===== Configuration ===== | ||
- | 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 avoir des informations sur la configuration, on peut exécuter : |
- | 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)) : | + | nvim --version |
- | <code> | + | 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 | ||
+ | |||
+ | <note important>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)) | ||
+ | </note> | ||
+ | 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)) | ||
+ | <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 dernière version((src: https://askubuntu.com/a/1555422/385361)), installer <code bash>sudo apt install xclip</code> et modifier votre 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> | ||
- | <note important>Ces fichiers n'existent si [[:vim]] n'avait pas été préalablement installé, auquel cas il faut les créer !</note> | + | |
+ | ==== 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 ==== | ||
+ | |||
+ | 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]]...// |