我有一个 VIM 函数,.vimrc
它被一些缩写调用。我想将这些缩写移动到特定于 PHP、特定于 C 和一些其他文件类型的文件中,但它们不再在.vimrc
as 范围内看到函数。如何增加 中的功能范围.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 上。
您没有给出不起作用的函数和缩写的示例,因此无法判断您做错了什么。这是我的 ~/.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)