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)====== | ||
+ | {{: | ||
+ | |||
+ | ======Présentation====== | ||
+ | |||
+ | Vim, c'est quoi ? | ||
+ | Une description en 6 Ko | ||
+ | |||
+ | Vim ("Vi IMproved", | ||
+ | a savoir un programme semblable a l' | ||
+ | |||
+ | 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' | ||
+ | Vim est distribué sous licence opensource compatible GPL. C'est un " | ||
+ | orphelins d' | ||
+ | |||
+ | ======Les modes d' | ||
+ | |||
+ | Il y a plusieurs modes d' | ||
+ | |||
+ | * Le mode interactif: on n' | ||
+ | * Le mode insertion: là, c'est pour entrer du texte | ||
+ | * Le mode remplacement: | ||
+ | * Le mode commande: pour entrer des commandes | ||
+ | * Le mode recherche | ||
+ | * Le mode visuel: pour faire des sélections, | ||
+ | |||
+ | On bascule d'un mode à l' | ||
+ | |||
+ | * Pour revenir au mode interactif: <esc> | ||
+ | * Depuis le mode interactif: | ||
+ | * Mode insertion: <i> ou <s> ou < | ||
+ | * Mode remplacement: | ||
+ | * Mode commande: <:> | ||
+ | * Opérations en mode interactif: | ||
+ | * Recherche: </> | ||
+ | * Visuel: <v> | ||
+ | * Visuel ligne: <V> | ||
+ | * Visuel bloc: < | ||
+ | |||
+ | ======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: < | ||
+ | * Passer de majuscule à minuscule: <~> | ||
+ | * Supprimer le caractère sous le curseur (eq touche suppr): <x> ou < | ||
+ | * 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 < | ||
+ | |||
+ | =====En mode recherche===== | ||
+ | |||
+ | * Rechercher: </> + ma recherche + touche < | ||
+ | * Occurrence suivante: <n> | ||
+ | * Occurrence précédente: | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Pour remplacer toutes les occurrence d'une expression: | ||
+ | : | ||
+ | |||
+ | Par exemple: | ||
+ | : | ||
+ | Ceci remplace /usr/bin par / | ||
+ | |||
+ | =====En mode commande===== | ||
+ | |||
+ | * Enregistrer: | ||
+ | * Quitter: q | ||
+ | * Enregistrer et quitter: wq | ||
+ | * Quitter en ignorant les modifications: | ||
+ | |||
+ | ======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< | ||
+ | * Buffer précédent/ | ||
+ | * Un fichier dans un nouveau buffer: b nomdufichier | ||
+ | * Fermer un buffer: bw | ||
+ | * Ouvrir un buffer en splitant l' | ||
+ | |||
+ | |||
+ | =====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/ | ||
+ | |||
+ | =====Spliter l' | ||
+ | |||
+ | En mode commande: | ||
+ | |||
+ | * spliter horizontalement: | ||
+ | * spliter verticalement: | ||
+ | |||
+ | En mode interactif, toute commande est précédée par < | ||
+ | |||
+ | * Changer de viewport: < | ||
+ | * 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' | ||
+ | |||
+ | Heureusement, | ||
+ | |||
+ | < | ||
+ | |||
+ | Si vous préférez vous baser sur la syntaxe (if, while, for, etc): | ||
+ | |||
+ | < | ||
+ | |||
+ | 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' | ||
+ | |||
+ | ======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' | ||
+ | |||
+ | On peut aussi définir ses propres raccourcis clavier qui peuvent aussi lancer leur propres scripts mais pour l' | ||
+ | |||
+ | < | ||
+ | " 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' | ||
+ | set wrap | ||
+ | |||
+ | " | ||
+ | set smartindent | ||
+ | |||
+ | " afficher les numéros de ligne | ||
+ | set number | ||
+ | |||
+ | " customisation de la barre de status | ||
+ | set statusline=%< | ||
+ | |||
+ | " ?????? | ||
+ | set whichwrap=<,>, | ||
+ | |||
+ | " rester dans la même colone quand on change de ligne | ||
+ | set nostartofline | ||
+ | |||
+ | " | ||
+ | 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' | ||
+ | autocmd BufRead, | ||
+ | |||
+ | " methode de repli automatique | ||
+ | set foldmethod=indent | ||
+ | |||
+ | </ | ||
+ | |||
+ | ======Les add-ons====== | ||
+ | |||
+ | Il y a de nombreux add-ons, scripts et macros pour vim. Notamment pour chaque langage de programmation, | ||
+ | |||
+ | =====Vim-addons===== | ||
+ | |||
+ | Vim-addons est une commande qui permet de gérer les add-ons et de les ajouter à votre session utilisateur. Si l' | ||
+ | |||
+ | ======Vim ou emacs? | ||
+ | |||
+ | On ne peut pas décemment écrire un article sur vi sans évoquer le plus vieux troll de l' | ||
+ | |||
+ | Emacs est l' | ||
+ | |||
+ | On reproche principalement à emacs ses raccourcis claviers alambiqués, | ||
+ | |||
+ | ======Liens====== | ||
+ | *[[http:// | ||
+ | *[[http:// | ||
+ | *[[http:// | ||
util/vim.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1