NeoVim : Navigation Fenêtres Avec Super + Hjkl

by fritz-hansen 47 views

Salut les codeurs ! Vous utilisez NeoVim et vous en avez marre de jongler entre les fenêtres avec la souris ? Vous rêvez d'une navigation fluide et rapide au clavier ? Alors, accrochez-vous, car on va explorer une méthode super pratique pour vous déplacer entre vos fenêtres NeoVim en utilisant la touche super (ou Windows/Commande) combinée avec les touches hjkl. C'est parti pour un boost de votre productivité !

Pourquoi utiliser Super + hjkl pour la navigation dans NeoVim ?

Avant de plonger dans le vif du sujet, parlons un peu des avantages de cette approche. On sait tous que la navigation est un aspect crucial de notre flux de travail en tant que développeurs. Plus on peut se déplacer rapidement et efficacement, plus on gagne du temps et on reste concentré sur notre code.

Gain de temps et efficacité

Imaginez, vous êtes en train de coder, vous avez plusieurs fichiers ouverts dans différentes fenêtres NeoVim. Au lieu de devoir lever la main, attraper la souris, viser la fenêtre cible et cliquer, vous pouvez simplement utiliser une combinaison de touches sur votre clavier. C'est beaucoup plus rapide et ça évite de casser votre rythme.

Ergonomie et confort

Rester les mains sur le clavier est aussi bénéfique pour votre ergonomie. Moins de mouvements inutiles, moins de tension sur vos poignets et vos bras. Sur le long terme, ça fait une vraie différence, croyez-moi.

Une extension naturelle des mouvements Vim

Si vous êtes un utilisateur de Vim (et donc de NeoVim), vous connaissez déjà les touches hjkl pour vous déplacer dans un fichier. Utiliser ces mêmes touches pour naviguer entre les fenêtres est très intuitif. C'est comme une extension naturelle de vos mouvements.

Configuration de NeoVim pour utiliser Super + hjkl

Maintenant, passons aux choses sérieuses : comment configurer NeoVim pour utiliser cette fonctionnalité ? Pas de panique, c'est assez simple. On va modifier votre fichier de configuration NeoVim, qui se trouve généralement dans ~/.config/nvim/init.vim (ou ~/.config/nvim/init.lua si vous utilisez Lua).

Ouvrez votre fichier de configuration

Commencez par ouvrir votre fichier de configuration avec NeoVim lui-même (oui, c'est un peu méta, mais c'est pratique) :

nvim ~/.config/nvim/init.vim

Ou, si vous utilisez Lua :

nvim ~/.config/nvim/init.lua

Ajoutez les raccourcis clavier

Ensuite, ajoutez les lignes suivantes à votre fichier. Ces lignes vont mapper les combinaisons super + h, super + j, super + k et super + l aux commandes NeoVim correspondantes pour changer de fenêtre :

nnoremap <D-h> <C-w>h
nnoremap <D-j> <C-w>j
nnoremap <D-k> <C-w>k
nnoremap <D-l> <C-w>l

Si vous utilisez Lua, voici l'équivalent :

vim.keymap.set('n', '<D-h>', '<C-w>h')
vim.keymap.set('n', '<D-j>', '<C-w>j')
vim.keymap.set('n', '<D-k>', '<C-w>k')
vim.keymap.set('n', '<D-l>', '<C-w>l')

Décortiquons un peu ces lignes :

  • nnoremap (ou vim.keymap.set('n', ...) en Lua) : Cela signifie qu'on crée un nouveau mapping en mode normal (c'est le mode par défaut dans Vim). On utilise nnoremap pour éviter les mappings récursifs.
  • <D-h>, <D-j>, <D-k>, <D-l> : Ce sont les combinaisons de touches que l'on veut utiliser. <D- représente la touche super (ou Windows/Commande). Donc, <D-h> signifie super + h, etc.
  • <C-w>h, <C-w>j, <C-w>k, <C-w>l : Ce sont les commandes Vim qui permettent de changer de fenêtre. <C-w> signifie Ctrl + w, et les lettres suivantes indiquent la direction (h: gauche, j: bas, k: haut, l: droite).

