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

最佳答案

使用 前缀选项。例如。

: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')
    

    关于vim - 如何获取由数字指定的缓冲区的 'filetype'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18714650/

    10-11 04:25