在vimlanguage中,您只能使用setlocal
为当前缓冲区设置选项。
但是,我需要设置一个比文字更复杂的表达式,这对于setlocal
是不可能的。
我目前有let &formatprg=s:prgpath." ".a:args
,但这会为所有缓冲区设置formatprg,这不是我想要的。
我如何设置上面的formatprg,仅用于当前缓冲区?
答案 0 :(得分:11)
使用let &l:option
代替let &option
仅更改本地值,例如setlocal option
。同样,let &g:option
只会设置全局值,例如setglobal option
。有关详细信息,请参阅:help :let-option
。
请注意,formatprg
特别是全局的(its help中没有“缓冲区本地”)。
答案 1 :(得分:1)
创建全局选项buffer-local需要更改Vim的源代码。或者,我刚刚发布了使用autocmds解决此问题的GlobalOptions plugin,并将任何全局选项转换为缓冲区或窗口本地选项。