函数未运行,而是作为文本插入

函数未运行,而是作为文本插入

我有一点魔力.vimrc

inoremap <Tab> <c-r>=InsertTabWrapper()<Return>
function! InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k' 
        return "\<tab>"
    else    
        return "\<c-p>"
    endif   
endfunction

这在我使用的所有系统上都运行良好(在行首插入 Tab,否则自动完成),但是在运行 VIM v7.0.237 的一个系统上,实际文本InsertTabWrapper()被插入到文件中而不是运行该函数。随意谷歌搜索让我相信任何 VIM 7.x 版本都应该支持这样的函数调用。那么还有什么问题呢?

答案1

所以…

Vim 无法评估如此简单的表达式,这1+2表明它无法整体使用“表达式”。据我所知,唯一的原因是 Vim 未内置此+eval功能。

这就是为什么我要求你检查是否+eval存在$ vim --version | grep eval

相关内容