我有一点魔力.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
。