LinuxPedia

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

Outils pour utilisateurs

Outils du site


util:vim
no way to compare when less than two revisions

Différences

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


util:vim [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1
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 12:54 de 127.0.0.1