#2 - Vim en 15 minutes

Quelques commandes pour aller plus loin.

Posté le Oct. 3, 2020

Intro

Quelques commandes pour aller plus loin dans l'utilisation de Vim, et peut-être réussir à en faire mon éditeur de texte par défaut.

Utiliser le terminal

Vim se lance dans un terminal, il existe des astuces pour utiliser les fonctionnalités du terminal sans devoir ouvrir une fenêtre supplémentaire.

La commande :! pour une commande unique

Cette commande permet de lancer une commande dans le terminal, d'observer l'output et de revenir dans Vim en appuyant sur la touche Entrer , par exemple pour lister les fichiers avec ls il suffit de taper la commande suivante dans Vim:

:! ls

Plus généralement, la syntaxe est la suivante: :! <commande>

La touche Entrer permet ensuite de revenir dans Vim.

Le raccourcis clavier Ctrl + z

Il permet de passer Vim en arrière plan. Une fois exécutée, il est possible d'utiliser le terminal. La commande fg (foreground), permet de réstaurer Vim en premier plan.

La commande :terminal

Elle a pour effet de couper la fenêtre en deux et d'y implanter un terminal (split-screen). Pour que la séparation soit verticale, utiliser la commande :vert terminal.

Copier/ coller une ligne

Les possibilitées sont vastes, voici un exemple simple.

Copier une ligne: yy Coller une ligne: p

Pour plus de détails: https://vim.fandom.com/wiki/Copy,_cut_and_paste

Rechercher un mot

La recherche se fait à l'aide des oppérateurs / et ?. Lorsque l'on tape ?mot, mot apparaîtra en surbrillance dans le texte.

Découpe d'écran (Split screen)

Cette fonctionnalité permet d'ouvrir deux documents sur la même fenêtre.

  • Découpe horizontale: :sp fichier.txt
  • Découpe verticale: :vsp fichier.txt

Lors d'une découpe, pour passer d'un fichier à l'autre, il faut utiliser Ctrl + w puis la flêche directionnelle qui pointe vers la fenêtre à atteindre.

Pour fluidifier la navigation entre les différentes fenêtres, il est possible d'ajouter le code suivant au fichier ~/.vimrc

 nnoremap <C-J> <C-W><C-J>
 nnoremap <C-K> <C-W><C-K>
 nnoremap <C-L> <C-W><C-L>
 nnoremap <C-H> <C-W><C-H>

Ceci permet de replacer Ctrl +w +h par Ctrl + h pour aller à gauche.

Pour rappel, le déplacement se fait avec les touches hjkl

# extrait du vimtutor
          ^
          k        Astuce :  La touche h est à gauche et déplace à gauche.
    < h       l >            La touche l est à droite et déplace à droite.
          j                  La touche j ressemble à une flèche vers le bas.
          v

utiliser des onglets

Pour créer un onglet, utiliser la commande :newtab fichier.txt.

Pour naviguer d'un onglet à l'autre, utiliser Ctrl + page up ou Ctrl + page down

Intéraction délimitée

Le titre n'est peut être pas évocateur mais l'idée c'est d'intéragir avec du text délimité par des charactères comme par exemple des guillemets ou des parenthèses.

  • Séléctionner l'intérieur de guillemets: vi" (vi( pour l'intérieur de parenthèses)

  • Copier/ coller l'intérieur d'une parenthèse: yi(+Echap+p

  • Supprimer l'intérieur d'un crochet: di[