*gui.txt* Pour Vim version 6.2. MANUEL de RÉFÉRENCE VIM - par Bram Moolenaar L'Interface Homme/Machine graphique de Vim *gui* *GUI* *IHMg* 1. Lancer l'IHM graphique |gui-start| 2. Ascenseurs |gui-scrollbars| 3. Contrôle de la souris |gui-mouse| 4. Sélections dans l'IHM graphique |gui-selections| 5. Menus |menus| 6. Divers |gui-extras| 7. Commandes shell |gui-shell| Autres documents sur l'IHM graphique : |gui_x11.txt| Pour les élément spécifiques de l'IHM graphique X11. |gui_w32.txt| Pour les élément spécifiques de l'IHM graphique Win32. {absent de Vi} ============================================================================== 1. Lancer l'IHM graphique *gui-start* *E229* *E233* En premier lieu, vous devez vous assurer que vous utilisez une version de Vim qui supporte l'IHM graphique. Pour cela, vérifiez la sortie de la commande ":version" : elle doit inclure "+GUI_Athena", "+GUI_BeOS", "+GUI_GTK", "+GUI_Motif" ou "MS-Windows ... {no} GUI version". La façon de lancer l'IHM graphique dépend du système utilisé. La plupart du temps, vous pouvez utiliser : gvim [options] [fichiers...] La version X11 de Vim peut s'exécuter aussi bien en mode IHM graphique que console. Voir |gui-x11-start|. *gui-init* *gvimrc* *.gvimrc* *_gvimrc* Lorsque l'IHM graphique est lancée, les initialisations sont effectuées dans cet ordre : 1° Les options termcap sont fixées à leurs valeurs par défaut pour l'IHM graphique. 2° Si le fichier menu système existe, il est sourcé. Le nom de ce fichier est normalement "$VIMRUNTIME/menu.vim". Vous pouvez le vérifier avec ":version". Voir aussi |$VIMRUNTIME|. Pour sauter le chargement du menu système, incluez 'M' dans 'guioptions'. *buffers-menu* *no_buffers_menu* Le fichier menu système inclut un menu Tampons. Si vous n'en voulez pas, fixez la variable "no_buffers_menu" dans votre vimrc (pas gvimrc !) : > :let no_buffers_menu = 1 < NOTE : L'activation de la coloration syntaxique charge aussi le fichier menu, vous devez donc désactiver le menu Tampons avant de faire ":syntax on". Les noms de chemins sont tronqués à 35 caractères. Vous pouvez spécifier une longueur différente, par exemple 50, comme ceci : > :let bmenu_max_pathlen = 50 3° Si l'option de ligne de commande "-U {gvimrc}" a été spécifiée lors du lancement de Vim, le fichier {gvimrc} sera lu pour les initialisations. Les étapes suivantes sont sautées. 4° Pour Unix et MS-Windows, si le fichier gvimrc système existe, il est sourcé. Le nom de ce fichier est normalement "$VIM/gvimrc". Vous pouvez le vérifier avec ":version". Voir aussi |$VIM|. 5° Vim effectue la première de ces étapes qui est possible : - Si la variable d'environnement $GVIMINIT existe et est non vide, elle est exécutée en tant que commande Ex. - Si le fichier utilisateur gvimrc existe, il est sourcé. Le nom de ce fichier est normalement "$HOME/.gvimrc". Vous pouvez le vérifier avec ":version". - Pour Win32, quand $HOME n'est pas fixé, "$VIM\_gvimrc" est utilisé. - Quand aucun fichier "_gvimrc" n'est trouvé, ".gvimrc" est également essayé. Et vice versa. 6° Si l'option 'exrc' est activée (cela n'est PAS le cas par défaut), le fichier "./.gvimrc" est sourcé, s'il existe et est différent des fichiers gvimrc système ou utilisateur. Si ce fichier ne vous appartient pas, certaines limitations de sécurité sont appliquées. Quand ".gvimrc" n'est pas trouvé, "_gvimrc" est également essayé. Pour Macintosh et DOS/Win32, "_gvimrc" est essayé en premier. NOTE : Aucune de ces initialisations (sauf la première) n'est effectuée si Vim a été lancé avec "-u NONE" et qu'aucun argument "-U" n'a été donné, ou s'il a été lancé avec "-U NONE". Tout ceci n'intervient qu'APRÈS les initialisations normales de Vim, comme la lecture du fichier vimrc. Voir |initialization|. Mais la fenêtre IHM graphique est ouverte uniquement après que toutes les initialisations ont été réalisées. Si vous souhaitez que des commandes soit exécutées juste après l'ouverture de la fenêtre IHM graphique, utilisez l'événement autocommande |GUIEnter|. Exemple : > :autocommand GUIEnter * winpos 100 50 Vous pouvez utiliser les fichiers gvimrc pour définir vos propres menus personnalisés (voir |:menu|) et initialiser d'autres éléments que vous souhaitez fixer différemment de la version terminal. Emplacements recommandés pour vos initialisations IHM graphique personnelles : Unix $HOME/.gvimrc OS/2 $HOME/.gvimrc ou $VIM/.gvimrc MS-DOS et Win32 $HOME/_gvimrc ou $VIM/_gvimrc Amiga s:.gvimrc ou $VIM/.gvimrc Il existe un certain nombre d'options qui n'ont de sens que dans la version IHM graphique de Vim. Il s'agit 'guicursor', 'guifont', 'guipty' et 'guioptions'. Elles sont documentées dans |options.txt| avec toutes les autres options. Si vous utilisez la version Motif ou Athena de l'IHM graphique, (mais pas pour pour les versions GTK+ ou Win32), certaines ressources X sont disponibles. Voir |gui-resources|. Un autre moyen de fixer les couleurs pour différentes occasions est d'utiliser les groupes de surbrillance. Le groupe "Normal" est utilisé pour fixer les couleurs de premier plan et de fond. Exemple (agréable à l'oeil) : > :highlight Normal guibg=grey90 Les paramètres "guibg" et "guifg" recouvrent les valeurs normales de fond et de premier plan. Les autres paramètres pour le groupe de surbrillance Normal ne sont pas utilisés. Utilisez l'option 'guifont' pour fixer la police. Voyez aussi l'option 'guicursor', qui permet de fixer la couleur du curseur dans différents modes. Vim s'efforce à ce que la fenêtre ne dépasse pas de l'écran lorsqu'il est lancé, afin que vous en voyiez la totalité. Pour que cela fonctionne sur le système X Window, Vim doit faire certaines hypothèses. Vous pouvez modifier la hauteur qui est utilisée pour le titre de la fenêtre et une barre des tâches avec l'option 'guiheadroom'. *:winp* *:winpos* *E188* :winp[os] Affiche la position courante du coin supérieur gauche de la fenêtre IHM graphique Vim en pixels. Ne fonctionne pas dans toutes les versions. *E466* :winp[os] {X} {Y} Place la fenêtre IHM graphique Vim aux coordonnées {X} et {Y}. Les coordonnées doivent spécifier la position en pixel du coin supérieur gauche de la fenêtre. Ne fonctionne pas dans toutes les versions. Fonctionne dans un xterm (récent) |xterm-color|. Quand la fenêtre IHM graphique n'a pas encore été ouverte, les valeurs sont mémorisées jusqu'à ce que la fenêtre soit ouverte. La position est ajustée pour que la fenêtre puisse rentrer dans l'écran (si possible). *:win* *:winsize* *E465* :win[size] {largeur} {hauteur} Fixe la taille de la fenêtre à {largeur} par {hauteur} caractères. Obsolète, utilisez plutôt ":set lines=11 columns=22". Si vous utilisez le système X Window, vous pouvez obtenir des informations sur la fenêtre dans laquelle Vim s'exécute avec cette commande : > :!xwininfo -id $WINDOWID ============================================================================== 2. Ascenseurs *gui-scrollbars* Il existe des ascenseurs verticaux et des horizontaux. Vous pouvez définir ceux qui apparaissent avec l'option 'guioptions'. L'interface ressemble à ceci (avec ":set guioptions=mlrb") : +------------------------------+ | Fichier Edition Aide | <- Barre de menus (m) +-+--------------------------+-+ |^| |^| |#| Zone de texte. |#| | | | | |v|__________________________|v| Ligne d'état normale -> |-+ Fichier.c 5,2 +-| entre des fenêtres Vim |^|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|^| | | | | | | Un autre tampon. | | | | | | |#| |#| Ascenseur gauche (l) -> |#| |#| <- Ascenseur droit |#| |#| (r) | | | | |v|__________________________|v| | |< #### >| | <- Ascenseur du bas ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ (b) Il est possible de désactiver chaque élément (ascenseurs ou menus) en omettant la lettre correspondante dans la chaîne 'guioptions'. L'ascenseur du bas n'est utile que si 'nowrap' est activé. ASCENSEURS VERTICAUX *gui-vert-scroll* Chaque fenêtre Vim possède un ascenseur latéral qu'on peut faire défiler vers le bas ou vers le haut pour se déplacer dans le texte du tampon correspondant. La taille de l'ascenseur est proportionnelle à la partie du tampon qui peut être vu dans la fenêtre. Quand l'ascenseur est amené tout en bas, la dernière ligne du fichier apparaîtra en haut de la fenêtre. Quand une fenêtre est réduite à une hauteur nulle (par l'agrandissement d'une autre fenêtre), son ascenseur disparaît. Il réapparaît lorsque la fenêtre est restaurée. Quand une fenêtre est partagée verticalement, elle n'obtiendra d'ascenseur que si c'est la fenêtre courante, XXX If a window is vertically split, it will only get a scrollbar when it is the current window, or the middle of the current window is above or below it. When there are scrollbars on both sides, and the middle of the current window is on the left halve, the right scrollbar column will contain scrollbars for the rightmost windows. The same happens on the other side. ASCENSEURS HORIZONTAUX *gui-horiz-scroll* L'ascenseur horizontal (en bas de l'IHM graphique Vim) peut être utilisé pour faire défiler le texte bord à bord quand l'option 'wrap' est désactivée. La taille de la barre d'ascenseur est telle que le texte de la ligne courante du curseur peut défiler autant que possible à gauche et à droite. *athena-intellimouse* Si vous possédez une souris Intellimouse et un serveur X qui supporte l'utilisation de la molette, vous pouvez utiliser la molette pour faire défiler le texte verticalement dans gvim. Cela marche avec XFree86 4.0 et ultérieur, ainsi qu'avec certaines versions antérieures si vous avez appliqué des rustines. Voir |scroll-mouse-wheel|. Pour des version plus anciennes de XFree86, vous devez appliquer des rustines à votre serveur X. La page suivant donne quelques informations sur l'utilisation d'une souris Intellimouse pour Linux, ainsi que des liens vers les rustines et binaires du serveur X (vous n'y trouverez peut-être pas ce qu'il vous faut) : http://www.inria.fr/koala/colas/mouse-wheel-scroll/ ============================================================================== 3. Contrôle de la souris *gui-mouse* La souris ne fonctionne que si le drapeau approprié est positionné dans 'mouse'. Quand l'IHM graphique est activée et que 'mouse' n'a pas encore été fixé, l'option 'mouse' est fixée automatiquement à 'a', ce qui active la souris pour tous les modes, sauf pour les invites Appuyez-sur-entrée |hit-enter|. Si ce n'est pas ce que vous souhaitez, la meilleure chose à faire est de définir l'option 'mouse' dans le fichier gvimrc. Autres options prises en compte par la souris : 'mousefocus' le focus de fenêtre suit le pointeur de la souris |gui-mouse-focus| 'mousemodel' assigne une action aux boutons de la souris 'mousehide' masque le pointeur de la souris lors d'une saisie de texte 'selectmode' indique s'il faut lancer le mode Visuel ou le mode Sélection La commande ":behave" fournit un moyen rapide de fixer ces options. *:behave* *:be* :be[have] {modele} Définit un comportement pour la souris et la sélection. Les arguments valides sont : mswin comportement MS-Windows xterm comportement Xterm L'utilisation de ":behave" modifie ces options : OPTION mswin xterm ~ 'selectmode' "mouse,key" "" 'mousemodel' "popup" "extend" 'keymodel' "startsel,stopsel" "" 'selection' "exclusive" "inclusive" Dans le répertoire $VIMRUNTIME, il y a un script nommé "mswin.vim", qui mappera également certaines séquences clavier aux commandes MS-Windows pour couper/copier/coller. Cela n'est PAS compatible, car les séquences CTRL-V, CTRL-X et CTRL-C sont utilisées. Si vous n'y voyez pas d'inconvénient, utilisez cette commande : > :so $VIMRUNTIME/mswin.vim Pour un défilement avec la molette de la souris, voir |scroll-mouse-wheel|. 3.1. DÉPLACER LE CURSEUR AVEC LA SOURIS *gui-mouse-move* Cliquez avec le bouton gauche de la souris à un endroit dans un tampon de texte où vous souhaitez que le curseur aille, et il y va ! CECI FONCTIONNE EN... QUAND 'mouse' CONTIENT... ~ mode Normal 'n' ou 'a' mode Visuel 'v' ou 'a' mode Insertion 'i' ou 'a' Le mode Sélection est géré comme le mode Visuel. Vous pouvez utiliser cela avec un opérateur comme "d" pour couper du texte depuis la position courante jusqu'à la position vers laquelle vous pointez avec la souris. Il vous suffit de tapez "d", puis de cliquer quelque part avec la souris. *gui-mouse-focus* L'option 'mousefocus' peut être activée pour que le focus du clavier suive le pointeur de la souris. Cela signifie que la fenêtre où se trouve le pointeur de la souris est la fenêtre active. Avertissement : cela ne marche pas très bien quand vous utilisez un menu, car la commande ":menu" s'appliquera toujours à la fenêtre du haut. Si vous êtes sur la ligne ':' (ou '/' ou '?') et que vous cliquez (gauche ou droit), le curseur sera amené sur la ligne ':' (si 'mouse' contient 'c', 'a' ou 'A'). Dans n'importe quelle situation, le bouton du milieu de la souris peut être cliqué pour coller la sélection courante. 3.2. SÉLECTION AVEC LA SOURIS *gui-mouse-select* La souris peut être utilisée pour débuter une sélection. La façon de procéder dépend l'option 'mousemodel' : - si 'mousemodel' vaut "extend" : utilisez le bouton droit de la souris ; - si 'mousemodel' vaut "popup" : utilisez le bouton gauche, en gardant la touche Maj enfonçée. Si aucune sélection n'était en cours, une nouvelle sera lancée depuis l'ancienne position du curseur jusqu'à la position vers laquelle la souris pointe. S'il y avait déjà une sélection, son extrémité la plus proche est étendue. Si 'selectmode' contient "mouse", la sélection sera en mode Sélection. Cela signifie que la saisie d'un texte normal remplacera la sélection. Voir |Select-mode|. Sinon, la sélection sera en mode Visuel. Il est possible d'effectuer un double clic pour obtenir une sélection par mots, un triple clic par lignes, et un quadruple clic par blocs rectangulaires. Voir |gui-selections| sur la manière dont la sélection est utilisée. 3.3. AUTRE SÉLECTION DE TEXTE AVEC LA SOURIS *gui-mouse-modeless* *modeless-selection* Un type particulier de sélection est utilisé : - en mode Ligne-de-commande ; - dans la fenêtre command-line quand la souris pointe vers une autre fenêtre ; - pour l'invite Appuyez-sur-entrée |hit-enter| ; - quand le mode courant n'est pas dans l'option 'mouse' ; - quand les touches Ctrl et Maj sont maintenues pressées dans l'IHM graphique. Dans ces cas, comme Vim continue comme s'il n'y avait pas de sélection, et qu'aucun mode n'est associé à la sélection, on parle de « sélection amodale ». N'importe quel texte dans la fenêtre Vim peut être sélectionné. Sélectionnez le texte en pressant le bouton gauche au début, faites glisser la souris jusqu'à la fin puis relâchez le bouton. Pour étendre la sélection, utilisez le bouton droit de la souris si 'mousemodel' vaut "extend", ou le bouton gauche avec la touche Maj pressée si 'mousemodel' vaut "popup". Le bouton du milieu colle le texte. La sélection est annulée quand le texte sélectionné défile ou est modifié. Sur la ligne de commande, CTRL-Y peut être utilisé pour copier la sélection dans le presse-papiers. Pour faire cela en mode Insertion, utilisez "CTRL-O : CTRL-Y ". 3.4. UTILISER LA SOURIS SUR LES LIGNES D'ÉTAT *gui-mouse-status* Un clic (gauche ou droit) sur la ligne d'état au bas d'une fenêtre rend cette fenêtre courante. Cela survient en fait lors du relâchement du bouton (pour distinguer un clic d'un glissement). Avec le bouton gauche de la souris, une ligne d'état peut être tirée vers le haut ou le bas, les fenêtres situées au-dessus et en dessous d'elle étant ainsi redimensionnées. Cela ne modifie pas le focus de fenêtre. Cela vaut également pour une séparation verticale : cliquez dessus pour donner le focus à la fenêtre située à gauche de la séparation ; tirez vers la gauche ou la droite pour rendre les fenêtres plus ou moins larges. 3.5. DIVERS CLICS DE SOURIS *gui-mouse-various* Recherche vers l'avant le mot sous le clic de la souris. Quand 'mousemodel' vaut "popup", ceci débute ou étend une sélection. Recherche vers l'arrière le mot sous le clic de la souris. Saute vers le nom du marqueur sous le clic de la souris. Revient à la position d'avant le saut précédent vers un marqueur (comme CTRL-T). 3.6. MAPPAGES DE SOURIS *gui-mouse-mapping* Les événements souris, complétés par des modificateurs, peuvent être mappés. Par exemple : > :map :map :map :map <2-S-LeftMouse> <2-RightMouse> :map <2-S-LeftDrag> <2-RightDrag> :map <2-S-LeftRelease> <2-RightRelease> :map <3-S-LeftMouse> <3-RightMouse> :map <3-S-LeftDrag> <3-RightDrag> :map <3-S-LeftRelease> <3-RightRelease> :map <4-S-LeftMouse> <4-RightMouse> :map <4-S-LeftDrag> <4-RightDrag> :map <4-S-LeftRelease> <4-RightRelease> Ces mappages permettent à la sélection de fonctionner de la façon dont elle le devrait probablement dans une application Motif, avec Maj + clic gauche permettant l'extension de la zone Visuel, plutôt que le bouton droit de la souris. Un mappage de la souris avec des modificateur ne fonctionne pas pour la sélection amodale. ============================================================================== 4. Sélections dans l'IHM graphique *gui-selections* *quotestar* Vous pouvez effectuer des sélections avec la souris (voir |gui-mouse-select|), ou en utilisant le mode Visuel de Vim (voir |v|). Si 'a' est présent dans 'guioptions', alors dès qu'une sélection est lancée (mode Visuel ou Sélection), ou quand elle est modifiée, Vim devient le propriétaire de la sélection primaire du système de fenêtrage (sur MS-Windows, le presse-papiers |gui-clipboard| est utilisé ; sous X11, la sélection X11 |x11-selection| l'est -- vous devriez lire la documentation en rapport vous concernant). *clipboard* Il existe un registre spécial pour mémoriser cette sélection, il s'agit du registre "*. Rien n'est placé dedans à moins que l'information sur le texte sélectionné soit sur le point de changer (p. ex., avec un clic gauche de la souris quelque part), ou qu'une autre application veuille coller le texte sélectionné. Le texte est alors placé dans le registre "*. Par exemple, pour couper une ligne et en faire la sélection courante (la placer dans le presse-papiers) : > "*dd De la même façon, quand vous souhaitez coller une sélection depuis une autre application, p. ex., en cliquant avec le bouton du milieu de la souris, la sélection est d'abord placée dans le registre "*, puis elle est « collée » comme n'importe quel autre registre. Par exemple, pour coller la sélection (le contenu du presse-papiers) : > "*p Si vous utilisez ce registre sous X11, voir aussi |x11-selection|. Cela explique également le registre associé "+. NOTE : Quand un texte est collé d'un Vim dans un autre Vim, le type de la sélection (par caractères, lignes ou blocs) sera aussi copié. Pour les autres applications, le type sera toujours par caractères. Cependant, si le texte passe par le tampon de coupage X11 |x11-cut-buffer|, le type de la sélection est TOUJOURS perdu. Lorsque la chaîne "unnamed" est incluse dans l'option 'clipboard', le registre sans nom est copié dans le registre "*. Ainsi, vous pouvez y copier et coller la sélection sans ajouter "* aux commandes. ============================================================================== 5. Menus *menus* Pour une introduction, voir |usr_42.txt| dans le Manuel de l'utilisateur. 5.1. UTILISER LES MENUS *using-menus* En pratique, les menus peuvent être utilisés exactement comme les mappages. Vous pouvez définir vos propres menus, autant que vous voulez. Les habitués de Vim n'utiliseront pas beaucoup les menus. Mais leur puissance réside surtout dans la possibilité d'ajouter ses propres menus et éléments de menu. Ils se rendent alors utiles pour des choses dont vous avez oublié la séquence clavier. Pour créer des menus dans une langue différente, voir |:menutrans|. *menu.vim* Les menus par défaut sont lus depuis le fichier "$VIMRUNTIME/menu.vim". Voir |$VIMRUNTIME| pour connaître le chemin exact. Vous pouvez définir vos propres menus. Il est conseillé de garder les menus par défaut. Vous pouvez y ajouter des éléments ou, si vous n'aimez pas du tout les menus actuels, les supprimer tous |:unmenu-all|. Vous pouvez aussi empêcher que les menus par défaut ne soient chargés en ajoutant cette ligne dans votre vimrc (PAS dans votre gvimrc !) : > let did_install_default_menus = 1 Pour annuler aussi le chargement du menu Syntaxe : > let did_install_syntax_menu = 1 Si vous souhaitez conserver le menu Syntaxe mais pas toutes les entrées pour chaque fichier de syntaxe (ce qui prend un peu de temps au chargement) : > let skip_syntax_sel_menu = 1 < *console-menus* Bien que cette documentation soit consacrée à l'IHM graphique, vous pouvez en fait utiliser des menus également en mode console. Vous devrez alors charger explicitement |menu.vim|, qui n'est pas chargé par défaut. Vous pouvez utiliser la commande |:emenu| et le complètement en mode Ligne-de-commande avec 'wildmenu' pour accéder aux entrées du menu, comme pour un vrai menu système. Pour cela, placez ces commandes dans votre fichier vimrc : > source $VIMRUNTIME/menu.vim set wildmenu set cpo-=< set wcm= map :emenu La touche fera apparaître le menu. Vous pouvez ensuite utiliser les touches fléchées pour choisir une entrée de menu. Tapez pour l'exécuter. Tapez pour annuler. La fonctionnalité |+menu| doit avoir été activée lors de la compilation pour supporter ceci. *tear-off-menus* GTK+ et Motif supportent les menus détachables. Ce sont des sortes de menus déroulants « collants » qui restent présents en permanence. Si le redimensionnement ne marche pas correctement, cela peut provenir de l'utilisation de quelque chose comme "Vim*geometry" dans un Xdefaults. Utilisez plutôt "Vim.geometry". La version IHM graphique Win32 peut imiter les menus détachables de Motif. En fait, un habitué de Motif verra tout de suite la différence, mais cela n'affecte pas l'utilisation. Vous pouvez en outre utiliser la commande |:tearoff| en conjonction avec des menus cachés |hidden-menus| pour créer des menus flottants n'apparaissant pas sur la barre de menus principale. 5.2. CRÉER DE NOUVEAUX MENUS *creating-menus* *:me* *:menu* *:noreme* *:noremenu* *:am* *:amenu* *:an* *:anoremenu* *:nme* *:nmenu* *:nnoreme* *:nnoremenu* *:ome* *:omenu* *:onoreme* *:onoremenu* *:vme* *:vmenu* *:vnoreme* *:vnoremenu* *:ime* *:imenu* *:inoreme* *:inoremenu* *:cme* *:cmenu* *:cnoreme* *:cnoremenu* *E330* *E327* *E331* *E336* *E333* *E328* *E329* *E337* Pour créer un nouvel élément de menu, utilisez les commandes ":menu". Elles ressemblent au jeu de commandes ":map", mais le premier argument correspond à un nom d'élément de menu, donné sous la forme d'un chemin de menus et de sous-menus utilisant des '.' comme séparateurs. Exemples : > :menu Fichier.Enregistrer :w :inoremenu Fichier.Enregistrer :w :menu Edition.Changements.Supprimer\ Les\ Espaces :%s/[ ^I]//g La dernière commande créera un nouvel élément dans le menu "Edition" de la barre de menus qui, si vous laissez la souris appuyée dessus, fera apparaître un menu contenant l'élément "Changements", qui est un sous-menu contenant l'élément "Supprimer Les Espaces", lequel se chargera d'effectuer cette opération s'il est sélectionné. Caractères spéciaux dans un nom de menu : & Le caractère suivant est une touche de raccourci. Assurez-vous que chaque touche de raccourci n'est utilisée qu'une seule fois dans un (sous-)menu. Pour insérer un '&' littéral dans le nom du menu, utilisez "&&". Sépare le nom du menu du texte aligné à droite. Cela peut servir à afficher la commande équivalente. Le texte littéral "" peut être utilisé ici à votre convenance. Si vous utilisez une vraie tabulation, n'oubliez pas de la faire précéder par une contre-oblique ! Exemple : > :amenu &Fichier.&Ouvrir:e :browse e (Tapez ceci littéralement.) Avec les raccourcis 'F' (la touche étant pressée) puis 'O', ce menu peut être utilisé. La deuxième partie fera afficher "Ouvrir :e". Le ":e" est aligné à droite et le 'O' est souligné, pour indiquer le raccourci. La commande ":amenu" peut être utilisée pour définir des entrées de menus pour tous les modes à la fois. Pour que la commande fonctionne correctement, un caractère est automatiquement inséré pour certains modes : MODE INSÉRÉ AJOUTÉ ~ Normal rien rien Visuel Insertion Lignecmd Op-en-cours L'ajout de "CTRL-\ CTRL-G" permet de revenir en mode Insertion lorsque 'insertmode' est activé. |CTRL-\_CTRL-G| Par exemple > :amenu Fichier.Suivant :next^M équivaut à : > :nmenu Fichier.Suivant :next^M :vmenu Fichier.Suivant ^C:next^M^\^G :imenu Fichier.Suivant ^O:next^M :cmenu Fichier.Suivant ^C:next^M^\^G :omenu Fichier.Suivant ^C:next^M^\^G Attention : En mode Insertion, cela ne fonctionne que pour une commande SIMPLE en mode Normal, à cause du CTRL-O. Si vous avez deux commandes ou plus, vous devrez utiliser la commande ":imenu". Pour insérer du texte dans n'importe quel mode, vous pouvez utiliser le registre d'expression : > :amenu Insertion.blabla "='blabla'P NOTE : Les drapeaux '<' et 'k' de 'cpoptions' s'appliquent ici aussi (quand ils sont inclus, la notation <> et les codes clavier bruts ne sont pas reconnus). NOTE : en mode Ligne-de-commande exécute la commande, comme dans un mappage. Ce comportement est compatible Vi. Utilisez CTRL-C pour quitter le mode Ligne-de-commande. *:menu-* *:menu-silent* Pour définir un menu sans écho sur la ligne de commande, ajoutez "" comme premier argument. Exemple : > :menu Paramètres.Ignorer\ la\ casse :set ic La commande ":set ic" ne sera pas retournée en écho lors de l'utilisation de ce menu. Les messages émanant de la commande exécutée sont cependant toujours donnés. Pour les faire taire aussi, ajoutez un ":silent" dans la commande exécutée : > :menu Recherche.Zorglub :exe ":silent normal /Zorglub\r" < *:menu-