*if_ole.txt* Pour Vim version 6.2. Dernière modification : 12 oct 2002 MANUEL de RÉFÉRENCE VIM - par Paul Moore Interface OLE de Vim *ole-interface* 1. Activation |ole-activation| 2. Méthodes |ole-methods| 3. La commande "normal" |ole-normal| 4. Enregistrement |ole-registration| 5. Intégration à MS Visual Studio |MSVisualStudio| {absent de Vi} L'interface OLE n'est disponible que si Vim a été compilé avec la fonctionnalité |+ole|. Voir le fichier "src/if_ole.INSTALL". Une alternative consiste à utiliser la fonctionnalité de communication |clientserver| de Vim. ============================================================================== 1. Activation *ole-activation* Vim peut se comporter comme un serveur OLE Automation, accessible depuis n'importe quel client Automation, comme par exemple Visual Basic, Python ou Perl. Le "nom" de l'application Vim (son "ProgID" dans la terminologie OLE) est "Vim.Application". En conséquence, pour démarrer une instance de Vim (ou pour vous connectez à une instance déjà démarrée), vous pouvez utiliser un code similaire à celui qui suit : [Visual Basic] > Dim Vim As Object Set Vim = CreateObject("Vim.Application") [Python] > from win32com.client.dynamic import Dispatch vim = Dispatch('Vim.Application') [Perl] > use Win32::OLE; $vim = new Win32::OLE 'Vim.Application'; Vim ne peut pas se comporter comme un serveur OLE "caché", tel que le peuvent certains serveurs OLE Automation. Quand un client active une instance de Vim, cette dernière est immédiatement visible. La simple fermeture de la connexion OLE avec l'instance de Vim n'est pas suffisante pour détruire l'instance de Vim -- il est nécessaire d'exécuter explicitement une commande pour quitter (par exemple ":qa!" ou ":wqa"). ============================================================================== 2. Méthodes *ole-methods* Un serveur OLE Vim propose quatre méthodes aux clients. *ole-sendkeys* SendKeys(touches) Exécute une séquence de touches clavier. Cette méthode prend un seul paramètre, qui est une chaîne de caractères représentant des touches du clavier. Ces touches du clavier sont exécutées exactement comme si elles avaient été tapées. Les touches spéciales peuvent être spécifiées en utilisant la notation |<>|, comme dans le côté droit des mappages. NOTE : L'exécution de la commande Ex "normal" n'est pas possible -- voir |ole-normal| ci-après. Exemples (syntaxe Visual Basic) : > Vim.SendKeys "iSalut" Vim.SendKeys "ma1GV4jy`a" Ces exemples supposent que Vim démarre en mode Normal. Pour forcer le mode Normal, faite débuter la séquence de touches par CTRL-\ CTRL-N, comme suit : > Vim.SendKeys "iSalut" CTRL-\ CTRL-N passe Vim en mode Normal, qu'il se trouve en mode Insertion ou en mode Ligne-de-Commande. Notez que ceci ne marche pas au beau milieu d'une commande Vim. *ole-eval* Eval(expr) Évaluer une expression. Cette méthode prend un seul paramètre, qui est une expression au format Vim (voir |expression|). Elle renvoie une chaîne de caractères contenant le résultat de l'évaluation de l'expression. Exemples (syntaxe Visual Basic) : > Ligne20 = Vim.Eval("getline(20)") Douze = Vim.Eval("6 + 6") 'Notez bien, c'est une chaîne de caractères Police = Vim.Eval("&guifont") < *ole-setforeground* SetForeground() Place la fenêtre Vim au premier plan. Cette méthode ne prend aucun argument. Aucune valeur n'est renvoyée. Exemple (syntaxe Visual Basic) : > Vim.SetForeground < *ole-gethwnd* GetHwnd() Retourne le descripteur de la fenêtre Vim. Cette méthode ne prend pas d'argument. Elle renvoie le descripteur de la fenêtre principale de Vim. Vous pouvez utiliser cette méthode si vous développez un programme qui a besoin de manipuler la fenêtre de Vim, de la localiser dans le Z-Order (Le Z-Order indique la position d'une fenêtre dans l'empilement des fenêtres), etc. Exemple (syntaxe Visual Basic) : > Vim_Hwnd = Vim.GetHwnd ============================================================================== 3. La commande "normal" *ole-normal* La façon dont Vim exécute les commandes OLE Automation, ainsi que la manière dont la commande Ex ":normal" est mise en oeuvre dans le code, empêchent l'utilisation de la commande ":normal" par le biais de OLE Automation. Toute tentative est vouée à l'echec et sera probablement inoffensive, bien que le résultat soit possiblement imprédictible. Il n'existe actuellement aucune solution pratique à cette situation. Les utilisateurs doivent simplement être conscients de cette limite. ============================================================================== 4. Enregistrement *ole-registration* *E243* *-register* > Avant que Vim ne joue le rôle d'un serveur OLE, il doit être enregistré dans la base de registres. Pour ce faire, Vim doit être lancé avec argument "-register" seul : > gvim -register Si gvim avec le support OLE est exécuté et s'aperçoit qu'aucun serveur OLE n'a été enregistré dans la base de registres, une boîte de dialogue apparaîtra et vous permettra d'enregistrer un serveur OLE Vim en cliquant sur le bouton "Yes". Parfois, l'enregistrement est impossible. Cela arrive lorsque la base de registres est en lecture seule. Si vous rencontrez ce problème, vous devrez exécuter gvim en tant qu'administrateur. *-unregister* > Une fois que Vim est enregistré, le chemin de l'application est stocké dans la base de registres. Avant de déplacer, supprimer, ou mettre à jour Vim, les entrées de la base de registres doivent être retirées en utilisant l'argument "-unregister" : > gvim -unregister Le mécanisme OLE utilisera le premier Vim enregistré qu'il trouvera. Si un Vim est déjà en cours d'exécution, il sera utilisé. Si vous voulez ouvrir plusieurs sessions Vim qui ne doivent pas répondre aux commandes OLE, utilisez une version de Vim sans le support OLE et placez-la dans un répertoire différent. Dans ce cas, la version OLE devrait être placée dans un répertoire qui n'est pas référencé par la variable d'environnement PATH, de sorte que l'invocation de `gvim` démarre la version non-OLE. *-silent* Pour éviter l'apparition de la boîte message indiquant le résultat de l'enregistrement, spécifiez l'argument "-silent" avant l'argument "-register" ou "-unregister". > gvim -silent -register gvim -silent -unregister ============================================================================== 5. Intégration à MS Visual Studio *MSVisualStudio* *VisVim* La version OLE permet d'utiliser Vim comme éditeur dans Microsoft Visual Studio. Cette version, appelée "VisVim", est incluse dans l'archive qui contient la version OLE. La documentation est disponible dans le fichier "README.txt" du répertoire "VisVim". ============================================================================== vim:tw=78:ts=8:ft=help:norl: