У меня есть плагин, в котором я вызываю getbufvar внутри одной из функций плагина, чтобы проверить, является ли буфер списком quckfixlist. getbufvar всегда возвращает пустую строку. Однако, если я передаю жестко запрограммированное значение, такое как 1, в качестве номера буфера вместо переменной, возвращается правильная строка. Это ошибка в getbufvar?
Ниже приведен тестовый код для воспроизведения.
function! Test(bufNum)
return getbufvar(a:bufNum, '&ft')
endfunction
au BufEnter * echoerr expand('<abuf>'). ", ". Test(expand('<abuf>'))
Приведенный выше фрагмент кода повторяет «1», когда я открываю файл python. Однако, если я вызываю getbufvar (1, '& ft'), он печатает '1, python'. Я что-то не так делаю?