Présentation « Faire un bond quantique de productivité avec Neovim »
(docs.google.com)Vidéo de l’enregistrement : https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
Annexe : https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/
J’ai présenté le sujet « Faire un bond quantique de productivité avec Neovim » lors de la 2e édition d’ExcelCon, le 2023-06-03, et je le partage ici, même tardivement.
Résumé de la présentation
Comment le simple fait d’utiliser Neovim a-t-il amélioré ma productivité ?
- En unifiant dans Neovim des usages auparavant répartis entre VSCode, Notion, RoamResearch, GitKraken, etc., j’ai réduit la charge cognitive inutile liée aux changements d’outil.
- Même en alternant entre macOS et archlinux, je peux conserver partout un environnement de développement cohérent (
dotfiles). - Je n’ai plus à me soucier des performances de la machine.
- Before : en travaillant avec plusieurs applications ouvertes comme AndroidStudio, VSCode, RoamResearch, etc., le thrashing se produisait fréquemment. Même taper du code prenait du temps / After : je n’entends même plus le bruit d’un avion au décollage. L’empreinte mémoire est aussi très faible.
3 étapes pour améliorer sa productivité
- L’amélioration de la productivité commence par une prise de recul pour analyser dans quelles actions je dépense inutilement du temps.
- D’abord, se familiariser avec les outils que l’on utilise.
- Observer quelles tâches l’on répète régulièrement et chercher des moyens de réduire le temps qu’elles prennent. (ex. modèles, plugins, macros, snippets, …)
- Dans le processus de l’étape 2, choisir ce qui nous convient et l’intégrer dans ses habitudes.
J’ai rassemblé en annexe sur le blog les éléments que je n’ai pas pu expliquer faute de temps.
- Des starter kits pour les débutants sur Neovim, notamment AstroNvim et LazyNvim
- Des plugins tree-sitter dédiés à Neovim
nvim-cmp, qui fournit des fonctionnalités d’autocomplétion
J’anime aussi une communauté Discord (vim.kr) pour les personnes qui souhaitent mieux utiliser Vim, donc n’hésitez pas à vous y intéresser :)
11 commentaires
https://github.com/github/copilot.vim
J’utilise tellement bien VS Code Copilot que j’ai cherché, et il existe aussi un plugin Copilot pour Neovim. J’hésitais à l’essayer, mais je vais me mettre à Neovim.
Dans la première entreprise où j’ai changé de poste, ils développaient en se connectant à distance à un serveur Linux avec vim + tmux.
J’ai trouvé impressionnant que le pair programming à distance soit possible dans cet environnement. (les modifications du code se répercutent immédiatement, et le terminal est aussi partagé)
C’est avec les dotfiles (
.vimrc,.bashrc) présents sur le serveur distant que je me suis vraiment mis à vim.Comme il y avait un exemple, je me souviens avoir pu m’y mettre sereinement, donc je comprends bien ce qui est dit dans l’article à propos des dotfiles, haha
Moi aussi, je suis passé de NVIm à vscode, mais en voyant cet article, j'ai envie d'y revenir, haha.
Je suis vraiment heureux qu’on parle d’éditeurs de texte. Une fois qu’on accepte qu’au fond, tout consiste à manipuler du texte, prendre soin de son environnement de travail textuel ne devient plus une contrainte. J’ai commencé à utiliser Emacs l’an dernier, et on peut vraiment tout faire au clavier. Comme cela a été dit au point 0, cela m’a permis de réduire énormément le temps perdu inutilement. J’espère que vim.kr va prospérer !!
Je me demande si c’est quelque chose que j’ai raté dans la vidéo, donc je vous pose la question. Quand vous dites que vous avez remplacé Notion par neovim, est-ce que cela veut dire que vous avez mis en place un système de wiki dans neovim et que vous utilisez cela, ou bien qu’il existe une bibliothèque permettant de manipuler Notion depuis neovim ? L’intention de ma question est de savoir si le Notion utilisé dans mon entreprise peut aussi être manipulé depuis neovim.
Bien sûr, je ne manipulais pas directement Notion.
Si Notion prenait en charge une API, il serait théoriquement possible de le manipuler depuis neovim, mais jusqu’à présent je n’ai pas encore vu de tentative de ce genre.
Il est difficile de donner une réponse catégorique sur la possibilité de manipuler depuis neovim le Notion utilisé en entreprise, car cela semble relever de questions de politique interne.
Notion fournit bien une API, mais en pratique plusieurs contraintes me sont venues à l’esprit, donc l’implémentation est restée à l’arrêt. Je me demandais s’il existait une bonne solution. Merci pour votre réponse :D
C’est plus proche de « j’ai mis en place un système de wiki ». Le plugin
telekasten.nvimrépond à plus de 100 % à mes besoins et embarque à peu près toutes les fonctionnalités utiles.La fonctionnalité de modèles est également tout à fait correcte. Les fonctions de gestion de documentation interne sont bonnes aussi.
J’ai aussi développé moi-même, avec une bibliothèque appelée
force-graph, la visualisation en graphe, qui était l’une des fonctionnalités que j’aimais particulièrement.Comme cela pourrait servir de référence, je laisse aussi les liens vers le code source associé.
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- génération des données de sommets (documents) / arêtes (liens internes) nécessaires à la visualisation du graphe
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- visualisation basée sur
force-graphMoi aussi, j’utilise Neovim et j’ai découvert un tout nouvel univers. Du coup, j’ai essayé d’évangéliser les développeurs autour de moi, mais personne n’a franchi le pas. En utilisant Neovim, j’ai aussi mieux compris en détail tout ce qu’il faut pour mettre en place un environnement de développement. Je ne savais même pas qu’il existait une communauté Vim coréenne ; j’irai y faire un tour, ça me fait vraiment plaisir !
Cela dépend de l’entreprise et de l’équipe, mais… étonnamment, beaucoup de gens ne s’intéressent pas vraiment à la configuration de leur environnement de développement.
Pour bien utiliser Vim, on a l’impression qu’il faut finalement aussi utiliser zsh et tmux.
Contrairement à Emacs, heureusement, pas besoin d’avoir une barbe.