0

この機能を使用して:set makeprg、ファイルに応じて異なるmake動作を設定します。これの1つの機能は、アクティブバッファ内のファイル、および環境変数を参照するために%使用できることです。%<$

展開された 変数をエコーし​​たいのmakeprgですが、これを達成できないようです。

たとえば、私が持って:set makeprg=build\ %いて、ファイルで作業しているとしますFoo.txt。展開されたエコーの出力は次のようになると思いmakeprgます。

build Foo.txt

ただし、&makeprg変数をエコーすると、次の結果が得られます。

:echo(&makeprg)
build\ %

解決策には、エスケープされたシンボルの解析と環境変数の適切な処理expand()が含まれることを除いて、おそらくを使用することが含まれます。私が見逃しているこれに対する解決策はありますか?&makeprg$

4

2 に答える 2

1

なぜこれが必要なのですか?トラブルシューティングのために、私はおそらく次のように追加echoします'makeprg'(これは後の末尾のスペース\です):

:setl makeprg^=echo\ 

しかし、以下はあなたが考えていたことをするはずです。秘訣は、'makeprg'文字列をスペースで分割し、各単語を個別に処理することです。

:echo join(map(split(&makeprg), 'expand(v:val)'))
于 2012-10-02T12:47:08.160 に答える
0

真実に少し近づく: join(map(split(mystring, '\ze[<%#]'), 'expand(v:val)'), '').

于 2015-07-10T13:52:45.310 に答える