从 .vim/after/ftplugin/php.vim 中的缩写调用 .vimrc 中的函数

dot*_*hen 1 vim

我有一个 VIM 函数,.vimrc它被一些缩写调用。我想将这些缩写移动到特定于 PHP、特定于 C 和一些其他文件类型的文件中,但它们不再在.vimrcas 范围内看到函数。如何增加 中的功能范围.vimrc

编辑: 我试过这个:

 - 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>
Run Code Online (Sandbox Code Playgroud)

但是,我只有E121: Undefined variable: Hello在 .php 文件中输入“xyz”时才会得到。我g:在函数声明和函数调用中都添加了前缀,但这也无济于事。仅在函数声明中添加前缀也无济于事。这是在 VIM 7.3、Kubuntu 12.10 上。

gar*_*ohn 5

您没有给出不起作用的函数和缩写的示例,因此无法判断您做错了什么。这是我的 ~/.vimrc 中的一个函数示例,

function! Hello()
   return "hello"
endfunction
Run Code Online (Sandbox Code Playgroud)

以及 ~/.vim/after/ftplugin/php.vim 中的缩写,

abbr xyz <C-R>=Hello()<CR>
Run Code Online (Sandbox Code Playgroud)

这按预期工作。打开一个新的php文件,

$ vim foo.php
Run Code Online (Sandbox Code Playgroud)

类型

This is a test of xyx
Run Code Online (Sandbox Code Playgroud)

在击中空格键时,它变成

This is a test of hello 
Run Code Online (Sandbox Code Playgroud)