如何获取由数字指定的缓冲区的'filetype'?

时间:2013-09-10 09:00:23

标签: vim

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

2 个答案:

答案 0 :(得分:4)

getbufvar()函数不仅可以检索变量,还可以检索缓冲区本地选项(前缀为&):

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

答案 1 :(得分:3)

使用& 作为选项的前缀。 E.g。

:echo &tabstop
:let myts = &tabstop
:echo myts
:let &ts = myts

请参阅:help :let-&

您执行任务时可能需要的其他功能包括:

  • getbufvar() / setbufvar()
  • getwinvar() / setwinvar()
  • gettabvar() / settabvar()
  • gettabwinvar() / settabwinvar()

请参阅:help var-functions

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

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

call SetTabstopFromBufname('vimrc')