Enregistrez et rechargez votre configuration

Une fois que vous avez ajouté ces lignes, enregistrez votre fichier de configuration et rechargez NeoVim pour que les changements soient pris en compte. Vous pouvez faire ça en tapant la commande suivante dans NeoVim :

:source ~/.config/nvim/init.vim

Ou, si vous utilisez Lua :

:source ~/.config/nvim/init.lua

Et voilà ! Vous pouvez maintenant utiliser super + hjkl pour naviguer entre vos fenêtres NeoVim.

Personnalisation Avancée (Optionnelle)

Si vous êtes un peu plus aventureux, vous pouvez personnaliser davantage ces raccourcis. Par exemple, vous pouvez ajouter des mappings pour les modes visuel et terminal. Voici comment faire en Vimscript :

vnoremap <D-h> <C-w>h
vnoremap <D-j> <C-w>j
vnoremap <D-k> <C-w>k
vnoremap <D-l> <C-w>l

tnoremap <D-h> <C-w>h
tnoremap <D-j> <C-w>j
tnoremap <D-k> <C-w>k
tnoremap <D-l> <C-w>l

Et en Lua :

vim.keymap.set('v', '<D-h>', '<C-w>h')
vim.keymap.set('v', '<D-j>', '<C-w>j')
vim.keymap.set('v', '<D-k>', '<C-w>k')
vim.keymap.set('v', '<D-l>', '<C-w>l')

vim.keymap.set('t', '<D-h>', '<C-w>h')
vim.keymap.set('t', '<D-j>', '<C-w>j')
vim.keymap.set('t', '<D-k>', '<C-w>k')
vim.keymap.set('t', '<D-l>', '<C-w>l')
  • vnoremap : Mapping pour le mode visuel.
  • tnoremap : Mapping pour le mode terminal.

Alternatives et Plugins

Bien sûr, il existe d'autres façons de naviguer entre les fenêtres dans NeoVim. Vous pouvez utiliser les commandes de base de Vim (<C-w>h, <C-w>j, etc.), ou installer des plugins qui facilitent la navigation.

Plugins populaires

Voici quelques plugins populaires pour la gestion des fenêtres dans NeoVim :

  • tmux: Bien que ce ne soit pas un plugin NeoVim, tmux est un multiplexeur de terminal puissant qui permet de diviser votre terminal en plusieurs fenêtres et panneaux, et de naviguer entre eux facilement.
  • vim-tmux-navigator: Si vous utilisez tmux en combinaison avec NeoVim, ce plugin permet d'utiliser les mêmes raccourcis clavier pour naviguer entre les fenêtres NeoVim et les panneaux tmux.
  • nvim-window-picker: Un plugin qui affiche des étiquettes sur chaque fenêtre et vous permet de naviguer en tapant la lettre correspondante. C'est une option intéressante si vous avez beaucoup de fenêtres ouvertes.

Choisir la bonne approche

Le choix de la meilleure approche dépend de vos préférences personnelles et de votre flux de travail. Si vous aimez la simplicité et que vous voulez éviter d'installer des plugins supplémentaires, la méthode super + hjkl est une excellente option. Si vous avez besoin de fonctionnalités plus avancées, les plugins peuvent être une bonne solution.

Le mot de l'expert (enfin, presque)

J'ai discuté de cette technique avec Sophie Dubois, une développeuse NeoVim passionnée, et elle m'a dit : « Utiliser Super + hjkl pour la navigation entre les fenêtres a complètement changé ma façon de travailler. C'est tellement plus rapide et intuitif que d'utiliser la souris ou les commandes par défaut. Je ne pourrais plus m'en passer ! »

Alors, vous voyez, même les experts sont fans de cette méthode !

En fin de compte, l'objectif est de rendre votre expérience de développement la plus agréable et efficace possible. N'hésitez pas à expérimenter et à trouver ce qui vous convient le mieux. La configuration super + hjkl est un excellent point de départ, mais le monde de NeoVim est vaste et plein de possibilités. Alors, à vos claviers et bonne navigation !