Linux offre plusieurs solutions comme éditeurs en mode texte. Parmi eux :
vim
: Éditeur puissant et léger hérité de BSD. VI iMproved
(VI aMélioré).
emacs
: L'éditeur ultime et lourd hérité de GNU. L'original
de RMS (Richard M. Stallman).
xemacs
: Emacs: The Next Generation (la nouvelle génération),
à l'origine par Lucid.
mcedit
: Éditeur GNU pour débutant. Identique à l'éditeur
interne de mc
. Voir Éditeur, Section 4.3.5.
ae
: Petit éditeur par défaut (Potato). À éviter.
nano
: Petit éditeur GNU par défaut (Woody). Emule
pico
.
joe
: Pour les vieux habitués de WordStar ou de TurboPascal.
jed
: Éditeur rapide et complet avec menus et raccourcis
Emacs.
jove
: Très petit éditeur avec raccourcis Emacs.
nvi
: Nouveau vi. Compatible bogue pour bogue avec le vi
original.
Utilisez update-alternatives --config editor pour changer d'éditeur par défaut. De plus, beaucoup de programmes utilisent les variables d'environnement EDITOR ou VISUAL pour décider quel éditeur utiliser. Voir Éditeur, Section 4.3.5.
Il existe aussi quelques éditeurs de texte pour X :
gvim
: Vim avec une interface graphique (paquets
vim
et vim-gtk
)
emacs
: Le vrai Emacs (détecte X automatiquement)
xemacs
: L'Emacs nouvelle génération (détecte X
automatiquement)
Ces commandes xclient prennent des options standard comme -fn a24 qui rendent les choses faciles pour les plus vieux comme moi :-) Voir Clients X, Section 9.4.4.
Il y a quelques éditeurs dans /bin
. L'un d'eux doit être installé
pour faciliter l'édition de fichiers quand /usr
n'est pas
accessible.
elvis-tiny
: Editeur minimum type vi (vi
pour le
démarrer)
nano-tiny
: Editeur minimum non vi (nano-tiny
pour le démarrer)
ed
: Editeur minimum (toujours là mais difficile à utiliser)
Lisez la page « VIM - main help file » en tapant <F1> dans le programme.
<F1> Aide <esc> Retour au mode normal V Mode visuel i Mode insertion : Commandes en ligne :set tw=72 Paramètre la largeur du texte à 72 <F11> Mode Insertion (collage) :r! date -R Insertion de la date selon RFC-822 qa Enregistre la frappe dans le registre a q Arrête l'enregistrement de la frappe @a Exécute la frappe enregistrée dans le registre a :edit foo.txt Edite un autre fichier en chargeant foo.txt :wnext Enregistre le fichier courant et édite le fichier suivant
q et @ peuvent être utilisés pour enregistrer et exécuter de simples macros. Par exemple, pour créer une macro qui insère des balises HTML pour l'italique autour du mot sur lequel se trouve le curseur, vous pourriez taper qii<i>^[ea</i>^[q (où ^[ est la touche ESC). Taper @i au début d'un mot ajoute les balises <i> et </i>.
Voir aussi Utiliser GnuPG avec Vim, Section 14.4.2.
<F1> Aide <F10> Menu C-u M-! date -R Insertion de la date selon RFC-822
démarrer l'éditeur : emacs nom_de_fichier vim nom_de_fichier démarrage en compatibilité vi : vim -C démarrage en non-compatible vi : vim -N démarrage en mode par défaut : emacs -q vim -N -u NONE
Sortie : C-x C-c :qa /:wq /:xa /:q! Retour/mode commande : C-g <esc> Retour(gauche) : C-b h Après(droite) : C-f l Suivant(en bas) : C-n j Précédent(en haut) : C-p k Début de ligne(^) : C-a 0 Fin de ligne($) : C-e $ Commandes mUltiples : C-u nnn cmd :count cmd Commandes Multiples : M-digitkey cmd Sauvegarder le fichier : C-x C-s :w file Début du tampon : M-< 1G Fin du tampon : M-> G Écran suivant : C-v ^F 1/2 écran suivant : ^D Ligne suivante : ^E Revenir d'1 écran : M-v ^B Revenir d'1/2 écran : ^U Ligne précédente : ^Y Avance l'autre fenêtre : M-C-v Effacer sous le curseur : C-d x Effacer à partir du curseur jusqu'à la fin de ligne : C-k D iRecherche en avant : C-s iRecherche en arrière : C-r Chercher en avant : C-s enter / Chercher en arrière : C-r enter ? iRecherche avec expression rationnelle : M-C-s iRecherche en arrière avec expression rationnelle : M-C-r Chercher avec expression rationnelle : M-C-s enter / Chercher en arrière avec expression rationnelle : M-C-r enter ? Aide : C-h C-h :help Aide Apropos : C-h a Aide sur les liens : C-h b :help key Aide Info : C-h i Help mode Majeur : C-h m Aide tutorial : C-h t :help howto Annulation : C-_ u Refaire : C-f ^R Marquer la position du curseur : C-@ m{a-zA-Z} Échange Marque et position : C-x C-x Aller à la marque dans le fichier actuel : '{a-z} Aller à la marque dans n'importe quel fichier : '{A-Z} Copier région : M-w {visual}y Tuer région : C-w {visual}d Copier et garder tampon : C-y Copier depuis le tampon : M-y p Conversion d'une zone en majuscules : C-x C-u Conversion d'une zone en minuscules : C-x C-l Insère un caractère spécial : C-q octalnum/keystroke ^V decimal/keystroke Remplace : M-x replace-string :%s/aaa/bbb/g Remplace regexp : M-x replace-regexp :%s/aaa/bbb/g Recherche et remplace : M-% :%s/aaa/bbb/gc Recherche et remplace : M-x query-replace Recherche et remplace avec expression rationnelle : M-x query-replace-regexp Ouvre un fichier : C-x C-f :r file Sauvegarde le fichier : C-x C-s :w Sauve tous les tampons : C-x s :wa Sauvegarde sous : C-x C-w file :w file Demande un tampon : C-x b Liste le tampon : C-x C-b :buffers Commute en lecture seule :C-x C-q :set ro Demande et tue le tampon :C-x k Scinde verticalement : C-x 2 :split Scinde horizontalement : C-x 3 :vsplit (ver. 6) Va à une autre fenêtre : C-x o ^Wp Efface cette fenêtre : C-x 0 :q Efface autre fenêtre : C-x 1 Lance un shell en arrière-plan : M-x compile Tue un shell lancé en arrière-plan : M-x kill-compilation Lance make : :make Makefile Inspecte les messages d'erreur : C-x` Lance un shell et enregistre : M-x shell :!script -a tmp ...clean BS, ... :!col -b <tmp >record sauve/rappelle le shell/enregistre : C-x C-w record :r record Lance shell : M-! sh :sh Lance une commande : M-! cmd :!cmd Lance une commande et insère : C-u M-! cmd :r!cmd Lance un filtre : M-| file {visual}:w file Lance un filtre et insère : C-u M-| filter {visual}:!filter Montre une option :se[t] {option}? relance l'option :se[t] {option}& relance une option booléenne :se[t] no{option} commute une option booléenne :se[t] inv{option} met le texte sur 72 colonnes :se tw=72 pas d'organisation du texte :se tw=0 autoindentation :se ai étend la tabulation :se et spécifie un commentaire (courrier) :se comments=n:>,n:\| Lance GDB M-x gdb décrit le mode GDB C-h m saute une ligne M-s va à la ligne suivante M-n saute une instruction (stepi) M-i Finit le cadre de la pile courante C-c C-f continue M-c up arg frames M-u down arg frames M-d copie le numéro à partir du point, insère à la fin C-x & positionne un point d'arrêt C-x SPC
Afin de mettre en surbrillance les spécificités et la syntaxe avec Vim, ajoutez
les lignes suivantes dans ~/.vimrc
ou
/etc/vimrc
:
set nocompatible set nopaste set pastetoggle=<f11> syn on
Le mode paste permet d'éviter que l'autoindentation n'interfère avec le couper/coller en mode console/terminal. C'est mieux que faire un simple ":set noai".
Voir Utiliser GnuPG avec Vim, Section 14.4.2 pour l'intégration de GnuPG.
apt-get install exuberant-ctags et lancez ctags
dans
les fichiers source. Taper :tag function_name dans vim
pour aller à la ligne qui commence function_name. Les balises
marchent pour C, C++, Java, Python, beaucoup d'autres langages.
Emacs a les mêmes possibilités avec les ctags.
so \$VIMRUNTIME/syntax/2html.vim avec Vim en mode commande convertira le texte en texte html. Sauvegarder avec :w file.html et :q. Très utile pour du code C, etc.
vim
vim
peut éditer plusieurs fichiers dans un environnement
multi-fenêtré en scindant l'écran. Tapez :help usr_08.txt pour
plus de détails.
Pour scinder l'écran pour afficher différents fichiers, tapez à l'invite de commande de vi :
:split another-file :vsplit another-file
Ou à l'invite du shell :
$ vi -o file1.txt file2.txt # Séparation horizontale $ vi -O file1.txt file2.txt # Séparation verticale
lancera vi en mode multi-fenêtré.
$ vimdiff file.txt~ file.txt # donne les changements récents de file.txt $ vimdiff file.en.sgml file.fr.sgml # donne les changements dans la traduction $ gvimdiff file.txt~ file.txt # sous X
fournit une vue sympa des différences entre un original et un fichier de sauvegarde. En SGML, cela fait la correspondance des balises, donc comparer les traductions dans ce mode marche très bien.
Mouvements spéciaux du curseur avec CTRL-W :
CTRL-W + augmente la taille d'une fenêtre CTRL-W - réduit la taille d'une fenêtre CTRL-W h se déplace vers la fenêtre de gauche CTRL-W j se déplace vers la fenêtre en dessous CTRL-W k se déplace vers la fenêtre au dessus CTRL-W l se déplace vers la fenêtre de droite ...
Les commandes suivantes permettent de contrôler le défilement de l'écran :
:set scrollbind :set noscrollbind
Guide de référence pour Debian
CVS, lun 03 avr 2005 22:57:18 UTCosamu@debian.org
gerbs@free.fr