У меня есть немного магии в .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()
вставляется в файл вместо запуска функции. Случайный поиск в Google заставляет меня поверить, что любая версия VIM 7.x должна поддерживать такие вызовы функций. Так в чем еще может быть проблема?