是否可以使用VimL(aka VimScript)表达式获取已声明变量的列表?我想获得使用-complete=expression
为命令呈现的相同值集。目标是扩充该列表以用于用户定义的命令完成功能。
答案 0 :(得分:6)
您可以使用g:
作为包含所有全局变量的字典,所以:
let globals = keys(g:)
会给你所有的名字。这同样适用于其他范围:b:
,s:
,w:
等。有关完整列表,请参阅:help internal-variables
。
答案 1 :(得分:3)
您可以使用g:
,b:
,t:
,w:
和v:
词典的键来获得类似的内容,但请注意以下事实:< / p>
count
(但不是g:count
或l:count
),b:changedtick
以及其他变量。@@@
添加到字典g:
,但它不会使表达式g:@@@
成为有效的变量名称(但会添加000
)。虽然g:["@@@"]
将是有效的表达。