如何使用let为当前缓冲区(vim)设置一个选项?

时间:2013-01-24 14:26:25

标签: vim

在vimla​​nguage中,您只能使用setlocal为当前缓冲区设置选项。 但是,我需要设置一个比文字更复杂的表达式,这对于setlocal是不可能的。

我目前有let &formatprg=s:prgpath." ".a:args,但这会为所有缓冲区设置formatprg,这不是我想要的。 我如何设置上面的formatprg,仅用于当前缓冲区?

2 个答案:

答案 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,并将任何全局选项转换为缓冲区或窗口本地选项。