Outils pour utilisateurs

Outils du site


applications:outils_systeme:vim

Vim

Vim est un éditeur de texte.

Installation

le 13/11/2008 sur Unbuntu 8.10

  • Remplacer vim-tiny par vim
$ sudo aptitude install vim

Configuration

le 13/11/2008 sur Unbuntu 8.10

Merci à : http://linux-attitude.fr/post/Vimrc-collaboratif

  • Coloration syntaxique
  • Support d'UTF-8
  • Correcteur orthographique
  • Auto-indentation
  • Espaces à la place tabulations
  • Repérage de la ligne en cours
$ mkdir -p .vim/spell
$ cd .vim/spell
$ wget http://ftp.vim.org/pub/vim/runtime/spell/fr.utf-8.spl
$ vi .vimrc

Commandes

Affichage
:se nu Afficher les numéros de ligne
:se nonu Désactiver l'affichage des lignes
:se ts=4 Régler la largeur des TABulations
:se ic Activer Ignorer la case
:se noic Désactiver Ignorer la case
:se cul Surligner la ligne en cours
Recherche
:/texte recherche\c Recherche sans tenir compte de la case
Navigation / Sélection
:1 Aller au début du texte
gg Aller au début du texte
:$ Aller à la fin du texte
G Aller à la fin du texte
ggVG Sélectionner tout le texte
Edition
J Joindre la ligne courante avec la suivante
guw passer un mot en minuscule
gUw passer un mot en majuscule
gu$ passer le texte du curseur à la fin de la ligne en minuscule
gU$ passer le texte du curseur à la fin de la ligne en majuscule
:!%sort Trier le contenu du fichier
:s/^.*texte à remplacer/texte de remplacement/ Remplacer le DEBUT de ligne
:s/texte à remplacer.*$/texte de remplacement/ Remplacer la FIN de ligne
Insertion
:r!date Insérer le résultat d'une commande système dans le texte
:s/'/'\r/g Insérer un retour à la ligne
:s/^\([0-9]\{13\}\)/EAN : \1suffixe/ Insérer du texte avant «EAN : » et après «suffixe» 1)
Ctrl+v I Esc Insertion en mode colonne
Supression
:g/^$/d Supprimer toutes les LIGNES VIDES
:g/^[\x00-\x1F\x7F]$/d Supprimer toutes les lignes qui ne contiennent QUE des caractères de contrôle
:g/^.*délimiteur/d Supprimer des lignes commençant par «*délimiteur»
Correcteur Orthographique
Ctrl+x s Suggestion en mode insertion
:z= Suggestion en mode commande

Editer le résultat d'un commande

$ ls | vi -

Insérer en mode colonne

  • Passer en mode sélection de bloc Ctrl+v
  • Faire sa sélection
  • Passer en mode Insertion Shift+i
  • Saisir le(s) caractère(s) à insérer dans la colonne
  • Quitter le mode bloc Esc Esc

Modèles de fichiers

Solution 1

Placer les modèles dans ~/.vim/templates

Puis ajouter dans .vimrc une ligne par modèle :

au bufNewFile *.html 0r ~/.vim/templates/xhtml.html

Solution 2

Merci à : http://informatique-et-liberte.tuxfamily.org/2009/06/23/vim-et-son-vimrc-la-gestion-des-templates/

Placer les modèles dans ~/.vimrc

" TEMPLATE-HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
" TEMPLATE-HTML <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
" TEMPLATE-HTML <head>
" TEMPLATE-HTML         <title>titre</title>
" TEMPLATE-HTML         <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
" TEMPLATE-HTML         <meta http-equiv="Content-Language" content="fr" />
" TEMPLATE-HTML         <meta name="author" content="slc66" />
" TEMPLATE-HTML         <meta name="generator" content="vim" />
" TEMPLATE-HTML         <meta name="keywords" lang="fr" content="fr" />
" TEMPLATE-HTML         <meta name="description" content="description" />
" TEMPLATE-HTML </head>
" TEMPLATE-HTML <body>
" TEMPLATE-HTML </body>
" TEMPLATE-HTML </html>

call system("grep \"^..TEMPLATE-HTML\" ~/.vimrc | sed 's/^\" TEMPLATE-HTML //' > /tmp/vim_html.tpl")
autocmd bufNewFile *.html 0r [[applications:tmp_vim_html.tpl]]

" shebang automatique lors de l'ouverture nouveau
" d'un fichier *.py, *.sh (bash), modifier l'entête selon les besoins :
:autocmd BufNewFile *.sh,*.bash 0put =\"#!/bin/bash\<nl># -*- coding: UTF8 -*-\<nl>\<nl>\"|$
:autocmd BufNewFile *.py 0put=\"#!/usr/bin/env python\"|1put=\"# -*- coding: UTF8 -*-\<nl>\<nl>\"|$

Liens

Annexes

Exemple de configuration

.vimrc

" Plein de défauts bien pratiques (à garder en début de fichier)
set nocompatible

