> ## Content Index
> Fetch the complete content index at: https://mindsers.blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# Activer le keybinding de Vim dans Zsh
- URL: https://mindsers.blog/fr/post/activer-keybinding-vim-dans-zsh/
- Published: 2017-12-20T05:00:00.000Z
- Updated: 2021-08-22T18:37:33.000Z
- Author: Nathanaël Cherrier
- Tags: zsh, coding-tech, vim, #lang-fr

J’ai enfin trouvé la réponse à une de mes vieilles questions ! Est-ce qu’il y a une façon simple (des raccourcis claviers ou commandes) pour se déplacer et éditer mes lignes de commandes dans zsh ?

Ma problématique est la suivante : c’est souvent galère d’éditer une ligne de commande. Et plus la ligne est longue plus c’est galère. À tel point que souvent je préfère **retaper la ligne complète** pour y apporter mes quelques petites modifications.

J’avais déjà fait des recherches sur le sujet, mais rien de probant. J’ai cherché s’il était possible d’avoir dans *zsh* les mêmes commandes de déplacement que dans Vim.

Aujourd’hui j’ai la réponse et la réponse est **oui**, mais vous l’aviez sans doute déjà deviné avec le titre. (Pour ceux qui préfèrent [bash](https://www.gnu.org/software/bash/?ref=mindsers.blog) et se sont retrouvés sur cet article par mégarde, un [autre article](https://mindsers.blog/fr/post/activer-keybinding-vim-dans-bash/) vous explique comment faire la même chose dans *bash*. Pour les autres vous pouvez aussi allez lire l’article : je préfère son introduction à celle-là.)

J’ai découvert que par défaut la plupart des terminaux utilisaient le keybinding d’Emacs et qu’il était possible de le changer pour celui de Vim. Entre apprendre Emacs ou utiliser ce que je sais déjà de Vim, j’ai vite choisi.

## Manipulation

Ajoutez la ligne suivante à votre `~/.zshrc`

```bash
bindkey -v

```

Et redémarrez votre terminal (ou login/logout ou encore `source` peuvent être suffisant).

## Résultat

Vous pouvez maintenant utiliser votre terminal comme si vous étiez dans **Vim**. En mode normal (`Esc` pour y accéder) :

- `a` insérer du texte après le curseur
- `A` insérer du texte à la fin de la ligne
- `i` insérer du texte avant le curseur
- `x` supprimer la lettre sous le curseur
- `dd` supprimer la ligne
- `e` déplacer le curseur à la fin du mot où est le curseur (ou le mot suivant)
- `w` déplacer le curseur au début du mot suivant
- `b` déplacer le curseur à la fin du mot précédent
- `/` suivi d’un terme, recherche le terme dans l’historique des commandes

Et encore pleins d’autres keybindings que vous connaissez surement déjà puisque après tout, si vous avez décidé d’activer les keybindings de vim c’est que vous le connaissiez surement déjà.

Vous ne connaissez vraiment pas les autres keybinding de *vim* et vous souhaiteriez savoir ? Voici la [documentation de *vim*](http://vimdoc.sourceforge.net/?ref=mindsers.blog).