vim


three modes


normal

Mode de base lorsque l’on lance l’editeur, ce mode doit être utilisé pour visualiser le contenu du fichier.

insertion

Mode accessible avec la touche i, mode utilisé pour l’ajout et la suppression de texte.

visual

Mode accessible par la touche v pour effectuer une sélection caractère par caractère. La combinaison shift-v permet de réaliser de la sélection par ligne et enfin, ctrl-v permet de réaliser de la sélection par colonnes.


commands


save

  • :w : « write », enregistrer
  • :saveas test.txt : enregistrer sous

cancel

  • :cq : cancel and quit, annuler des modifications
  • u : un-do, annuler
  • ctrl-R : re-do
  • nmap U

search text

  • /expression : pour chercher vers le bas
  • ?expression: pour chercher vers le haut
  • n : pour occurrence suivantes
  • N : pour occurrence précédente
  • : cherche le mot sous le curseur vers le bas
  • \# : vers le haut

move

  • hjkl : gauche, bas, haut droite
  • {,} : sauter ligne vide précédente, suivante
  • gg,G : sauter au début, fin
  • w,b : mot suivant, précédent
  • W,B : MOT suivant et précédent délimité par espace
  • e,ge : fin de mot suivant, précédent
  • E,gE : fin de MOT suivant, précédent
  • ^,$ : début, fin de ligne

actions

  • d : « delete » + couper
  • y : « yank » copier
  • p : « paste » coller
  • c : « change », couper + passer en mode insertion
  • . : répéter la dernière action

  • opérateur + mouvement
    • dw : delete word
    • d$ : delete jusqu’à la fin de la ligne
    • yW : copie jusqu’à la fin du mot
    • cw : efface jusqu’à la fin du mot et passe en mode insertion
  • [répétition] opérateur [répétition] mouvement
    • 3dw : efface un mot, trois fois
    • d3w : efface trois mots (c’est pareil de précédemment)
    • 5d3w : efface trois mots, cinq fois
    • c3w : efface trois mots et passe en mode insertion

object modifier

modifieur + objet

  • Modifieur :
    • i : “in”
    • a : “around”
  • Objet
    • w, W : mot
    • s, p : phrase, paragraphe (point / ligne vide)
    • b, B : bloc (parenthèses / accolades)
    • t : tag (html/xml)
    • [, ], {, }, (, ), ‘, « …
  • Action + modifieur + objet
    • vaw : sélectionne le mot
    • daw : supprime le mot
    • dip : supprime le paragraphe (sans la ligne de séparation)
    • dap : supprime le paragraphe (avec la ligne de séparation)
    • ci’ : change le contenu d’une chaîne

.vimrc

Le fichier ~/.vimrc présent dans le répertoire de connexion permet de paramétrer l’éditeur.

" Non compatible avec Vi
set nocompatible

" Syntaxe et thème
syntax on
colorscheme Tomorrow-Night-Bright
set t_Co=256

" Num ligne et colonne, et commande
set number
set ruler
set showcmd

" Auto-indentation à 2 espaces
set autoindent
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab

" Indentation en fonction du ficher
filetype plugin indent on

" Permet de donner paramatrés sur fichier pour vim
set modelines=5

" Meilleur completion cli
set wildmenu
set wildmode=longest,full

" Aide en cas d'erreurs
set visualbell

" Encodage
set encoding=utf-8

" Nombre de ligne entre curseur et bord
set scrolloff=10

" Pour indentation
set backspace=indent,eol,start

" Permet de switcher entre fichiers sans sauvegarder
set hidden

" Montre le mode
set showmode

" Montrer ligne en cours
set cursorline

" Toujours afficher barre d'etat
set laststatus=2

" Ignorer casse sauf quand majuscule
set ignorecase
set smartcase
set showmatch

" Utiliser souris
set clipboard=unnamedplus
set mouse=a


" recherche incrémentale
set hlsearch
set incsearch

" U fait le même chose que ctrl + r
nmap U <C-R>