" Coloration syntaxique, indispensable pour ne pas se perdre dans les longs fichiers
syntax on

" Le complément du précédent, devine tout seul la couleur du fond (clair sur foncé ou le contraire)
set background&

"Détection du type de fichier pour l'indentation
if has("autocmd")
filetype indent on
endif

" Récupération de la position du curseur entre 2 ouvertures de fichiers
" Parfois ce n'est pas ce qu'on veut ...
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif

" SI c'est pas déjà fait, affiche la position du curseur
set ruler

" Recherche en minuscule -> indépendante de la casse, une majuscule -> stricte
set smartcase

" Ne jamais respecter la casse (attention totalement indépendant du précédent mais de priorité plus faible)
set ignorecase

" Déplacer le curseur quand on écrit un (){}[] (attention il ne s'agit pas du highlight
"set showmatch

" Affiche le nombre de lignes sélectionnées en mode visuel ou la touche/commande qu'on vient de taper en mode commande
set showcmd

" Déplace le curseur au fur et a mesure qu'on tape une recherche, pas toujours pratique, j'ai abandonné
"set incsearch

" Utilise la souris pour les terminaux qui le peuvent (tous ?)
" pratique si on est habitué à coller sous la souris et pas sous le curseur, attention fonctionnement inhabituel
"set mouse=a

" A utiliser en live, paste désactive l'indentation automatique (entre autre) et nopaste le contraire
set nopaste

" Indiquer le nombre de modification lorsqu'il y en a plus de 0 suite à une commande
set report=0

" Met en évidence TOUS les résultats d'une recherche, A consommer avec modération
set hlsearch

" Crée des fichiers ~ un peu partout ...
set backup

" La ruse de sioux pour ne pas qu'ils soient partout (à vous de faire le mkdir)
" En général n'édite pas 2 fichiers de même noms fréquemment dans des répertoires différents, sinon évitez
" -> voir by eric plus bas

" Laisse les lignes déborder de l'écran si besoin
set nowrap

" En live pour quand vous écrivez anglais (le fr est à trouver dans les méandres du net)
"set spell


" Spécial développeurs
"
" Indispensable pour ne pas tout casser avec ce qui va suivre
set preserveindent
" indentation automatique
set autoindent
" Largeur de l'autoindentation
set shiftwidth=4
" Arrondit la valeur de l'indentation
set shiftround
" Largeur du caractère tab
set tabstop=4
" Largeur de l'indentation de la touche tab
set softtabstop=4
" Remplace les tab par des expaces
set expandtab

" by acieroid
" -----------
" Pour highlighter la ligne courante (pour mieux se repérer) en bleu :
set cursorline
highlight CursorLine ctermbg=blue

" Pour activer les numéros de lignes dans la marge :
"set number

" by eric
" -----------
" Utilise shiftwidth à la place de tabstop en début de ligne (et backspace supprime d'un coup si ce sont des espaces)
set smarttab

" sauvegarder les fichier ~ dans ~/.vim/backup avec création du répertoire si celui-ci n'existe pas
if filewritable(expand("~/.vim/backup")) == 2
set backupdir=$HOME/.vim/backup
else
if has("unix") || has("win32unix")
call system("mkdir $HOME/.vim/backup -p")
set backupdir=$HOME/.vim/backup
endif
endif

" donner des droits d'exécution si le fichier commence par #! et contient /bin/ dans son chemin
function ModeChange()
if getline(1) =~ "^#!"
if getline(1) =~ "/bin/"
silent !chmod a+x <afile>
endif
endif
endfunction

au BufWritePost * call ModeChange()

" by gnuk
" -----------
" On peut passer rapidement du mode paste au mode nopaste avec un raccourcis,
" builtin sur les versions récentes de vim >= 7, sinon il faudrait créer une fonction :
set pastetoggle=<F5>

" Toujours laisser des lignes visibles (içi 3) au dessus/en dessous du curseur quand on
" atteint le début ou la fin de l'écran :
set scrolloff=3

" Afficher en permanence la barre d'état (en plus de la barre de commande) :
set laststatus=2

" Format de la barre d'état (tronquée au début, fichier, flags,  :
set statusline=%<%f%m\ %r\ %h\ %w%=%l,%c\ %p%%

" Permettre l'utilisation de la touche backspace dans tous les cas :
set backspace=2

" Envoyer le curseur sur la ligne suivante/précédente après usage des flèches droite/gauche en bout de ligne :
set whichwrap=<,>,[,]

" Tenter de rester toujours sur la même colonne lors de changements de lignes :
set nostartofline

" Nombre de commandes maximale dans l'historique :
set history=50

" Afficher une liste lors de complétion de commandes/fichiers :
"set wildmode=list:full

Liens

1) Ajouter “EAN : ” avant et “suffixe” après un code sur 13 chiffres.
applications/outils_systeme/vim.txt · Dernière modification: 2014/03/12 16:30 (modification externe)

Outils de la page