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