====== Editeur VI ======
----
===== Déplacements =====
==== Au sein du fichier ====
page suivante
page précédente
½ page suivante
½ page précédente
G fin de fichier
: aller à la ligne n
+ avancer de n lignes
- reculer de n lignes
{ paragraphe précédent
} paragraphe suivant
z ligne courante en haut de l’écran
z. ligne courante au milieu de l’écran
z ligne n au milieu de l’écran
==== Au sein d'une ligne ====
0 début de ligne
^ début de ligne (pas les espaces)
$ fin de ligne
w déplacement un mot à droite
b déplacement d’un mot à gauche
) fin de phrase
( début de phrase
% recherche la parenthèse ou crochet correspondant
----
[[all:bibles:linux:vi|Haut de page]]
===== Modifications =====
==== Insertion ====
i insertion devant le curseur
I insertion en début de ligne
a ajout après le curseur
A ajout en fin de ligne
o ajout ligne suivante
O insertion ligne précédante
:r fichier insert le fichier à la ligne suivante
==== Suppression ====
x caractère courant
x n caractères
dw mot courant
dw n mots
dd ligne courante
dd n lignes
d^ depuis le début de la ligne
d$ jusqu’à la fin de la ligne
:g/xx/d efface toutes les lignes contenant xx
:g!/xx/d efface toutes les lignes ne contenant pas xx
:v/xx/d efface toutes les lignes ne contenant pas xx
:g/^$/d efface toutes les lignes vides
==== Remplacement ====
r caractère courant
R mode remplacement
cw le mot courant
c$ ou C jusqu’à la fin de la ligne
c^ depuis le début de la ligne
s remplace 1 caractère et passe en insertion
----
===== Recherche/Remplacement =====
==== Recherche ====
/xxx recherche en avant
?xxx recherche en arrière
/^xxx recherche en début de ligne
/[xy]zz recherche xzz ou yzz
/[x-z]yy recherche xyy à zyy
n relance la dernière recherche
N dernière recherche en sens inverse
`^xx recherche xx en début de ligne
/lin[uU]?x/ recherche linux ou linUx
<#> recherche mot sous le curseur
<£> recherche mot sous le curseur
==== Remplacement ====
:s/xx/yy yy à la place de xx dans ligne courante
:s/xx/yy/c idem avec confirmation
:s/xx/yy/g remplace dans tout le fichier
:s/xx/yy/cg idem avec confirmation
:g/xx/s//yy/g yy à la place de xx dans tout le fichier
:g/xx/s//yy/cg yy à la place de xx avec confirmation dans tout le fichier
:n,m/xx/s//yy/g yy à la place de xx des lignes n à m
:%s/xx/yy/g yy à la place de xx dans tout le fichier
:%s/xx/yy/cg yy à la place de xx avec confirmation dans tout le fichier
& répète la précédente commande :s
----
[[all:bibles:linux:vi|Haut de page]]
===== Buffer =====
==== Mémorisation ====
yy ou Y mémorisation ligne courante
”xyy ou ”xY idem dans le buffer x
nyy ou nY mémorisation de n lignes
”xnyy ou ”xnY idem dans le buffer x
y$ mémorisation de la fin de la ligne
mx marque le début d’un bloc
y’x mémorise depuis le début du bloc
Si la référence x du buffer est une lettre majuscule, les mémorisations se font en ajout
==== Utilisation ====
p Ajout du buffer après
”xp Ajout du buffer x après
P Insertion du buffer avant
”xP Insertion du buffer x avant
----
[[all:bibles:linux:vi|Haut de page]]
===== Astuces =====
==== Exécution commande ====
:g exécute une commande sur les lignes correspondant à une expression régulière.
:g/xx/d efface toutes les lignes contenant xx
:g!/xx/d efface toutes les lignes ne contenant pas xx
:g/^$/d efface les lignes vides
==== Supprimer les débuts de lignes ====
:%norm 10x efface les 10 premières colonnes de toutes les lignes
:5,10 dw efface le premier mot des lignes 5 à 10
==== Modifications complexes ====
:2,9norm f"i(^[f:r,$i)
* :2,9 on applique de la ligne 2 à la ligne 9 seulement
* norm on applique les commandes usuelles en mode commande
* f" on recherche la première "
* i( on insère une parenthèse ouvrante
* ^[ équivalent de la touche ESC (on l'obtient avec la séquence CtrlV puis ESC)
* f: on recherche :
* r, on remplace les : par une virgule
* $ on va en fin de ligne
* i) on insère une parenthèse fermante
==== Dos2Unix ====
Changer tous les par
:%s///g
==== Visualiser en mode binaire ====
=== VI ===
vi -b
=== xxd ===
xxd
=== hexdump ===
hexdump -C
----
[[all:bibles:linux:vi|Haut de page]]
===== Macro =====
==== Enregistrer une macro ====
q a I , ESC j q
* q : enregistrer une macro
* a : nom du registre de la macro
* A partir de là faire les actions à enregistrer. Dans l'exemple (I , ESC j) insertion en début de ligne d'une virgule puis on passe à la ligne suivante.
* q : fin de l'enregistrement de la macro
==== Exécuter une macro ====
=== n fois ===
Pour exécuter 5 fois la macro du registre a :
5 @ a
----
[[all:bibles:linux:vi|Haut de page]]
===== Quitter / Sauvegarde =====
:w sauvegarde
:wq sauvegarde et quitter
:x sauvegarde et quitter
:w fichier sauvegarde dans fichier
:n,mw fichier sauvegarde dans fichier lignes n à m
:q quitter
:q! quitter sans sauver (abandon)
:e!fichier abandon puis édition fichier
----
[[all:bibles:linux:vi|Haut de page]]
===== Commandes diverses =====
. ré exécute la dernière commande
u undo : annule l’action précédente
redo :refait l’action précédente
J join :concatène la ligne courante et la suivante
:!commande Exécution d’une commande shell
:!!commande Le résultat de la commande est inséré après
:!sh shell (retour par exit ou )
<< décalage vers la gauche de shiftwidth caractères
>> décalage vers la droite de shiftwidth caractères
affiche les infos sur le fichier (nom, nb de lignes, …)
----
[[all:bibles:linux:vi|Haut de page]]
===== Configuration en mode commande =====
:set all pour visualiser les options
:NoMatchParen inhibition du match parenthesis ne fonctionne pas dans .vimrc car module pas encore chargé
:DoMatchParen activation du match parenthesis
:set mouse-=a activer le copier/coller avec le click droit de la souris
----
[[all:bibles:linux:vi|Haut de page]]
===== Fichier de configuration =====
Les options de l’éditeurs sont mémorisées dans le fichier ~/.exrc ou ~/.vimrc ou globalement sous /etc/vim/vimrc
colorscheme delek autre thème pour la coloration syntaxique
set tabstop=4 taille tabulation = 4 caractères
set shiftwidth=4 taille pour décallage = 4 caractères
set number affiche les n° de ligne
set autoident auto indentation du texte (taper en mode insertion pour revenir en arrière)
set showmode affiche en bas de l’écran quand on est en mode insertion
set ic/set noic recherche indépendante/dépendante de la caste
syn on coloration syntaxique
let loaded_matchparen = 1 évite le chargement du module qui fait le match parenthèse
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o désactiver l’insertion automatique de commentaires.
----
[[all:bibles:linux:vi|Haut de page]]
===== Dépannage =====
==== Mauvais fonctionnement du copier/coller à la souris ====
=== Problème ===
Quand on essaye de d'un click de souris, l'éditeur passe dans un mode visuel.
=== Palliatif ===
Utiliser la touche lors du
=== Solution ===
Le problème vient de l'absence du fichier de configuration. Créer un fichier ~/.vimrc avec par exemple la ligne de coloration syntaxique pour vim :
syn on
Penser à créer le fichier /root/.vimrc pour les commandes vi passées avec sudo
----
[[all:bibles:linux:vi|Haut de page]]