1 votes

Appel de la fonction dans .vimrc à partir de l'abréviation dans .vim/after/ftplugin/php.vim

J'ai une fonction VIM dans .vimrc qui est appelé par quelques abréviations. J'aimerais déplacer ces abréviations vers des fichiers spécifiques à PHP, à C et à quelques autres types de fichiers, mais ils ne voient plus les fonctions de .vimrc comme dans le champ d'application. Comment puis-je augmenter la portée des fonctions dans .vimrc ?

EDITAR: J'ai essayé ça :

 - bruno:~$ cat .vimrc
set nocompatible
filetype plugin on
function! Hello()
   return "hello"
endfunction

 - bruno:~$ cat .vim/after/ftplugin/php.vim
abbr xyz <C-R>=Hello<CR>

Cependant, je n'obtiens que E121: Undefined variable: Hello lors de la saisie de "xyz" dans un fichier .php. J'ai ajouté le préfixe g: à la fois à la déclaration de la fonction et à l'appel de la fonction, mais cela n'a pas aidé non plus. Il n'a pas non plus été utile d'ajouter le préfixe uniquement à la déclaration de la fonction. Ceci se passe sur VIM 7.3, Kubuntu 12.10.

5voto

Unnati Gutpa Points 11

Vous n'avez pas donné d'exemple d'une fonction et d'une abréviation qui ne fonctionnent pas, il est donc impossible de dire ce que vous avez fait de mal. Voici un exemple de fonction dans mon ~/.vimrc,

function! Hello()
   return "hello"
endfunction

et une abréviation dans ~/.vim/after/ftplugin/php.vim,

abbr xyz <C-R>=Hello()<CR>

qui fonctionnent comme prévu. Ouvrez un nouveau fichier php,

$ vim foo.php

type

This is a test of xyx

et en appuyant sur la barre d'espacement, cela devient

This is a test of hello

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X