Chamar a função em .vimrc da abreviação em .vim / after / ftplugin / php.vim

1

Eu tenho uma função VIM em .vimrc que é chamada por algumas abreviações. Gostaria de mover essas abreviações para específicos do PHP, específicos do C e alguns outros arquivos específicos do tipo de arquivo, mas eles não vêem mais as funções em .vimrc como no escopo. Como posso aumentar o escopo de funções em .vimrc ?

EDITAR: Eu tentei isso:

 - 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>

No entanto, só recebo E121: Undefined variable: Hello ao digitar "xyz" em um arquivo .php. Adicionei o prefixo g: à declaração de função e à chamada de função, mas isso também não ajudou. Também não ajudou a adicionar o prefixo apenas à declaração da função. Isso está no VIM 7.3, Kubuntu 12.10.

    
por dotancohen 27.05.2013 / 17:28

1 resposta

5

Você não deu um exemplo de uma função e uma abreviação que não funciona, então é impossível dizer o que você fez de errado. Aqui está um exemplo de uma função no meu ~ / .vimrc,

function! Hello()
   return "hello"
endfunction

e uma abreviação em ~ / .vim / after / ftplugin / php.vim,

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

esse trabalho como esperado. Abra um novo arquivo php,

$ vim foo.php

tipo

This is a test of xyx

e ao acertar a barra de espaço, isso se torna

This is a test of hello 
    
por 27.05.2013 / 19:40

Tags