Skip to content

About

Un repo contenant ma config Neovim et des astuces d'installation dans l'environnement PPTI (et ailleurs)

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

En bref

La configuration init.lua est la plus complète et a été réalisée sur un WSL dotée de win32yank.exe (vous pouvez ôter cette configuration sans soucis). La configuration init-ppti.lua a été réalisé pour un environnement universitaire limité basé sur Linux.
Le plugin manager est LazyVim et les deux configurations contient les plugins suivants (les plugins en sous listes sont des dépendences indiquées dans le fichier)

Neovim et les plugins tierses cités ci-dessous ont tous des licenses OpenSource différentes disponibles sur leur pages GitHub. Je ne suis pas affilié de quelque façon que ce soit à ces groupes et à NeoVim lui même.

Introduction

A proprement parler Neovim est une modification de l'éditeur de texte Vim, lui même une amlioration de l'éditeur Vi. C'est un logiciel dans le terminal, et bien que cela semble très vieux et peu pratique, l'évolution du fonctionnement du terminal ont permis à cet éditeur de texte a être particulièrement performant.

L'intérêt d'utiliser Neovim, c'est son extrême modularité, mais aussi, son efficacité. Neovim est très peu gourmand en ressource, mais il peut être tout aussi puissant que n'importe quel IDE.

Ce document est essentiellement orientés pour les gens ne connaissant pas ce logiciel et souhaitant en apprendre plus rapidement sans aucune connaissance. Pour ceux qui souhaite juste récupérer la configuration préfaite, l'intégralité des informations se situe dans la section en bref ci-dessus.

Une section est destinée pour les étudiants d'UPMC souhaitant utiliser NeoVim sur les environement de PPTI et profiter de tout ses avantages.

Fonctionnement basique

Prise en main

Comprenont rapidement comment le logiciel fonctionne. Avant toute chose, installer le avec votre package manager favori. Le package se nomme "neovim" mais pour l'éxécuter, vous devrez taper nvim dans le terminal.

Vous pouvez ouvrir un fichier directement après l'ouverture en spécifiant le fichier après la commande, et vous pouvez en mettre plusieurs. Même si ce fichier n'existe pas...

nvim hello.c test.lua app.java

Une fois dessus, vous ne pouvez pas commencer à modifier les fichiers tout de suite... En réalité, il existe 3 modes:

  • Normal: C'est le mode de départ, ici, vous pouvez naviguer dans le dossier et exécuter des commandes en tapant sur :
  • Insertion: C'est le mode d'édition, c'est ici que vous pourrez modifier votre fichier... Vous pouvez y accéder en tapant sur i en mode Normal et retourner en mode Normal en appuyant sur Esc
  • Visuel: C'est un mode de séléection, vous pouvez utiliser les commandes d'éditions sur une zone spécifique, vous pouvez y accéder en appuyant sur v en mode Normal et en sortir pour retourner en mode Normal en appuyant sur Esc

Ici, nous ne ferons pas un tutoriel complet, une parfaite introduction est déjà disponible sur le logiciel. Vous pouvez y accéder en tapant la commande suivant sur Neovim:

:Tutor

Customisation

Neovim est hautement customisable, et la communauté de développeur autour est florissante.

Vos fichiers de configuration sont accessibles dans ~/.config/nvim/ à l'intéreiru vous pourrez notamment mettre le fichier init.lua qui exécutera les codes écrit en lua dès l'ouverture de Neovim. C'est ce fichier que vous trouverez sur ce dépôt GitHub.

Pour en savoir plus sur la customisation, n'hésitez pas à faire un tour sur les liens de la section en bref pour en apprendre plus sur les plugins et les configurations.

LSP

Le LSP (Language Server Protocol) est la partie la plus importe de Neovim, car c'est grâce à ce service que la syntaxe de votre programme sera évaluée en temps réel.

Il existe pleins de LSP différent, et ce système n'est pas propre à NeoVim. Toutefois, nous l'abordons ici car il s'agit d'un élément fondamental pour programmer.

Avec le plugin Mason couplé à Mason lspconfig, il est possible de se construire un evironnement efficace et d'installer rapidement un LSP pour chacun des langages édités, et aussi de les customiser.

