Vim 如何获得';文件类型';由数字指定的缓冲区的名称?

Vim 如何获得';文件类型';由数字指定的缓冲区的名称?,vim,Vim,我正在为VIM编写插件,我需要知道由数字指定的缓冲区的文件类型。但是文件类型是一个选项-如何以编程方式获取指定的缓冲区选项?我可以通过bufname()vimscript函数获取缓冲区名称,但我没有找到任何允许我获取选项的函数。也许这是bufdo的一些技巧?在选项前面加一个&。例如 :echo &tabstop :let myts = &tabstop :echo myts :let &ts = myts 请参见:帮助:let-& 您在任务中可能需要的其他功能包括:

我正在为VIM编写插件,我需要知道由数字指定的缓冲区的
文件类型。但是
文件类型
是一个
选项
-如何以编程方式获取指定的缓冲区选项?我可以通过
bufname()
vimscript函数获取缓冲区名称,但我没有找到任何允许我获取选项的函数。也许这是
bufdo
的一些技巧?

在选项前面加一个&。例如

:echo &tabstop
:let myts = &tabstop
:echo myts
:let &ts = myts
请参见
:帮助:let-&

您在任务中可能需要的其他功能包括:

  • getbufvar()
    /
    setbufvar()
  • getwinvar()
    /
    setwinvar()
  • gettabvar()
    /
    settabvar()
  • gettabwinvar()
    /
    settabwinvar()
请参见
:帮助变量函数

对于简单的情况,您也可以这样做:

function! SetTabstopFromBufname(name)
  execute 'silent edit' bufname(a:name)
  let myts = &tabstop
  silent edit #
  let &l:tabstop = myts
endfunction

call SetTabstopFromBufname('vimrc')
getbufvar()
函数不仅可以检索变量,还可以缓存本地选项(前缀为
&
):

:let bufFiletype = getbufvar(bufNr, '&filetype')