繁体   English   中英

vim扩展了makeprg变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM