[英]vim expanded makeprg variable
我使用:set makeprg
功能来根据文件设置不同的make行为。 此功能的一个特点是,我可以使用%
和%<
来引用活动缓冲区中的文件,以及$
来引用环境变量。
我想回显扩展的 makeprg
变量,但似乎无法实现。
例如,假设我有:set makeprg=build\\ %
,并且我正在处理文件Foo.txt
。 我希望回显扩展的makeprg
的输出是:
build Foo.txt
但是,在回显&makeprg
变量时,我们得到以下结果:
:echo(&makeprg)
build\ %
该解决方案可能涉及使用expand()
,除了这涉及解析&makeprg
以获取转义符号,并适当地为环境变量处理$
。 我是否有解决方案?
你为什么需要这个? 为了进行故障排除,我可能只将echo
附加到'makeprg'
(在\\
后面的空格):
:setl makeprg^=echo\
但是以下应该做的是您要记住的。 诀窍是在空格上分割'makeprg'
字符串,然后分别处理每个单词:
:echo join(map(split(&makeprg), 'expand(v:val)'))
更加接近事实: join(map(split(mystring, '\\ze[<%#]'), 'expand(v:val)'), '')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.