4

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

4

2 回答 2

4

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

:let bufFiletype = getbufvar(bufNr, '&filetype')
于 2013-09-10T09:47:19.203 回答
3

使用&为选项添加前缀。例如

: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')
于 2013-09-10T09:05:02.910 回答