vi : notes et astuces à propos de son utilisation
vi est un excellent éditeur de texte très pratique qui a inspiré le peut-être plus connu "vim".
vi est présent par défaut sous OpenBSD. Si vous souhaitez une version qui affiche complètement certains caractères utf-8, alors vous devriez installer le port nvi-*-iconv.
La coloration syntaxique n'est pas présente, et c'est finalement aussi bien : ça impose d'écrire du code clair et lisible.
Utilisation
Je vous épargne un tutoriel ici, il y en a de très bien faits en ligne. Aussi, je vous conseille la lecture de la section suivante du manuel:
Voici quelques astuces que j'utilise quotidiennement.
- m a : pose une marque sous le curseur avec l'étiquette "a" (on peut mettre n'importe quelle lettre).
- ' a : se déplace à l'étiquette "a".
- d'a : Supprime tout du curseur jusqu'à l'étiquette "a".
- > 'a : Incrémente du curseur jusqu'à l'étiquette "a".
- > > : Incrémente la ligne sous le curseur.
- :E fichier : Édite un fichier dans un nouveau panneau. ctrl-w permet de changer de panneau.
- . : répète la dernière commande. Pour annuler plusieurs fois : "u" puis ".". Rappuyer sur u annule l'annulation.
- :vsplit : sépare verticalement
- J : permet de rejoindre 2 lignes consécutives en 1 seule
- C : change tout du curseur jusqu'à la fin de la ligne.
- A : ajoute en fin de ligne.
- z<Enter> : place le curseur au milieu de la fenêtre.
- # : incrémente
- % : si le curseur est sur ( ou {, il est envoyé vers ) ou } (et inversement).
Configuration de vi
La configuration se réalise dans le fichier $HOME/.exrc. Si cela vous intéresse, vous pourrez trouver mon fichier .exrc:
Les options
" longuer des tab : 4 espaces set tabstop=4 " affiche le mode : insert, visual... set verbose showmode " autoindentation set autoindent " autoindentation de 4 espaces set shiftwidth=4 " Voir la règle de status set ruler " numéro de lignes à gauche set number " numéro de la ligne courante en bas set autoprint " scroll leftright set leftright " regex etendues set extended " recherche incrementale set searchinc " montre ce qui match set showmatch " une seule edition par fichier set lock " ne pas afficher les caractères de contrôle set beautify " pas de bip set flash "print helpful messages (eg, 4 lines yanked) set report=1 " Voir les commandes avec :tab. " pour compléter, appuyez ctrl-v puis TAB set cedit=
Les raccourcis
Voilà quelques raccourcis claviers
" RACCOURCIS " ^M est un retour à la ligne: to make it, ctrl-v then return " colle la sélection présente dans le presse-papier map gc :r!xclip -o " retour debut de fichier map gg 1G " insertion de date map gd :r!date +\%d-\%m-\%Y " Voir le fichier dans less map gv :!less % " Tri map gs {!}sort map gS {!}sort -r " raccourcis git map ,; :!git add % && git commit -m " map ,, :!git push " navigation dans les fichiers lorsqu'il y a plusieurs panneaux map gl :n map gh :prev " format to 72 char width map gqip {!}fmt -72 -s -p " check spell map go :!aspell -c % " latex recompile map tt :w :!pdflatex "%"
Quelques détails rapides :
- gg déplace le curseur en haut du fichier.
- gc colle le contenu du presse papier.
- gs trie le contenu du fichier.
- gl et gn affiche le fichier précédent/suivant.
- go vérifie l'orthographe avec aspell. Installez aspell et aspell-fr. Pour que la langue vérifiée soit le français, il faut avoir définit la variable d'environnement LC_MESSAGES dans $HOME/.profile.
Extrait du $HOME/.profile:
LC_CTYPE="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_COLLATE=fr_FR.UTF-8 LC_ALL='fr_FR.UTF-8' LANG='fr_FR.UTF-8' export LC_COLLATE LC_CTYPE LC_MESSAGES LC_ALL LANG
Une fois appelé, ceci apparaît, l'utilisation est limpide :