![从 .vim/after/ftplugin/php.vim 中的缩写调用 .vimrc 中的函数](https://linux22.com/image/1364751/%E4%BB%8E%20.vim%2Fafter%2Fftplugin%2Fphp.vim%20%E4%B8%AD%E7%9A%84%E7%BC%A9%E5%86%99%E8%B0%83%E7%94%A8%20.vimrc%20%E4%B8%AD%E7%9A%84%E5%87%BD%E6%95%B0.png)
我有一个 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