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

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

我有一个 VIM 函数,.vimrc它由几个缩写调用。我想将这些缩写移动到 PHP 特定、C 特定和一些其他文件类型特定的文件中,但它们不再将 中的函数视为.vimrc在范围内。我该如何增加 中的函数范围.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>

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

答案1

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

function! Hello()
   return "hello"
endfunction

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

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

一切按预期运行。打开一个新的 php 文件,

$ vim foo.php

类型

This is a test of xyx

按下空格键后,就变成

This is a test of hello 

相关内容