LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


util:vim

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

util:vim [2018/11/17 13:54] (Version actuelle)
Ligne 1: Ligne 1:
 +======VI-Improved (vim)======
 +{{:​util:​capture-vim.png?​200|}}
 +
 +======Présentation======
 +
 +                               Vim, c'est quoi ?
 +                            Une description en 6 Ko
 +
 +Vim ("Vi IMproved",​ c'​est-a-dire "Vi ameliore"​) est un clone de Vi,
 +a savoir un programme semblable a l'​éditeur de texte "​Vi"​.
 +
 +Vim fonctionne en mode texte sur tous les types de terminaux, mais il dispose
 +aussi d'une interface graphique, avec menus déroulant et souris.
 +
 +L'​auteur principal est Bram Moolenaar <​bram@vim.org>​.
 +Vim est distribué sous licence opensource compatible GPL. C'est un "​charity-ware"​ : vous êtes encourages a faire une donation aux
 +orphelins d'​Ouganda (voyez : ":help uganda"​).
 +
 +======Les modes d'​édition======
 +
 +Il y a plusieurs modes d'​édition. Par défaut, quand vim s'​ouvre,​ on se retrouve en mode interactif. Avant de changer de mode, il faut revenir au mode interactif:
 +
 +  * Le mode interactif: on n'​écrit pas du texte dans ce mode là, les touches sont utilisées comme raccourcis clavier.
 +  * Le mode insertion: là, c'est pour entrer du texte
 +  * Le mode remplacement:​ chaque caractère inséré remplace le caractère sous le curseur
 +  * Le mode commande: pour entrer des commandes
 +  * Le mode recherche
 +  * Le mode visuel: pour faire des sélections,​ copier, coller, etc.
 +
 +On bascule d'un mode à l'​autre à l'aide de raccourcis clavier en mode interactif:
 +
 +  * Pour revenir au mode interactif: <esc>
 +  * Depuis le mode interactif:
 +    * Mode insertion: <i> ou <s> ou <​insert>​
 +    * Mode remplacement:​ <R> ou <​insert>​ + <​insert>​
 +    * Mode commande: <:>
 +  * Opérations en mode interactif:
 +    * Recherche: </>
 +    * Visuel: <v>
 +    * Visuel ligne: <V>
 +    * Visuel bloc: <​ctrl>​ + <v>
 +
 +======Les opérations de base======
 +
 +=====En mode interactif=====
 +
 +  * Se déplacer: <h> droite, <j> bas, <k> haut, <l> gauche, ou flèches du clavier
 +  * Défaire: <u>
 +  * Refaire: <​ctrl>​ + <r>
 +  * Passer de majuscule à minuscule: <~>
 +  * Supprimer le caractère sous le curseur (eq touche suppr): <x> ou <​suppr>​
 +  * Supprimer un caractère en arrière (eq touche ret arrière): <X>
 +
 +=====En mode visuel=====
 +
 +  * copier: <y>
 +  * couper: <d> coller: <p> supprimer: <x> ou <​suppr>​
 +
 +=====En mode recherche=====
 +
 +  * Rechercher: </> + ma recherche + touche <​enter>​
 +  * Occurrence suivante: <n>
 +  * Occurrence précédente:​ <N>
 +
 +La recherche est sensible à la casse, pour ignorer la casse, utilisez la commande: set ignorecase
 +
 +La recherche supporte les expressions régulières.
 +
 +====Substitution====
 +
 +Vim utilise la même syntaxe que sed pour les expressions relationnelles. Le caractère d'​échappement est l'​antislash : \
 +
 +Pour remplacer toutes les occurrence d'une expression:
 +  :​%s/<​expression à chercher>/<​expression qui va la remplacer>/​g
 +
 +Par exemple:
 +  :​%s/​\/​usr\/​bin/​\/​usr\/​share\/​bin/​g
 +Ceci remplace /usr/bin par /​usr/​share/​bin
 +
 +=====En mode commande=====
 +
 +  * Enregistrer:​ w
 +  * Quitter: q
 +  * Enregistrer et quitter: wq
 +  * Quitter en ignorant les modifications:​ q!
 +
 +======Les opérations avancées======
 +
 +=====Les buffers=====
 +
 +À chaque fois qu'on ouvre un document, le contenu de celui-ci est copié dans un buffer.
 +
 +En mode commande:
 +
 +  * Avoir une liste des buffers: ls
 +  * Changer de buffer: b<​numéro du buffer> Ouvrir
 +  * Buffer précédent/​suivant:​ bp ou bn
 +  * Un fichier dans un nouveau buffer: b nomdufichier
 +  * Fermer un buffer: bw
 +  * Ouvrir un buffer en splitant l'​écran:​ sb <​fichier>​
 +
 +
 +=====Les onglets=====
 +
 +En mode commande:
 +
 +  * ouvrir un fichier dans un nouvel onglet: tabedit <nom du fichier>
 +  * Fermer un onglet: tabclose
 +
 +En mode interactif:
 +
 +  * Onglet suivant/​précédent:​ <gt> ou <gT>
 +
 +=====Spliter l'​écran=====
 +
 +En mode commande:
 +
 +  * spliter horizontalement:​ sp
 +  * spliter verticalement:​ vsp
 +
 +En mode interactif, toute commande est précédée par <​ctrl>​ + <w>:
 +
 +  * Changer de viewport: <​ctrl>​ + <​direction>​ (fleche ou h,j,k,l)
 +  * Fermer un viewport: <q>
 +  * Échanger deux viewports: <r> ou <R>
 +
 +=====Les replis=====
 +
 +Replier le code est quelque chose de très utile. On peut effectuer les replis à la main mais cela s'​avère laborieux, surtout avec des fichiers de plusieurs milliers de lignes!
 +
 +Heureusement,​ il existe des méthodes intégrées. Par exemple, si votre code est correctement indenté ou avec un langage comme python, basé sur l'​indentation:​
 +
 +<​code>:​set foldmethod=indent</​code>​
 +
 +Si vous préférez vous baser sur la syntaxe (if, while, for, etc):
 +
 +<​code>:​set foldmethod=syntax</​code>​
 +
 +Les commandes pour les replis:
 +
 +  * zo et zO (ouvre le repli sous le curseur ou tous les replis successifs entourant le curseur),
 +  * zc (ferme le repli sous le curseur),
 +  * zr et zR (ouvre un niveau de repli supplémentaire ou tous les niveaux de replis),
 +  * zm et zM (ferme un niveau de repli supplémentaire ou tous les niveaux de replis),
 +  * zf (permet de créer manuellement un repli, en mode visuel ou couplé avec un déplacement),​
 +  * zd et zE (supprime le repli sous le curseur ou tous les replis du fichier),
 +  * zj et zk (se déplace respectivement au repli du bas ou du haut),
 +  * [z et ]z (atteint l'​ouverture ou la fermeture du repli actif).
 +
 +======Configuration======
 +
 +La configuration de vim se fait au moyen du fichier ~.vimrc. Vous pouvez inclure dans ce fichier toute commande que vous pouvez faire en mode commande. Par exemple:
 +  :set number
 +Ceci affiche les numéros de ligne. Si vous voulez que les numéros de ligne soient toujours affichés, vous n'avez qu'à ecrire dans votre .vimrc:
 +  set number
 +
 +On peut aussi rajouter des scripts dans son vimrc, que ce soient des script bash, python ou perl (à condition d'​avoir installer les add-on), les possibilités sont donc infinies.
 +
 +On peut aussi définir ses propres raccourcis clavier qui peuvent aussi lancer leur propres scripts mais pour l'​exemple,​ on va prendre une configuration simple mais efficace:
 +
 +<​code>​
 +" couleur par rapport à la syntaxe
 +syntax on
 +
 +" mon terminal a un fond noir
 +set background=dark
 +
 +" réglage pour gérer la souris en interne, pour la gérer en externe, mettre r
 +set mouse=a
 +
 +" detecter le type de fichier et charger les plugins
 +filetype indent plugin on
 +
 +" forcer le retour à la ligne lorsque celle-ci dépasse de l'​écran
 +set wrap
 +
 +"​indentation intelligente
 +set smartindent
 +
 +" afficher les numéros de ligne
 +set number
 +
 +" customisation de la barre de status
 +set statusline=%<​%f%m\ %r\ %h\ %w%=%l,%c\ %p%%
 +
 +" ??????
 +set whichwrap=<,>,​[,​]
 +
 +" rester dans la même colone quand on change de ligne
 +set nostartofline
 +
 +"​afficher les replis
 +set foldcolumn=4
 +
 +" voire la ligne et la colone en bas à droite
 +set ruler
 +
 +" optimiser la vitesse de réaction du terminal
 +set ttyfast
 +
 +" pour un fichier texte, activer le spellchecker
 +autocmd BufEnter *.txt set spell
 +set spelllang=fr
 +
 +" effacer les badwhitespace à l'​enregistrement
 +autocmd BufRead,​BufWrite * if ! &bin | silent! %s/​\s\+$//​ge | endif
 +
 +" methode de repli automatique
 +set foldmethod=indent
 +
 +</​code>​
 +
 +======Les add-ons======
 +
 +Il y a de nombreux add-ons, scripts et macros pour vim. Notamment pour chaque langage de programmation,​ l'​intégration d'un terminal dans un split (vim-conque),​ l'​outliner (vim-outliner),​ etc.
 +
 +=====Vim-addons=====
 +
 +Vim-addons est une commande qui permet de gérer les add-ons et de les ajouter à votre session utilisateur. Si l'​add-on fait partie d'un package de votre distribution,​ il n'est pas ajouté à votre session.
 +
 +======Vim ou emacs?​======
 +
 +On ne peut pas décemment écrire un article sur vi sans évoquer le plus vieux troll de l'​histoire de l'​internet.
 +
 +Emacs est l'​autre éditeur en console plébiscité par la communauté. Les différences entre les deux logiciels ont opposé et opposent encore les farouches guerriers de emacs aux terribles cohortes de vi.
 +
 +On reproche principalement à emacs ses raccourcis claviers alambiqués,​ sa lourdeur, le fait qu'il ne fait pas le café, de ne pas être vi, etc. Et on reproche à vi... des choses sans importance. Vi est beaucoup mieux ;)
 +
 +======Liens======
 +  *[[http://​fr.wikipedia.org/​wiki/​|vim sur wikipedia]]
 +  *[[http://​www.vim.org|Site officiel]]
 +  *[[http://​vim-fr.org|Communauté francophone]]
  
util/vim.txt · Dernière modification: 2018/11/17 13:54 (modification externe)