2011-03-26 51 views
1

名单是否有可能获得声明的变量与一个VimL(又名Vimscript中)表达一个列表?我想要得到一组使用-complete=expression的命令将显示的值。目标是增加该列表以用于用户定义的命令完成功能。编程方式获得的变量

回答

6

您可以使用g:作为持有所有全局变量的字典,所以:

let globals = keys(g:) 

会给你所有的名字。这同样适用于其他领域:b:s:w:等的完整列表,请参阅:help internal-variables

3

你可以使用g:b:t:w:v:词典按键类似的东西,但以下事实要注意:

  1. 如果你想完成的选项中没有与本字典。
  2. 一些变量,如count(但不是g:countl:count),b:changedtick,或者其他字典不在此字典中。
  3. 一些vim黑客可能会将密钥@@@添加到字典g:,但它不会使表达式g:@@@有效的变量名称(但会添加000)。虽然g:["@@@"]将是一个有效的表达式。
+0

我想解析由'产生的文本:options'或一些这样的可能是一种方式来获得的选项列表。 – intuited 2011-03-26 22:42:04

+0

@intuited':设置all'适合这种需要更好的,虽然我不喜欢使用的任何重定向:':redir'命令将覆盖现有的重定向如果有一些。 – ZyX 2011-03-26 22:45:57

+0

是的,':redir'确实很糟糕,但对于某些应用程序似乎是必需的。再次感谢':set all'的提示。顺便说一句'count'似乎是在'五:'词典:':帮助五:count'提到'count'是一个别名保留向后兼容。 – intuited 2011-03-27 08:09:08

相关问题