Update
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| --- | ||||
| Title: Quelques pointeurs pour ViM | ||||
| Title: Quelques pointeurs pour Vim | ||||
| Date: 2023-05-13 11:00 | ||||
| Modified: 2023-05-13 18:00 | ||||
| Lang: fr | ||||
| @@ -7,18 +7,19 @@ Author: Fabrice | ||||
| Category: programmes | ||||
| Tags: vim, neovim | ||||
| Slug: nvim | ||||
| table-of-contents: true | ||||
| Header_Cover: ../images/covers/hand-fan.jpg | ||||
| Summary: Des informations que j’aurais bien aimé connaître plus tôt dans (neo)vim. | ||||
| Summary: Des informations que j’aurais bien aimé connaître plus tôt dans (Neo)Vim. | ||||
| --- | ||||
|  | ||||
| [neovim](https://neovim.org/) est un éditeur de texte modal, héritier direct de | ||||
| [vim](https://www.vim.org) lui-même issu de | ||||
| [Neovim](https://neovim.org/) est un éditeur de texte modal, héritier direct de | ||||
| [Vim](https://www.vim.org) lui-même issu de | ||||
| [vi](https://ex-vi.sourceforge.net/). | ||||
| Cette famille d’éditeurs est assez répandue, et au moment de rechercher un | ||||
| éditeur de texte, on peut se retrouver face à des choix comme | ||||
| [ViM vs Emacs](https://fr.wikipedia.org/wiki/Guerre_d%27%C3%A9diteurs). | ||||
| [Vim vs Emacs](https://fr.wikipedia.org/wiki/Guerre_d%27%C3%A9diteurs). | ||||
|  | ||||
| Trolls mis à part, il s’avère que j’utilise vim/neovim comme éditeur de texte au | ||||
| Trolls mis à part, il s’avère que j’utilise Vim/Neovim comme éditeur de texte au | ||||
| quotidien pour éditer du code, [écrire certains | ||||
| e-mails]({filename}../tips/emails-md-fr.md), prendre des notes, écrire ce blog… | ||||
|  | ||||
| @@ -30,12 +31,12 @@ trouver l’information que l’on cherche… notamment si on ignore qu’elle e | ||||
| À ce sujet, je ne peux que recommander les rencontres avec d’autres usagers, | ||||
| comme par exemple aux [tuppervim](https://tuppervim.org). | ||||
| Ces rencontres sont l’occasion de partager et de découvrir des informations | ||||
| autour de ViM afin de les intégrer __progressivement__ à son flot de travail. | ||||
| autour de Vim afin de les intégrer __progressivement__ à son flot de travail. | ||||
| Malheureusement, cette solution n’est pas forcément des plus pratiques pour | ||||
| tous : les rencontres ont lieues à Paris/Lyon/Grenoble, ce qui les rendent | ||||
| difficile d’accès pour le sud-ouest de la France… voire pour les personnes en | ||||
| dehors de la France métropolitaine. | ||||
| Ainsi, même si comme la [documentation ViM](https://www.vim.org/docs.php) qui | ||||
| Ainsi, même si comme la [documentation Vim](https://www.vim.org/docs.php) qui | ||||
| regroupe toutes les informations dont on pourrait avoir besoin, il existe des | ||||
| [archives des rencontres précédentes](https://tuppervim.org/archives.html). | ||||
| On se perd cependant très vite au milieu de cette jungle de conseils. | ||||
| @@ -47,15 +48,15 @@ intéressants et que j’aurais bien aimé découvrir plus tôt par moments… | ||||
| Pour rappeler quelques principes de base du [cheminement vers la | ||||
| sagesse](https://fabi1cazenave.github.io/slides/2017-vim-ducklings/0-survive.html) : | ||||
| n’essayez pas de tout intégrer d’un coup : c’est un coup à se décourager. | ||||
| D’autant plus que vim est avant tout un couteau-suisse, ainsi on ne va pas | ||||
| D’autant plus que Vim est avant tout un couteau-suisse, ainsi on ne va pas | ||||
| utiliser la lime à ongle pour couper du fromage : ça peut fonctionner mais c’est | ||||
| pas très pratique. | ||||
| Toutes les commandes et techniques ne se valent donc pas suivant l’usage de ViM | ||||
| Toutes les commandes et techniques ne se valent donc pas suivant l’usage de Vim | ||||
| que l’on a. | ||||
|  | ||||
| Ce billet n’est donc pas un cours pour apprendre à utiliser vim, mais simplement | ||||
| quelques astuces pour des personnes qui utilisent vim régulièrement sans pour | ||||
| autant vouloir devenir des _vim-wizards_ et qui pourraient ignorer certains | ||||
| Ce billet n’est donc pas un cours pour apprendre à utiliser Vim, mais simplement | ||||
| quelques astuces pour des personnes qui utilisent Vim régulièrement sans pour | ||||
| autant vouloir devenir des _Vim-wizards_ et qui pourraient ignorer certains | ||||
| conseils qui améliorent la qualité de vie sans relever de l’ésotérisme. | ||||
| Je ne vais d’ailleurs pas aborder le point des modules en détails et essayer de | ||||
| rester le plus agnostique possible. | ||||
| @@ -66,28 +67,28 @@ irc, autre). | ||||
|  | ||||
| # Parler à son éditeur | ||||
|  | ||||
| Lorsque j’ai découvert vim, comme indiqué dans la première phrase de ce billet, | ||||
| Lorsque j’ai découvert Vim, comme indiqué dans la première phrase de ce billet, | ||||
| ce qui m’a marqué est le mot « **modal** ». | ||||
| Je pensais qu’il s’agissait de la partie importante dans la description de vim, | ||||
| Je pensais qu’il s’agissait de la partie importante dans la description de Vim, | ||||
| et que c’était ce qui le différenciait d’emacs ou autre. | ||||
| En effet, lors de l’apprentissage de vim, la première réaction naturelle est de | ||||
| En effet, lors de l’apprentissage de Vim, la première réaction naturelle est de | ||||
| se dire que pouvoir passer d’un mode à l’autre en une seule touche permet | ||||
| d’éviter des acrobaties digitales pour appuyer sur trois touches à la fois, qui | ||||
| ne sont pas toujours bien placées. | ||||
|  | ||||
| Cependant, selon moi, ce qui fait la force de ViM, ce n’est pas seulement cette | ||||
| Cependant, selon moi, ce qui fait la force de Vim, ce n’est pas seulement cette | ||||
| distinction entre modes qui permet de faire de la sélection visuelle, ou de | ||||
| naviguer entre ses différents fichiers pour aller exactement où l’on souhaite | ||||
| aller en trois entrées clavier, mais c’est la _langue_ de vim. | ||||
| aller en trois entrées clavier, mais c’est la _langue_ de Vim. | ||||
|  | ||||
| Ainsi, lors de l’apprentissage, il est important de comprendre ce qu’il se | ||||
| passe. | ||||
| De la même manière qu’il ne faut pas copier/coller des lignes de commandes qu’on | ||||
| ne comprend pas dans sont terminal, il est impératif de ne pas simplement | ||||
| apprendre des séquences de commandes dans vim sans comprendre ce qu’on est en | ||||
| apprendre des séquences de commandes dans Vim sans comprendre ce qu’on est en | ||||
| train de communiquer à son éditeur. | ||||
|  | ||||
| Pour citer une erreur de jeunesse, lorsque j’ai appris à utiliser vim, j’ai lu | ||||
| Pour citer une erreur de jeunesse, lorsque j’ai appris à utiliser Vim, j’ai lu | ||||
| quelque part sur internet que `gqap` en mode normal permettait de reformater un | ||||
| bloc de texte. | ||||
| Je ne comprenais pas exactement ce que « bloc » signifiait, mais ça fonctionnait | ||||
| @@ -105,7 +106,7 @@ Pour cela il existe pas mal de tutoriels : | ||||
|  | ||||
| Mais pour faire simple, et ce que j’aurais bien aimé qu’on me dise à mes débuts | ||||
| (mais bon, après faut lire de la documentation rébarbative en anglais, et | ||||
| c’était pas très facile pour moi à l’époque), c’est qu’une commande vim est en | ||||
| c’était pas très facile pour moi à l’époque), c’est qu’une commande Vim est en | ||||
| fait… une phrase. | ||||
| On demande une action (par exemple `=` qui signifie « indenter »), on donne un | ||||
| champ d’action (`ap` qui signifie « autour du paragraphe », où un paragraphe est | ||||
| @@ -141,18 +142,48 @@ que la vitesse : on perd beaucoup plus de temps et d’énergie à corriger un | ||||
| faute que d’avoir pris quelques instants de plus pour garantir le résultat… sans | ||||
| parler de la frustration induite. | ||||
|  | ||||
| Avant de passer à la suite, voici deux liens qui présentent la même chose, mais le | ||||
| premier est plus visuel (il y a des vidéos démonstratives) que le second, je | ||||
| vous laisse choisir selon vos préférences. | ||||
|  | ||||
| * [learnbyexample: Vim Reference Guide -- Visual mode](https://learnbyexample.github.io/vim_reference/Visual-mode.html) | ||||
| * [Mastering Visual Mode in Vim](https://dev.to/iggredible/mastering-visual-mode-in-vim-15pl) | ||||
|  | ||||
| ## Changer la position du curseur visuel | ||||
|  | ||||
| Il peut arriver de sélectionner un paragraphe, avec `vip` par exemple, et de se | ||||
| Il peut arriver de sélectionner un paragraphe, avec `vap` par exemple, et de se | ||||
| rendre compte qu’on aurait bien aussi pris la ligne précédente, qui peut-être un | ||||
| titre par exemple. | ||||
| Or, `vip` va placer le curseur permettant d’éditer la zone de sélection | ||||
| Or, `vap` va placer le curseur permettant d’éditer la zone de sélection | ||||
| visuelle (par exemple avec `}` pour sélectionner en plus le paragraphe suivant) | ||||
| à la fin de la sélection. | ||||
|  | ||||
| Pour alterner la position du curseur du début à la fin, il suffit d’une simple | ||||
| pression sur la touche `o`. | ||||
|  | ||||
| Par exemple, sur un bloc de trois paragraphes, on peut sélectionner le deuxième | ||||
| (`vap`) parce que c’est celui qui nous intéresse (pour le copier par exemple), | ||||
| puis se rendre compte que le premier introduit le deuxième et avoir envie de le | ||||
| rajouter à la sélection. | ||||
| On peut donc presser `o` pour replacer le curseur au début, et sélectionner le | ||||
| paragraphe précédent avec `{{` (oui, pour, me semble-t-il, de sombres raisons | ||||
| d'[inclusion/exclusion](https://vimdoc.sourceforge.net/htmldoc/motion.html#exclusive), | ||||
| le paragraphe précédent est… une ligne vide). | ||||
| On se rend ensuite compte que les deux paragraphes sélectionnés ne sont pas | ||||
| complets si on ne rajoute par le dernier paragraphe, et pour cela, on peut | ||||
| revenir à la fin par une seconde pression sur `o` et le sélectionner avec `}`. | ||||
|  | ||||
| L’exemple précédent illustre également l’intérêt du mode visuel pour se rendre | ||||
| compte de ce qu’il se passe. | ||||
| Intuitivement, je pensais que `{` au début du paragraphe allait reprendre le | ||||
| paragraphe précédent directement, et cela m’a amené à regarder la doc des | ||||
| [`object-motions`](https://vimdoc.sourceforge.net/htmldoc/motion.html#object-motions), | ||||
| et me rendre compte que cela ne fonctionne pas exactement comme je me le | ||||
| représentais. | ||||
| Durant mes tests pour écrire ce billet, je me suis aussi rendu compte que `v3ap` | ||||
| sélectionne bien le paragraphe en cours et les trois qui suivent, là où `v3ip` | ||||
| n’en prend que deux pour ces raisons de mouvements inclusifs ou exclusifs. | ||||
|  | ||||
| ## Incrémenter une colonne de nombres | ||||
|  | ||||
| Si l’on souhaite créer une colonne de nombres (par exemple pour une énumération) | ||||
| @@ -175,11 +206,21 @@ ligne surnuméraire `dd`, rentrer en mode visuel `v`, sélectionner le bloc (s | ||||
| est précédé d’une ligne vide ou d’un début de fichier): `ip`, et incrémenter de | ||||
| manière globale `g<Ctrl+a>`. | ||||
|  | ||||
| Pour comprendre [ce qu’il se | ||||
| passe](https://vimdoc.sourceforge.net/htmldoc/change.html#CTRL-A), `<Ctrl-a>` | ||||
| permet d’incrémenter le nombre sous lequel se trouve le curseur (et sa | ||||
| contrepartie `<Ctrl-x>` permet de le décrémenter). | ||||
| Si on sélectionne visuellement une colonne et qu’on applique simplement | ||||
| `<Ctrl-a>`, la colonne va être incrémentée (et donc donner une colonne de « 1 » | ||||
| dans le cas précédent). | ||||
| Ici, le modificateur `g` s’interprète comme « effectue `<Ctrl-a>` de manière | ||||
| _intelligente_ ». | ||||
|  | ||||
| ## Utiliser le mode visuel pour limiter certaines actions | ||||
|  | ||||
| On est parfois tenté de lancer de gros remplacements par expressions régulières | ||||
| sur son fichier, mais on est pas toujours sûr de ce qu’on fait. | ||||
| Lorsqu’on se met en mode ligne de commande sous vim pour effectuer un | ||||
| Lorsqu’on se met en mode ligne de commande sous Vim pour effectuer un | ||||
| [remplacement](https://www.gnu.org/software/sed/manual/sed.html) par exemple, | ||||
| cela va commencer la ligne par `'<,'>`, qui indique que l’action se déroulera | ||||
| entre les marques `<` et `>` qui représentent le début et la fin de la sélection | ||||
| @@ -227,6 +268,109 @@ des différentes lignes grâce au système de fichier. | ||||
| De manière similaire, je sais que `plugin/bepo.lua` décrit mon réarrangement | ||||
| partiel des raccourcis Vim pour le [bépo](https://bepo.fr/). | ||||
|  | ||||
| ## Type du fichier | ||||
|  | ||||
| ### Détection automatique | ||||
|  | ||||
| Comme indiqué précédemment, les fichiers dans `ftplugin` sont chargés en | ||||
| fonction du type de fichier. | ||||
| Celui-ci est défini via l’option | ||||
| [`filetype`](https://vimdoc.sourceforge.net/htmldoc/filetype.html) ou `ft` pour | ||||
| faire court. | ||||
| Cette abstraction permet de faire partager à une classe de fichier des | ||||
| configurations (par exemple la coloration syntaxique ou l'indentation) | ||||
| malgré des extensions différentes (`html`/`htm`, `py`/`sage`, `c`/`h`). | ||||
| On peut de plus noter que la reconnaissance automatisée de type de fichier | ||||
| (`:filetype on`) est activée par défaut dans Neovim. | ||||
|  | ||||
| Celui-ci peut aussi être défini à la main via `:set ft=<…>`, par exemple pour que le | ||||
| fichier de syntaxe de pandoc soit chargé, il faut que ce fichier soit de type | ||||
| `pandoc`. | ||||
| Or, par défaut un `*.md` est reconnu comme `filetype=markdown`, et les | ||||
| personnalisations spécifiques de l’extension `vim-pandoc` ne seront pas | ||||
| appliquées. | ||||
|  | ||||
| ### Modeline | ||||
|  | ||||
| De manière ponctuelle, il est possible de le définir fichier par fichier à | ||||
| l’aide du `modeline`. | ||||
| Il s’agit de cette ligne commentée étrange que l’on retrouve parfois au début ou | ||||
| à la fin d'un fichier qui ressemble à | ||||
| [ça](https://github.com/dunst-project/dunst/blob/master/dunstctl#L164): | ||||
| ```sh | ||||
| # vim: noexpandtab | ||||
| ``` | ||||
|  | ||||
| Le `modeline` permet de préciser certains paramètres à propos d'un fichier, | ||||
| comme précédemment pour indiquer l’utilisation de tabulations plutôt que | ||||
| d’espaces. | ||||
| Mais cela peut aussi être utile pour indiquer que l’on souhaite l’utilisation | ||||
| d’un vérificateur orthographique (`spell`), la langue de ce vérificateur | ||||
| (`spelllang`/`spl`), le type de fichier (`ft`), et autres. | ||||
|  | ||||
| Il est à noter que le `modeline` est là pour une utilisation ponctuelle. | ||||
| Comme il s’agit d’une entrée externe exécutée à l'ouverture du fichier, il peut | ||||
| créer des risques de sécurité au moment d’ouvrir des fichiers issus d’une source | ||||
| externe, comme ça a pu être le cas avec les vulnérabilités | ||||
| [CVE-2019-12735](https://www.cvedetails.com/cve/CVE-2019-12735/) et | ||||
| [CVE-2016-1248](https://www.cvedetails.com/cve/CVE-2016-1248/) par exemple. | ||||
|  | ||||
| ### Autocommands | ||||
|  | ||||
| Autrement il est aussi possible d’exécuter des commandes pour des fichiers | ||||
| particuliers à l'aide des | ||||
| [`autocommands`](https://vimdoc.sourceforge.net/htmldoc/autocmd.html). | ||||
|  | ||||
| Je souhaite, par la suite faire un billet spécifiquement sur la configuration de | ||||
| Vim, mais il est difficile de parler d’`autocommands` sans l’évoquer. | ||||
|  | ||||
| Par exemple, pour spécifier le type de fichier pour les documents de ce blog, | ||||
| détecter la langue à partir de ma convention de nommage ainsi que des options de | ||||
| mise en forme il est possible de définir dans `$VIMHOME/plugin/blog.lua`: | ||||
|  | ||||
| ```lua | ||||
| local blog_group = vim.api.nvim_create_augroup('blog', { clear = true }) | ||||
|  | ||||
| vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, { | ||||
|   pattern = {vim.fn.expand("~") .. "/dev/blog/**/*.md"}, | ||||
|   group = blog_group, | ||||
|   callback = function() | ||||
|     vim.o.filetype = 'pandoc' | ||||
|     vim.o.tw = 80 | ||||
|     vim.o.spell = true | ||||
|     vim.o.spl = 'en' | ||||
|   end | ||||
| }) | ||||
|  | ||||
| vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, { | ||||
|   pattern = {vim.fn.expand("~") .. "/dev/blog/**/*-fr.md"}, | ||||
|   group = blog_group, | ||||
|   callback = function() | ||||
|     vim.o.spl = "fr" | ||||
|   end | ||||
| }) | ||||
| ``` | ||||
|  | ||||
| La compréhension du bloc de code non commenté ci-dessus est laissée en exercice | ||||
| au lecteur attentif. | ||||
|  | ||||
| Blague à part, on remarque aussi que le fait d’avoir rangé ses fichiers de | ||||
| manière sémantique dans sa configuration Neovim/Vim permet de s'y retrouver | ||||
| facilement mais surtout de pouvoir tester et revenir en arrière aisément. | ||||
| Ainsi, « configurer son éditeur » devient moins effrayant que ce qu’il | ||||
| semblerait de prime abord, d’autant plus que la configuration de Neovim par | ||||
| défaut va au delà de la politique de Vim initiale qui est d’essayer d’être | ||||
| compatible avec vi. | ||||
| Conséquence de quoi, la configuration de Neovim, étant plus orientée | ||||
| « utilisable » par défaut est moins verbeuse que celle de Vim. | ||||
|  | ||||
| Je vous conseille ces deux vidéos pour en savoir plus sur les `autocommands` en | ||||
| Lua pour Neovim: | ||||
|  | ||||
| * [[Demo] Lua Augroups - Why And How To Use?](https://www.youtube.com/watch?v=F6GNPOXpfwU)  | ||||
| * [[Demo] Lua Autocmds in Neovim (by the author of Lua Autocmds)](https://www.youtube.com/watch?v=ekMIIAqTZ34) | ||||
|  | ||||
|  | ||||
| # La navigation | ||||
|  | ||||
| Un autre point important, est la navigation dans vos projets. | ||||
| @@ -248,7 +392,7 @@ séparés en plusieurs fichiers, on inclut les sous-fichiers à l’aide de la m | ||||
|  | ||||
| Pour aller directement à au fichier `filename.tex`, il suffit de placer le | ||||
| curseur au dessus et d’utiliser la commande `gf` (_go file_ pour le mnémonique, | ||||
| même si en terme de langue vim c’est pas exactement ça, c’est une approximation | ||||
| même si en terme de langue Vim c’est pas exactement ça, c’est une approximation | ||||
| suffisante). | ||||
| Bien entendu cette commande peut s’étendre : | ||||
| [`<ctrl-w>gf`](https://vimdoc.sourceforge.net/htmldoc/windows.html#CTRL-W_gf) | ||||
| @@ -273,7 +417,7 @@ exemple une recherche avec `/`). | ||||
|  | ||||
| ## Repliements | ||||
|  | ||||
| Je ne vais pas rentrer dans les détails des repliements sous vim, surtout que | ||||
| Je ne vais pas rentrer dans les détails des repliements sous Vim, surtout que | ||||
| c’est parfois les <em>plugin</em>s qui le gèrent, mais apprendre à les ouvrir et | ||||
| les fermer est potentiellement utile alors je pose ça là: | ||||
|  | ||||
| @@ -311,10 +455,13 @@ concepts présentés précédemment: | ||||
| * Activer | ||||
|    [`undodir`](https://vimdoc.sourceforge.net/htmldoc/options.html#'undodir') et | ||||
|    [`undofile`](https://vimdoc.sourceforge.net/htmldoc/options.html#'undofile') | ||||
|    pour avoir un historique de modification (`u`/`<Ctrl-r>`) par fichier et non | ||||
|    par session. Cela peut être pratique pour pouvoir annuler une modification | ||||
|    sur un fichier de configuration quand on se rend compte trois jours après que | ||||
|    cela ne nous convient pas par exemple. | ||||
|    pour avoir un historique de modification (`u`/`<Ctrl-r>`) | ||||
|    [persistant](https://neovim.io/doc/user/undo.html#undo-persistence) par | ||||
|    fichier et non par session. Cela peut être pratique pour pouvoir annuler une | ||||
|    modification sur un fichier | ||||
|    de configuration quand on se rend compte trois jours après que cela ne nous | ||||
|    convient pas par exemple. | ||||
| * `]p`: pour avoir une indentation cohérente lors d'un copier/coller. | ||||
|  | ||||
| # Le mot de la fin | ||||
|  | ||||
| @@ -322,14 +469,33 @@ Pour conclure, on peut voir que Vim est un éditeur assez puissant et qui peut | ||||
| s’adapter à beaucoup de cas d’usages. | ||||
| On a juste effleuré ce qui était possibles, et à chaque fois que je vais à un | ||||
| [tuppervim](https://tuppervim.org), je découvre toujours des petits trucs qui | ||||
| modifient un peu mon usage et rendent l’utilisation de vim de plus en plus | ||||
| modifient un peu mon usage et rendent l’utilisation de Vim de plus en plus | ||||
| confortable. | ||||
| De manière similaire à l’utilisation de dispositions de claviers dites | ||||
| ergonomiques, ce qui rend vim agréable à utiliser ce n’est pas la course | ||||
| ergonomiques, ce qui rend Vim agréable à utiliser ce n’est pas la course | ||||
| permanente à la productivité, mais le gain de confort. | ||||
| L’amélioration de la vitesse n’est qu’un effet de bord des facilités accordées | ||||
| par l’éditeur pour effectuer certaines actions autrement plus rébarbatives. | ||||
|  | ||||
| De plus, en rangeant son `$VIMHOME`, il est possible de pouvoir tester | ||||
| différentes choses rapidement et sans conséquences. | ||||
| Vous avez essayé une commande étrange trouvée sur internet dans | ||||
| `$VIMHOME/plugin/test.lua` et ça affiche 30 lignes d'erreurs ? Pas de problèmes, | ||||
| il suffit de supprimer le fichier de test. | ||||
| Si celui-ci fonctionne comme attendu, il ne reste plus qu'à le renommer de | ||||
| manière plus compréhensible. | ||||
| Je pense qu'il est assez fondamental de s’approprier ses outils, et pour un | ||||
| éditeur de texte aussi configurable que Neovim, c’est d’autant plus important de | ||||
| l’adapter à son utilisation. | ||||
| Une règle d’or étant : « Si quelque chose vous dérange, c’est qu’il y a moyen | ||||
| d’améliorer ça ». | ||||
| D'autant plus que d’autres personnes ont sans doute rencontré le même problème | ||||
| avant vous (sauf cas de niche bien entendu). | ||||
| Ainsi, je vous encourage fortement à essayer de nouvelles choses dans Vim, | ||||
| d'autant plus que les usages ne sont pas figés dans le temps, et que ce qui nous | ||||
| convient à un moment, ne sera pas forcément toujours d'actualité trois ans plus | ||||
| tard. | ||||
|  | ||||
| Je n’ai bien entendu pas parlé d’énormément de choses : le découpage de l’espace | ||||
| de travail à la `tmux`, les onglets et la navigation, la complétion automatique, | ||||
| les marques, les tags, les déplacements… Et le but de ce billet n’est pas d’être | ||||
| @@ -339,7 +505,7 @@ manque des choses, n’hésitez pas à me contacter à ce sujet, ce billet peut | ||||
|  | ||||
| Enfin, ça a été rapidement évoqué à la fin des points en vrac, mais je pense | ||||
| aussi faire un billet, dans un futur plus ou moins proche, un billet à propos de | ||||
| la configuration de vim en `lua`. | ||||
| la configuration de Vim en `lua`. | ||||
|  | ||||
| C’est tout pour moi, en espérant que vous avez apprécié ce petit pavé. À | ||||
| bientôt ! | ||||
|   | ||||
		Reference in New Issue
	
	Block a user