De plus, il est possible de coupler cela à des formatter, pour formatter votre code et le rendre homogène rapidement.

Neovim à la PPTI

Neovim n'est pas directement disponible sur les ordinateur de la PPTI. But, fear not CS Student ! Neovim est très facilement installable sur l'ordinateur de la PPTI et la majorité de ses fonctionnalités sont disponibles !

💡 Ce document est adressé aux personnes ayant des connaissances basiques sur l'environnement Linux et les outils associés. Si ce n'est pas votre cas, n'hésitez pas à faire un tour sur le Wiki si nécéssaire !

Installation

A distance via SSH ou directement sur une machine, vous pouvez installer NeoVim grâce à au fichier .appimage disponible sur le dépôt GitHub de Neovim :o

Dans l'onglet "Releases" accéder à la dernière ressource stable publiée et localiser le fichier nvim.appimage. Cliquez droit sur ce fichier, copiez le lien, puis télécharger le via wget !

wget <lien du fichier nvim.appimage sur GitHub>

Pas de problèmes sur les dépendances liées au logiciel, l'appimage les contient toutes et ne pèse que 15MB, donc oubliez aussi les problèmes de quotas d'espaces disque !

Rendez maintenant le fichier nvim.appimage exécutable avec

chmod u+x ./nvim.appimage

et exécutez le simplement avec

./nvim.appimage

Ce qui serait cool, ça serait de pouvoir l'exécuter depuis n'importe où et l'utiliser comme la commande nvim classique n'est-ce pas ?

Pré-installation (implémentation de nvim)

Pour cela, nous allons simplement créer un alias de commande. Et si on utiliser notre NeoVim tout neuf pour le faire ? :D

Si vous êtes sur le dossier ~ de votre aborescence (et que l'appimage de Neovim s'y trouve évidemment) modifier votre .bashrc:

./nvim.appimage .bashrc

Puis ensuite copier les infos suivantes où vous voulez dans le fichier (tant que ça reste cohérent :p)

alias nvim="~/nvim.appimage $1"

Ceci aura pour effet de créer un alias de commande qui exécutera l'appimage de Neovim lorsque vous taperez nvim sur le terminal. Le $1 sert à prendre en compte les arguments que vous avez entré après la commande, ainsi, elle fonctionnera de la même manière que sur votre ordinateur personnel.

Vous pouvez appliquer ces changements immédiatemment en sourçant votre .bashrc

source .bashrc

Configuration

Neovim fonctionnera comme sur un environnement classique, vous pouvez donc incorporer vos fichiers de configuration dans la même arborescence que classiquemment, à savoir ~/.config/nvim/.

Toutefois, certaines choses ne peuvent pas se passer comme prévu... Par exemple, le module ensurepip n'est pas disponible sur l'environnement de PPTI, ce qui empêche la création d'environnement virtuel Python.

Tips spécifique

Installer le formatter clang-format

Le formatter clang-format demande un environnement Python spécifique que Mason ne peut installer dans l'environnement PPTI.

Cependant, nous pouvons l'installer via pip ! Tapez la commande suivante pour récupérer la librairie Python du formatter

pip install clang-format

💡 Si une erreur de syntaxe s'affiche, elle n'est pas liée directement avec l'installation, mais avec la configuration pip de la PPTI. clang-format a été installé proprement ;)

Et maintenant, nous devons ajouter cette librairie dans notre PATH. Utilisez pwd pour connaître l'arborescence de votre dossier HOME et renseignez dans le PATH les fichiers binaires locaux.

Dans votre .bashrc ajoutez l'instruction suivante si ce n'est pas déjà fait:

export PATH=$PATH:/users/Etu<num_dossier>/<num_etu>/.local/bin

Vous pouvez sourcer votre fichier .bashrc pour que ceci prenne effet immédiatemment:

source .bashrc

Pour vérifier si tout fonctionne, tapez clang-format --help, si le manuel s'affiche, c'est que tout ets bon !

About

Un repo contenant ma config Neovim et des astuces d'installation dans l'environnement PPTI (et ailleurs)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages